CVE-2026-12087
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.
Scoring
- Severity
- CRITICAL
- CVSS base score
- 9.1
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
- EPSS probability
- 0.37%
- CWE
- CWE-125, CWE-805
- Published
- 2026-06-15
- Last modified
- 2026-06-16
Affected products
- PEVANS Socket
Weakness type
Related vulnerabilities
- CVE-2026-87961 — ESP32-audioI2S 3.4.4 through 4.0.0 Heap-based Out-of-Bounds Read via Shadowed Length Parameter in read_ID3_Header
- CVE-2026-42806 — An out-of-bounds read vulnerability was discovered in the Bosch BME690 SensorAPI (C-driver) in...
- CVE-2026-87875 — Cups: openprinting cups: heap out-of-bounds read in cupsutf32toutf8() via missing source-length bound
- CVE-2026-22590 — Fast-DDS Discovery Server: Out-of-Bounds Read & Heap Memory Disclosure via DATA_FRAG sampleSize / fragmentsInSubmessage
- CVE-2026-87824 — zstd-jni 1.3.3-1 through 1.5.7-13 Out-of-Bounds Read via Zstd.trainFromBufferDirect
- CVE-2026-73324 — VLC media player 3.0.0 through 3.0.23 Heap Out-of-Bounds Read via Unterminated RealRTSP Response Line
- CVE-2026-87795 — zstd-jni 1.2.0 through 1.5.7-13 Out-of-Bounds Read via ZstdDictCompress
- CVE-2026-87736 — An issue was discovered in the mirage-crypto-ec package before 2.3.0 for OCaml. There is an EC...