CVE-2026-57432
Full vulnerability record from the local CVENow database.
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.
Severity
HIGH
CVSS score
8.4
(v3.1)
Vulnerability status
Modified
Source identifier
9b29abf9-4ab0-4765-b253-1875cd9b441e
Published
2026-07-13 17:17:55.670000
Last modified
2026-10-24 22:10:00.210000
View original CVE JSON
{
"id": "CVE-2026-57432",
"sourceIdentifier": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
"published": "2026-07-13T17:17:55.670",
"lastModified": "2026-10-24T22:10:00.210",
"vulnStatus": "Modified",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "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.\n\nS_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.\n\nA template derived from untrusted input can read heap memory past the buffer and return it to the caller."
},
{
"lang": "es",
"value": "Las versiones de Perl hasta la 5.43.10 tienen un desbordamiento de entero en S_measure_struct que conduce a una lectura de pila fuera de límites en pack y unpack.\n\nS_measure_struct suma el tamaño de cada elemento multiplicado por su recuento de repeticiones a un total acumulado sin verificación de desbordamiento, por lo que un recuento de repeticiones grande en una plantilla de pack o unpack envuelve el total SSize_t con signo a negativo. Los códigos de posición @, X y x luego protegen sus movimientos con una comparación de longitud con signo que pasa cuando la longitud es negativa, avanzando el puntero del búfer fuera de límites.\n\nUna plantilla derivada de entrada no confiable puede leer memoria de pila más allá del búfer y devolverla al llamador."
}
],
"affected": [
{
"source": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
"affectedData": [
{
"defaultStatus": "unaffected",
"collectionURL": "https://cpan.org/modules",
"packageName": "perl",
"modules": [
"perl"
],
"programFiles": [
"pp_pack.c"
],
"programRoutines": [
{
"name": "S_measure_struct"
}
],
"repo": "https://github.com/Perl/perl5",
"packageURL": "pkg:cpan/perl",
"versions": [
{
"version": "0",
"lessThan": "5.40.5-RC1",
"versionType": "custom",
"status": "affected"
},
{
"version": "5.41.0",
"lessThan": "5.42.3-RC1",
"versionType": "custom",
"status": "affected"
},
{
"version": "5.43.0",
"lessThan": "5.43.11",
"versionType": "custom",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV31": [
{
"source": "[email protected]",
"type": "Primary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"baseScore": 8.4,
"baseSeverity": "HIGH",
"attackVector": "LOCAL",
"attackComplexity": "LOW",
"privilegesRequired": "NONE",
"userInteraction": "NONE",
"scope": "UNCHANGED",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"availabilityImpact": "HIGH"
},
"exploitabilityScore": 2.5,
"impactScore": 5.9
},
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"type": "Secondary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"baseScore": 8.4,
"baseSeverity": "HIGH",
"attackVector": "LOCAL",
"attackComplexity": "LOW",
"privilegesRequired": "NONE",
"userInteraction": "NONE",
"scope": "UNCHANGED",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"availabilityImpact": "HIGH"
},
"exploitabilityScore": 2.5,
"impactScore": 5.9
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2026-07-14T13:34:38.894921Z",
"id": "CVE-2026-57432",
"options": [
{
"exploitation": "none"
},
{
"automatable": "no"
},
{
"technicalImpact": "total"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-125"
},
{
"lang": "en",
"value": "CWE-190"
}
]
}
],
"configurations": [
{
"nodes": [
{
"operator": "OR",
"negate": false,
"cpeMatch": [
{
"vulnerable": true,
"criteria": "cpe:2.3:a:perl:perl:*:*:*:*:*:*:*:*",
"versionEndIncluding": "5.43.10",
"matchCriteriaId": "8122F8D4-DD5A-4167-AB6A-BA1323CC4349"
}
]
}
]
}
],
"references": [
{
"url": "https://github.com/Perl/perl5/commit/40754edc72dd3e513d758153c0e2f0215897740e.patch",
"source": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
"tags": [
"Patch"
]
},
{
"url": "https://github.com/Perl/perl5/commit/5f7eb6bbbe0510964e3fb1d6bb691e5445913e55.patch",
"source": "9b29abf9-4ab0-4765-b253-1875cd9b441e",
"tags": [
"Patch"
]
},
{
"url": "http://www.openwall.com/lists/oss-security/2026/07/13/6",
"source": "af854a3a-2127-422b-91ae-364da2661108",
"tags": [
"Mailing List",
"Patch",
"Third Party Advisory"
]
}
]
}