Storable versions before 3.41 for Perl have a signed integer overflow when deserializing a crafted SX_HOOK record. retrieve_hook_common reads a signed 32-bit item count from an SX_HOOK record and calls av_extend with that count plus one. A count of I32_MAX wraps the addition to a negative value. A crafted blob passed to thaw or retrieve triggers the overflow; av_extend receives the negative count and dies with a panic, terminating the deserialization.
Fix
Patch, vendor advisory and mitigation references on NVD 2
- https://github.com/Perl/perl5/commit/e4f681784bcdeaa91ff02a2fa4cdcae5c46779d7.patch Patch
- http://www.openwall.com/lists/oss-security/2026/07/13/7 Mailing List, Patch, Third Party Advisory
Every line above is quoted from NVD, CISA, Microsoft, the vendor's own advisory or DISA; nothing is generated.
Change history 1
- First seenCVSS 9.8 · nwclarkNVD modified 2026-10-24 22:10
Affected (CPE criteria) 1
cpe:2.3:a:nwclark:storable:*:*:*:*:*:perl:*:*
References 2
- https://github.com/Perl/perl5/commit/e4f681784bcdeaa91ff02a2fa4cdcae5c46779d7.patch Patch
- http://www.openwall.com/lists/oss-security/2026/07/13/7 Mailing List, Patch, Third Party Advisory