- Description
- Perl versions through 5.43.10 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.
- Source
- 9b29abf9-4ab0-4765-b253-1875cd9b441e
- NVD status
- Analyzed
- Products
- perl
CVSS 3.1
- Type
- Primary
- Base score
- 8.4
- Impact score
- 5.9
- Exploitability score
- 2.5
- Vector string
- CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- Severity
- HIGH
- 9b29abf9-4ab0-4765-b253-1875cd9b441e
- CWE-125
- Hype score
- Not currently trending
[
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:a:perl:perl:*:*:*:*:*:*:*:*",
"matchCriteriaId": "8122F8D4-DD5A-4167-AB6A-BA1323CC4349",
"versionEndIncluding": "5.43.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
]