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) |
| AIX | 7.3 |
| AIX | 7.2 |
| VIOS | 4.1 |
The vulnerabilities in the following filesets are being addressed:
key_fileset = aix
| Fileset | Lower Level | Upper Level | KEY |
| perl.rte | 5.28.0.0 | 5.28.1.12 | key_w_fs |
| perl.rte | 5.34.0.0 | 5.34.1.11 | key_w_fs |
| perl.rte | 5.38.0.0 | 5.38.2.6 | key_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 Level | Fix |
| 7.2.5 | perl.rte.5.28.1.13 |
| 7.3.2 | perl.rte.5.34.1.12 |
| 7.3.3 | perl.rte.5.38.2.7 |
| 7.3.4 | perl.rte.5.38.2.7 |
| VIOS Level | Fix |
| 4.1.0 | perl.rte.5.34.1.12 |
| 4.1.1 | perl.rte.5.38.2.7 |
| 4.1.2 | perl.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 | Filename | KEY |
| b7703c60190d50e458a991050a69701cfd60a39fecd0ff5c21c26cceee04c36a | perl.rte.5.28.1.13 | key_w_csum |
| 95880cbce79938c63322a62a662965b705dca1ca1408d7166f5de9146228e596 | perl.rte.5.34.1.12 | key_w_csum |
| 9a8d67573b82c14ecb310ce96c956dd90a1e1e2f57a069c8abe7807bd3620aa3 | perl.rte.5.38.2.7 | key_w_csum |
The checksums below were generated using the following command.
"openssl dgst -sha512 [file]"
| openssl dgst -sha512 | Filename | KEY |
| ae8588c8af2ebfc96446e148b133c46acb8ee2f0eee6a088b14129537ce02c14f9d51769ddf053274658fa5f0c8cfef3b1f8e9fb10ea69a2b6c40c852c352adc | perl.rte.5.28.1.1 | key_4K_w_csum |
| 6d3638c031c66f41831ef997578f9a01b0ddd6eddbc5e34f180a184561c226453e1adc37defb5411d930b96b736465f5cf7c8423c6281448fcb825d6d0b5c142 | perl.rte.5.34.1.1 | key_4K_w_csum |
| bb19fd4189ab861069f77047270bf77018d1450b208945d4d970d2d8d1a3c251737678523baa8638d1130124660b39e2c82d6ae4ad819a68a814bae5de5615f7 | perl.rte.5.38.2.7 | 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 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
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
Was this topic helpful?
Document Information
Modified date:
28 September 2026
Initial Publish date:
28 September 2026
UID
ibm17289720