What’s Vulnerable › Vulnerabilities
CVE-2026-12087: Socket versions before 2.041 for Perl have an out-of-bounds heap read
- Severity: critical (CVSS 9.1 v3.1)
- Exploited in the wild: not listed in CISA KEV
- EPSS: 0.6% probability of exploitation in the next 30 days
- Public exploit or detection template: none known
- Published: 2026-06-15 · updated 2026-10-25
- Weakness: CWE-125
Description
Socket versions before 2.041 for Perl have an out-of-bounds heap read. In Socket.xs, pack_ip_mreq_source() checks the length of its source argument before the argument is read, so the check tests the byte length carried over from the preceding multiaddr argument instead. Both addresses occupy a 4-byte field, so a valid multiaddr lets a source of any length pass the check, and the source is then copied into the 4-byte imr_sourceaddr field with a fixed-size copy. A source shorter than 4 bytes is not rejected, and the copy reads up to 3 bytes past the end of its buffer. Calling pack_ip_mreq_source() with a source value shorter than 4 bytes copies adjacent heap memory into the returned packed structure.
Affected products
- PEVANS Socket: before 2.041 — fixed in 2.041
How to fix
Upgrade to a fixed version: PEVANS Socket 2.041. Check the vendor advisory for mitigations.
References
- https://github.com/Perl/perl5/commit/de19a0b0ad1900fef976c5c1400bd8f11ec6c6cb.patch
- https://metacpan.org/release/PEVANS/Socket-2.041/changes
- http://www.openwall.com/lists/oss-security/2026/06/15/10
Get alerted when CVE-2026-12087 or the next vulnerability affects your stack