IBM Support

PH38031: MQ 9.2 SECURITY ASSEMBLER STUB CSQ4BAX3 PASSES UNEXPECTED REASONCODE VALUE

A fix is available

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • Development describes that CSQ4BAX3 STORAGE OBTAINs stack
    storage, saving the input return code into a local stack
    variable prior to the BPX1PWD call being made.  It then passes
    the stack return and reason code variables to the BPX1PWD call.
    After the call, the values in the stack fields are stored back
    in the user-supplied return and reason codes.
    .
    The issue occurs if the call to BPX1PWD succeeds with a
    'Return_value' of 0. The documentation for BPX1PWD states that
    the 'Return_code' and 'Reason_code' fields are only populated
    if the call fails (Return_value == -1). This will result in the
    stack return and reason code variables not being set when the
    call succeeds. This is fine for the return code,
    since MQ has saved the input return code in the variable before
    the BPX1PWD call, and will return the input value of the
    user-supplied return code.
    .
    However, the same treatment is not applied to the stack reason
    code variable so that, if the BPX1PWD succeeds, then CSQ4BAX3
    will store an uninitialized value into the user-supplied reason
    code. This value is unpredictable and will propagate through
    multiple CSQ4BAX3 calls.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: All users of IBM MQ for z/OS Version 9       *
    *                 Release 2 Modification 0.                    *
    ****************************************************************
    * PROBLEM DESCRIPTION: Sample program CSQ4BAX3 does not        *
    *                      handle the parameter reason code        *
    *                      correctly.                              *
    ****************************************************************
    Sample program CSQ4BAX3 is a wrapper for a BPX1PWD call to
    verify a user ID, password pair. If valid credentials are
    passed to CSQ4BAX3, then the input reason code will be
    overwritten with uninitialised storage. This may manifest as a
    residual reason code from previous CSQ4BAX3 calls.
    

Problem conclusion

  • Sample program CSQ4BAX3 has been corrected to not alter the
    parameter reason code field if valid credentials are passed to
    it. This is the same behaviour as a BPX1PWD call.
    

Temporary fix

Comments

APAR Information

  • APAR number

    PH38031

  • Reported component name

    IBM MQ Z/OS V9

  • Reported component ID

    5655MQ900

  • Reported release

    200

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2021-06-10

  • Closed date

    2021-11-05

  • Last modified date

    2022-01-04

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

    UI77952

Modules/Macros

  • CSQ4BAX3 CSQ4BCX3
    

Fix information

  • Fixed component name

    IBM MQ Z/OS V9

  • Fixed component ID

    5655MQ900

Applicable component levels

  • R200 PSY UI77952

       UP21/12/11 P F112

Fix is available

  • Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.

[{"Line of Business":{"code":"LOB45","label":"Automation"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"200"}]

Document Information

Modified date:
05 January 2022