VULNERABILITY SCANS CAUSE TCPIP TO LOOP
APAR Identifier ...... PK34158 Last Changed ........ 07/09/28 VULNERABILITY SCANS CAUSE TCPIP TO LOOP Symptom ...... LP LOOP Status ........... CLOSED PER Severity ................... 3 Date Closed ......... 06/12/06 Component .......... 5735FAL00 Duplicate of ........ Reported Release ......... 520 Fixed Release ............ 999 Component Name TCP/IP V2 FOR V Special Notice Current Target Date .. Flags SCP ................... Platform ............ Status Detail: SHIPMENT - Packaged solution is available for shipment. PE PTF List: PTF List: Release 510 : UK20415 available 06/12/08 (0702 ) Release 520 : UK20416 available 06/12/08 (0702 ) Parent APAR: Child APAR list: ERROR DESCRIPTION: Vulnerability scans are cauing TCPIP to get into a program check loop intermittantly. . Looking at the TCPIP console, TCPIP reports: AMPX036I ASSERTION FAILURE CHECKING ERROR TRACE BACK OF CALLED ROUTINES ROUTINE STMT AT ADDRESS IN MODULE ALLOCANDSOCKPASSIVEOPEN 4 00D140FA TCPREQUEST SKTCPCLS 11 00D21148 TCPREQUEST 00:41:13 * MSG FROM TCPIP : VMDUMPing... HCPMFS057I TCPIP not receiving; disconnected Command complete SPROCESSPENDMSG 80 00DE90E2 SOCKREQ SockRequ 170 00E20AB4 Schedule 2082 00CF9424 <MAIN-PROGRAM> 14 00C421FE TCPIP VSPASCAL 00E4D462 AMPX036I ASSERTION FAILURE CHECKING ERROR TRACE BACK OF CALLED ROUTINES ROUTINE STMT AT ADDRESS IN MODULE ALLOCANDSOCKPASSIVEOPEN 5 00D1410C TCPREQUEST SKTCPCLS 11 00D21148 TCPREQUEST SPROCESSPENDMSG 80 00DE90E2 SOCKREQ SockRequ 170 00E20AB4 Schedule 2082 00CF9424 <MAIN-PROGRAM> 14 00C421FE TCPIP VSPASCAL 00E4D462 . AMPX014I PROTECTION EXCEPTION TRACE BACK OF CALLED ROUTINES ROUTINE STMT AT ADDRESS IN MODULE ALLOCSOCKOBJECTS 3 00D13ABC TCPREQUEST ALLOCANDSOCKPASSIVEOPEN 6 00D14130 TCPREQUEST SKTCPCLS 11 00D21148 TCPREQUEST SPROCESSPENDMSG 80 00DE90E2 SOCKREQ SockRequ 170 00E20AB4 Schedule 2082 00CF9424 LOCAL FIX: PROBLEM SUMMARY: **************************************************************** * USERS AFFECTED: All users of z/VM TCP/IP * **************************************************************** * PROBLEM DESCRIPTION: z/VM TCP/IP Stack loops on SSL * * server shutdown due to improper * * accept() processing. * **************************************************************** * RECOMMENDATION: APPLY PTF * **************************************************************** There are two problems here: 1. The SSL server receives an EIBMSOCKINUSE error on an accept() call causing it to shut down. 2. The assertion failure which is caused by problem 1. Problem 1 occurs because SkSslAcc() stores the new socket number (from SockAssign) in the ACB before we know if we're really going to allocate the socket and respond to the client. In the case where the socket call blocks (because there are no connection requests queued), we don't actually allocate the socket. Then, should another call to SockAssign occur for this client before the accept() is actually processed, SockAssign may give out the same socket number. This causes the error on the accept() call once it (the accept()) is ready to be processed. Note that this is also a problem in SkTcpAcc() and vSkTcpAcc() (e.g. the accept() error is not limited to the SSL server). Problem 2 occurs because the main SSL socket is closing before all of the worker thread sockets close. So, when the stack sees a worker thread close, and no listen on the main socket, it tries to issue a passive open. Since the socket is closed, we hit the assertion (SockListening is false). PROBLEM CONCLUSION: To address the problem with accept() processing, code has been changed to update the socket number in the ACB just before we respond to the client, such that we are sure the socket has been allocated and SockAssign will not attempt to reuse the socket number. To address the assertion, close() processing for SSL sockets has been modified to only issue the passive open in the case where there is currently no listen on the socket and the socket should be listening. TEMPORARY FIX: COMMENTS: MODULES/MACROS: TCPIP TCPREQU TCPSSL T6PREQU SRLS: NONE RTN CODES: CIRCUMVENTION: MESSAGE TO SUBMITTER: