IBM SECURITY ADVISORY First Issued: Tue Jul 14 06:03:19 CDT 2026 The most recent version of this document is available here: https://aix.software.ibm.com/aix/efixes/security/python_advisory20.asc Security Bulletin: Multiple vulnerabilities in Python affect AIX =============================================================================== SUMMARY: Vulnerabilities in Python could allow a denial of service (CVE-2026-41080, CVE-2026-45186), Use-after-free (CVE-2026-50219, CVE-2026-56131, CVE-2026-56412), Heap buffer overflow (CVE-2026-56132), Integer overflow (CVE-2026-56403, CVE-2026-56404), Parser memory-safety issue (CVE-2026-56405, CVE-2026-56406, CVE-2026-56407, CVE-2026-56408, CVE-2026-56409, CVE-2026-56410, CVE-2026-56411), Denial of Service (CVE-2026-4224), Memory corruption (CVE-2026-6100), Security policy bypass (CVE-2026-2297). Python is used by AIX as part of Ansible node management automation. =============================================================================== VULNERABILITY DETAILS: CVEID: CVE-2026-41080 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-41080 DESCRIPTION: libexpat before 2.8.0 uses insufficient entropy, and thus hash flooding can occur via a crafted XML document. CVSS Base Score: 2.9 CVSS Environmental Score*: Undefined CVSS Vector: (CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L) CVEID: CVE-2026-45186 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-45186 DESCRIPTION: In libexpat before 2.8.1, the computational complexity of attribute name collision checks allows a denial of service via moderately sized crafted XML input. CVSS Base Score: 7.5 CVSS Environmental Score*: Undefined CVSS Vector: (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H) CVEID: CVE-2026-50219 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-50219 DESCRIPTION: libexpat before 2.8.2 lacks handler call depth tracking for calls to XML_GetBuffer, XML_Parse, XML_ParseBuffer, XML_ParserFree, or XML_ParserReset from within handlers in cases of a policy violation. Thus, a use-after-free can occur, CVSS Base Score: 5.9 CVSS Environmental Score*: Undefined CVSS Vector: (CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L) CVEID: CVE-2026-56131 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-56131 DESCRIPTION: libexpat before 2.8.2 lacks handler call depth tracking for calls to XML_ResumeParser from within handlers in cases of a policy violation. Thus, a use-after-free can occur (similar to the CVE-2026-50219 situation). CVSS Base Score: 4.9 CVSS Environmental Score*: Undefined CVSS Vector: (CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:L) CVEID: CVE-2026-56132 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-56132 DESCRIPTION: In libexpat before 2.8.2, there is a heap-based buffer overflow in doProlog in xmlparse.c because scaffold backing array reallocation is mishandled when there is data-structure sharing across parsers. CVSS Base Score: 6.9 CVSS Environmental Score*: Undefined CVSS Vector: (CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L) CVEID: CVE-2026-56403 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-56403 DESCRIPTION: libexpat before 2.8.2 has an integer overflow in storeAtts. CVSS Base Score: 6.9 CVSS Environmental Score*: Undefined CVSS Vector: (CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L) CVEID: CVE-2026-56404 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-56404 DESCRIPTION: libexpat before 2.8.2 has an integer overflow in addBinding. CVSS Base Score: 6.9 CVSS Environmental Score*: Undefined CVSS Vector: (CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L) CVEID: CVE-2026-56405 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-56405 DESCRIPTION: libexpat before 2.8.2 has an integer overflow in getAttributeId. CVSS Base Score: 6.9 CVSS Environmental Score*: Undefined CVSS Vector: (CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L) CVEID: CVE-2026-56406 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-56406 DESCRIPTION: libexpat before 2.8.2 has an integer overflow in XML_ParseBuffer because it lacked a check that was present in XML_Parse. CVSS Base Score: 6.9 CVSS Environmental Score*: Undefined CVSS Vector: (CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L) CVEID: CVE-2026-56407 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-56407 DESCRIPTION: libexpat before 2.8.2 has an integer overflow in doProlog that is related to storeEntityValue and entity textLen. CVSS Base Score: 6.9 CVSS Environmental Score*: Undefined CVSS Vector: (CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L) CVEID: CVE-2026-56408 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-56408 DESCRIPTION: libexpat before 2.8.2 has an integer overflow in copyString. CVSS Base Score: 6.9 CVSS Environmental Score*: Undefined CVSS Vector: (CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L) CVEID: CVE-2026-56409 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-56409 DESCRIPTION: xmlwf in libexpat before 2.8.2 has an integer overflow for the output filename when -d outputDir is used. CVSS Base Score: 6.5 CVSS Environmental Score*: Undefined CVSS Vector: (CVSS:3.1/AV:L/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:L) CVEID: CVE-2026-56410 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-56410 DESCRIPTION: xmlwf in libexpat before 2.8.2 has an integer overflow in resolveSystemId. CVSS Base Score: 6.9 CVSS Environmental Score*: Undefined CVSS Vector: (CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L) CVEID: CVE-2026-56411 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-56411 DESCRIPTION: xmlwf in libexpat before 2.8.2 has an integer overflow in endDoctypeDecl via NOTATION declarations. CVSS Base Score: 6.9 CVSS Environmental Score*: Undefined CVSS Vector: (CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:L) CVEID: CVE-2026-56412 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-56412 DESCRIPTION: libexpat before 2.8.2 does not consider XML_TOK_DATA_CHARS in doCdataSection and thus lacks handler call depth tracking for various calls from within handlers in cases of a policy violation. Thus, a use-after-free can occur. NOTE: this issue exists because of an incomplete fix for CVE-2026-50219. CVSS Base Score: 5.9 CVSS Environmental Score*: Undefined CVSS Vector: (CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L) CVEID: CVE-2026-4224 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-4224 DESCRIPTION: When Expat parser with a registered ElementDeclHandler parses an inline document type definition containing a deeply nested content model a C stack overflow occurs. CVSS Base Score: 6.0 CVSS Environmental Score*: Undefined CVSS Vector: (CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N) CVEID: CVE-2026-6100 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-6100 DESCRIPTION: Use-after-free (UAF) was possible in the `lzma.LZMADecompressor`, `bz2.BZ2Decompressor`, and `gzip.GzipFile` when a memory allocation fails with a `MemoryError` and the decompression instance is re-used. This scenario can be triggered if the process is under memory pressure. The fix cleans up the dangling pointer in this specific error condition. The vulnerability is only present if the program re-uses decompressor instances across multiple decompression calls even after a `MemoryError` is raised during decompression. Using the helper functions to one-shot decompress data such as `lzma.decompress()`, `bz2.decompress()`, `gzip.decompress()`, and `zlib.decompress()` are not affected as a new decompressor instance is used per call. If the decompressor instance is not re-used after an error condition, this usage is similarly not vulnerable. CVSS Base Score: 9.1 CVSS Environmental Score*: Undefined CVSS Vector: (CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N) CVEID: CVE-2026-2297 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-2297 DESCRIPTION: The import hook in CPython that handles legacy *.pyc files (SourcelessFileLoader) is incorrectly handled in FileLoader (a base class) and so does not use io.open_code() to read the .pyc files. sys.audit handlers for this audit event therefore do not fire. CVSS Base Score: 5.7 CVSS Environmental Score*: Undefined CVSS Vector: (CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N) AFFECTED PRODUCTS AND VERSIONS: AIX 7.3 VIOS 4.1 The vulnerabilities in the following filesets are being addressed: key_fileset = osrcaix Fileset Lower Level Upper Level KEY ------------------------------------------------------ python3.9.base 3.9.0.0 3.9.24.0 key_w_fs python3.11.base 3.11.0.0 3.11.15.0 key_w_fs Note: A. Python 3.9 is out-of-support. Considering long term support, it is advised to upgrade to Python 3.11. B. Latest level of Python fileset is available from the web download site: https://www.ibm.com/resources/mrs/assets?source=aixbp To find out whether the affected filesets are installed on your systems, refer to the lslpp command found in the AIX user's guide. Example: lslpp -L | grep -i python3.11.base REMEDIATION: A. FIXES IBM strongly recommends addressing the vulnerability now. The fixes can be downloaded via https from: https://aix.software.ibm.com/aix/efixes/security/python_fix20.tar The links above are to a tar file containing this signed advisory, fix packages, and OpenSSL signatures for each package. The fixes below include prerequisite checking. This will enforce the correct mapping between the fixes and AIX Technology Levels. AIX Level Fix (*.Z) KEY ----------------------------------------------- 7.3 python-3.11.15.1.tar.Z key_w_fix VIOS Level Fix (*.Z) KEY ----------------------------------------------- 4.1 python-3.11.15.1.tar.Z key_w_fix To extract the fixes from the tar file: tar xvf python_fix20.tar cd python_fix20.tar Verify you have retrieved the fixes intact: The checksums below were generated using the "openssl dgst -sha256 [file]" command as the following: openssl dgst -sha256 filename KEY --------------------------------------------------------------------------------------------------- 1c8bf8003e57165d2b46f2ba2eea35c03f5095dc95dbb49882e700d5f4edb1e0 python-3.11.15.1.tar.Z key_w_csum The checksums below were generated using the "openssl dgst -sha512 [filename]" command as the following: openssl dgst -sha512 filename ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ f08361d4d8b09c92e3b478a90c6f699dfa05f1b045ba2b6d0b9faa28aa9a7a0e1339c58c75f8346b17f15a4802d6b99b0804ba932b6207517cd7a13ec7a86b06 python-3.11.15.1.tar.Z key_4K_w_csum These sums should match exactly. The OpenSSL signatures in the tar file and on this advisory can also be used to verify the integrity of the fixes. If the sums or signatures cannot be confirmed, contact IBM AIX Support at https://ibm.com/support/ and describe the discrepancy. openssl dgst -sha256 -verify [pubkey_file] -signature [advisory_file].sig [advisory_file] openssl dgst -sha256 -verify [pubkey_file] -signature [ifix_file].sig [ifix_file] Published advisory OpenSSL signature file location: https://aix.software.ibm.com/aix/efixes/security/python_advisory20.asc.sig B. FIX AND INTERIM FIX INSTALLATION To extract the fixes from the tar file: zcat python-3.11.15.1.tar.Z | tar xvf - IMPORTANT: If possible, it is recommended that a mksysb backup of the system be created. Verify it is both bootable and readable before proceeding. To preview the fix installation: installp -apYd . python3.11.base To install the fix package: installp -aXYd . python3.11.base WORKAROUNDS AND MITIGATIONS: None. =============================================================================== CONTACT US: Note: Keywords labeled as KEY in this document are used for parsing purposes. If you would like to receive AIX Security Advisories via email, please visit "My Notifications": http://www.ibm.com/support/mynotifications Contact IBM Support for questions related to this announcement: https://ibm.com/support/ For information on how to securely verify AIX security bulletins and fixes: https://www.ibm.com/support/pages/node/6985269 To obtain the OpenSSL public key that can be used to verify the signed advisories and ifixes: Download the key from our web page: https://aix.software.ibm.com/aix/efixes/security/systems_p_os_aix_security_pubkey.txt To verify the AIX/VIOS security bulletin: Published advisory OpenSSL signature file location: https://aix.software.ibm.com/aix/efixes/security/python_advisory20.asc.sig openssl dgst -sha256 -verify [pubkey_file] -signature [advisory_file].sig [advisory_file] Please contact your local IBM AIX support center for any assistance. REFERENCES: Complete CVSS v3 Guide: https://www.first.org/cvss/user-guide On-line Calculator v3: https://www.first.org/cvss/calculator/3.0 RELATED INFORMATION: Security Bulletin: https://www.ibm.com/support/pages/node/7269653 ACKNOWLEDGEMENTS: None. CHANGE HISTORY: First Issued: Tue Jul 14 06:03:19 CDT 2026 =============================================================================== *The CVSS Environment Score is customer environment specific and will ultimately impact the Overall CVSS Score. Customers can evaluate the impact of this vulnerability in their environments by accessing the links in the Reference section of this Security Bulletin. Disclaimer According to the Forum of Incident Response and Security Teams (FIRST), the Common Vulnerability Scoring System (CVSS) is an "industry open standard designed to convey vulnerability severity and help to determine urgency and priority of response." IBM PROVIDES THE CVSS SCORES "AS IS" WITHOUT WARRANTY OF ANY KIND, INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. CUSTOMERS ARE RESPONSIBLE FOR ASSESSING THE IMPACT OF ANY ACTUAL OR POTENTIAL SECURITY VULNERABILITY.