IBM Support

Security Bulletin: Multiple perl vulnerabilities impact AIX.

Security Bulletin


Summary

Vulnerabilities in Perl could cause Information Disclosure(CVE-2026-57432), Heap Buffer Overflow(CVE-2026-8376), Regex Validation Bypass(CVE-2026-13221), Host Validation Bypass(CVE-2026-19953), Out-of-Bounds Read/Write (CVE-2026-15534), Access Control Bypass(CVE-2026-19487).

Vulnerability Details

CVEID:   CVE-2026-57432
DESCRIPTION:   Perl versions before 5.40.5-RC1, from 5.41.0 before 5.42.3-RC1, from 5.43.0 before 5.43.11 have an integer overflow in S_measure_struct leading to an out-of-bounds heap read in pack and unpack. S_measure_struct adds each item's size times its repeat count to a running total with no overflow check, so a large repeat count in a pack or unpack template wraps the signed SSize_t total negative. The @, X, and x position codes then guard their moves with a signed length comparison that passes when the length is negative, advancing the buffer pointer out of bounds. A template derived from untrusted input can read heap memory past the buffer and return it to the caller.
CWE:   CWE-125: Out-of-bounds Read
CVSS Source:   NVD
CVSS Base score:   8.4
CVSS Vector:   (CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)

CVEID:   CVE-2026-8376
DESCRIPTION:   Perl versions before 5.40.5-RC1, from 5.41.0 before 5.42.3-RC1, from 5.43.0 before 5.43.11 have a heap buffer overflow when compiling regular expressions with a repeated fixed string on 32-bit builds. Perl_study_chunk in regcomp_study.c checked the size of the joined substring buffer in characters rather than bytes. For a quantified fixed substring with a large minimum count, the byte length mincount * l could overflow SSize_t, producing an undersized SvGROW allocation; the subsequent copy writes past the end of the buffer. A caller that compiles an attacker-controlled regular expression on a 32-bit perl build triggers a heap buffer overflow at compile time.
CWE:   CWE-680: Integer Overflow to Buffer Overflow
CVSS Source:   NVD
CVSS Base score:   9.8
CVSS Vector:   (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)

CVEID:   CVE-2026-13221
DESCRIPTION:   Perl versions before 5.40.5-RC1, from 5.41.0 before 5.42.3-RC1, from 5.43.0 before 5.43.10 produce silently incorrect regular expression matches when an alternation of more than 65535 fixed string branches is compiled into a trie in Perl_study_chunk. When such branches are combined into a trie, the delta between the first branch and the shared tail is stored in a 16-bit field. A branch count above 65535 overflows the field, and the trie's match decision table is truncated with no warning or error. A pattern of this shape produces false positive matches (matching strings it should not) and false negative matches (failing to match strings it should). When such a pattern gates an access or filtering decision, the result is wrong.
CWE:   CWE-190: Integer Overflow or Wraparound
CVSS Source:   NVD
CVSS Base score:   9.1
CVSS Vector:   (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H)

CVEID:   CVE-2026-19953
DESCRIPTION:   URI versions before 5.36 for Perl encode non-NFC host names to non-standard punycode labels via missing normalization in nameprep. nameprep lowercases each host label but performs no Unicode normalization. IDNA requires a label to be normalized to Form C before it is encoded (RFC 5891), so a label that is not already in NFC is encoded to a different A-label than its normalized form. A label built from the precomposed Devanagari sequence U+0958 U+093E encodes to xn--72b5c without normalization but to xn--11b2fg after NFC normalization, and xn--72b5c does not round-trip back to the original label. Any caller that reads host() from a URI built from untrusted input and uses it for a security decision (an allow or deny list, an SSRF filter, deduplication, a cache key) sees the non-standard label, while a client that fetches the same URL resolves the NFC form, so the check and the fetch can disagree about the host.
CWE:   CWE-1289: Improper Validation of Unsafe Equivalence in Input
CVSS Source:   CISA ADP
CVSS Base score:   6.5
CVSS Vector:   (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N)

CVEID:   CVE-2026-15534
DESCRIPTION:   Perl versions through 5.45.1 have out-of-bounds heap reads and writes during regular expression matching via an undersized superlinear cache in S_regmatch. The regex engine's superlinear cache holds one bit per subject position for each participating WHILEM node, so the bit count is the subject length plus one times the number of nodes. Nothing checks that product for positive overflow of the signed 32-bit count: a 286331153 byte subject matched against a pattern with 15 participating nodes stores the count as 14, leaving a two byte cache. The cache is then indexed from the real match position and node number, so reads go past the end of the allocation, and on failure CACHEsayNO sets a bit past it. A caller that matches an attacker controlled subject of this size against a pattern of this shape can crash the process or corrupt heap memory.
CWE:   CWE-125: Out-of-bounds Read
CVSS Source:   CISA ADP
CVSS Base score:   5.7
CVSS Vector:   (CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:H)

CVEID:   CVE-2026-19487
DESCRIPTION:   Perl versions from 5.9.4 before 5.41.9 produce incorrect regular expression match results when a stale failure flag ends the Aho-Corasick prescan early in S_find_byclass. The prescan walks the subject for positions where the full pattern could match, and the engine tries it from the leftmost one recorded. A failing transition sets the failed flag, and a later successful transition does not clear it, so the prescan reads the stale flag as a failure and stops before it can record a candidate that starts earlier. It takes a subject where one candidate is recorded and a later character then forces a fallback through a fail link that succeeds. Example: "ABCDE" =~ m/ABCF|BCDE|C/; # matches C at offset 2, not BCDE "ABCDE" =~ m/ABCF|BCDE|C(G)/; # no match, BCDE missed An alternation like this can miss input it should match, or match it on the wrong branch, so an access or filtering decision made from the result can be wrong.
CWE:   CWE-670: Always-Incorrect Control Flow Implementation
CVSS Source:   CISA ADP
CVSS Base score:   5.3
CVSS Vector:   (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L)

Affected Products and Versions

Affected Product(s)Version(s)
AIX7.3
AIX7.2
VIOS4.1

 

The vulnerabilities in the following filesets are being addressed:

 key_fileset = aix

 Fileset  Lower Level Upper LevelKEY
perl.rte 5.28.0.05.28.1.12key_w_fs
perl.rte 5.34.0.05.34.1.11key_w_fs
perl.rte 5.38.0.05.38.2.6key_w_fs

 

Note:

A. Latest level of Perl 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 AIX user's guide.

Example:  lslpp -L | grep -i perl.rte

B. CVE-2026-8376, CVE-2026-13221 are impacting only fileset levels 5.38.x.x.

Remediation/Fixes

REMEDIATION:

A. FIXES

IBM strongly recommends addressing the vulnerability now.

The AIX and VIOS fixes can be downloaded via https from:

https://aix.software.ibm.com/aix/efixes/security/perl_fix14.tar

 

The link above is to a tar file containing this signed advisory, install 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.

 

To extract the fixes from the tar file:

tar xvf perl_fix14.tar

 

For AIX 7.2 TL5:

tar xvf perl_fix14/perl_528113

 

For AIX 7.3 TL2:

tar xvf perl_fix14/perl_534112

 

For AIX 7.3 TL3, TL4 and VIOS 4.1:

tar xvf perl_fix14/perl_53827

 

AIX LevelFix
7.2.5perl.rte.5.28.1.13
7.3.2perl.rte.5.34.1.12
7.3.3perl.rte.5.38.2.7
7.3.4perl.rte.5.38.2.7

 

 

VIOS LevelFix
4.1.0  perl.rte.5.34.1.12
4.1.1perl.rte.5.38.2.7
4.1.2perl.rte.5.38.2.7

 

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 . perl

 

To install the fix package:

installp -aXYd . perl

 

Verify you have retrieved the fixes intact:

The checksums below were generated using the following command.

 "openssl dgst -sha256 [file]" 

openssl dgst -sha256 FilenameKEY
b7703c60190d50e458a991050a69701cfd60a39fecd0ff5c21c26cceee04c36aperl.rte.5.28.1.13key_w_csum
95880cbce79938c63322a62a662965b705dca1ca1408d7166f5de9146228e596perl.rte.5.34.1.12key_w_csum
9a8d67573b82c14ecb310ce96c956dd90a1e1e2f57a069c8abe7807bd3620aa3perl.rte.5.38.2.7key_w_csum

 

The checksums below were generated using the following command.

"openssl dgst -sha512 [file]" 

openssl dgst -sha512 FilenameKEY
ae8588c8af2ebfc96446e148b133c46acb8ee2f0eee6a088b14129537ce02c14f9d51769ddf053274658fa5f0c8cfef3b1f8e9fb10ea69a2b6c40c852c352adcperl.rte.5.28.1.1key_4K_w_csum
6d3638c031c66f41831ef997578f9a01b0ddd6eddbc5e34f180a184561c226453e1adc37defb5411d930b96b736465f5cf7c8423c6281448fcb825d6d0b5c142perl.rte.5.34.1.1key_4K_w_csum
bb19fd4189ab861069f77047270bf77018d1450b208945d4d970d2d8d1a3c251737678523baa8638d1130124660b39e2c82d6ae4ad819a68a814bae5de5615f7perl.rte.5.38.2.7key_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 Support at

http://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/perl_advisory14.asc.sig

B. FIX AND INTERIM FIX INSTALLATION

 

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 fileset installation:

installp -apYd . perl

 

To install the fileset update:

installp -aXYd . perl

 

Interim fixes have had limited functional and regression testing but not the full regression testing that takes place for Service Packs; however, IBM does fully support them.

 

Interim fix management documentation can be found at:

https://www.ibm.com/support/pages/managing-interim-fixes-aix

 

To preview an interim fix installation:

emgr -e ipkg_name -p         # where ipkg_name is the name of the

                                         # interim fix package being previewed.

 

 To install an interim fix package:

emgr -e ipkg_name -X         # where ipkg_name is the name of the

                                         # interim fix package being installed.

 

Workarounds and Mitigations

None

Get Notified about Future Security Bulletins

References

Off

Acknowledgement

Change History

28 Sep 2026: Initial Publication

*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. In addition to other efforts to address potential vulnerabilities, IBM periodically updates the record of components contained in our product offerings. As part of that effort, if IBM identifies previously unidentified packages in a product/service inventory, we address relevant vulnerabilities regardless of CVE date. Inclusion of an older CVEID does not demonstrate that the referenced product has been used by IBM since that date, nor that IBM was aware of a vulnerability as of that date. We are making clients aware of relevant vulnerabilities as we become aware of them. "Affected Products and Versions" referenced in IBM Security Bulletins are intended to be only products and versions that are supported by IBM and have not passed their end-of-support or warranty date. Thus, failure to reference unsupported or extended-support products and versions in this Security Bulletin does not constitute a determination by IBM that they are unaffected by the vulnerability. Reference to one or more unsupported versions in this Security Bulletin shall not create an obligation for IBM to provide fixes for any unsupported or extended-support products or versions.

Document Location

Worldwide

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SWG10","label":"AIX"},"Component":"","Platform":[{"code":"PF002","label":"AIX"}],"Version":"7.2, 7.3","Edition":"","Line of Business":{"code":"LOB08","label":"Cognitive Systems"}},{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSPHKW","label":"PowerVM Virtual I\/O Server"},"Component":"","Platform":[{"code":"PF002","label":"AIX"}],"Version":"4.1","Edition":"","Line of Business":{"code":"LOB57","label":"Power"}}]

Document Information

Modified date:
28 September 2026

Initial Publish date:
28 September 2026

UID

ibm17289720