CVE-2026-12087

Socket versions before 2.041 for Perl have an out-of-bounds heap read

State
Published
Severity
9.1 Critical
Published
Jun 15, 2026
Updated
Jun 16, 2026
Reserved
Jun 12, 2026

Read the record on cve.org

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.

Scores

CVSSScoreVectorSource
3.19.1 CriticalCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:HCISA-ADP

Weaknesses

  • CWE-125 Out-of-bounds Read
  • CWE-805 Buffer Access with Incorrect Length Value

Affected Products

ProductVersions
SocketPEVANS
  • before 2.041Affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.