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.
Configurations

No configuration.

History

25 Oct 2026, 23:10

Type Values Removed Values Added
Summary
  • (es) Las versiones de Socket anteriores a la 2.041 para Perl tienen una lectura de montón fuera de límites. En Socket.xs, pack_ip_mreq_source() verifica la longitud de su argumento source antes de que se lea el argumento, por lo que la verificación prueba la longitud en bytes arrastrada desde el argumento multiaddr precedente en su lugar. Ambas direcciones ocupan un campo de 4 bytes, por lo que un multiaddr válido permite que un source de cualquier longitud pase la verificación, y el source se copia luego en el campo imr_sourceaddr de 4 bytes con una copia de tamaño fijo. Un source más corto que 4 bytes no es rechazado, y la copia lee hasta 3 bytes más allá del final de su búfer. Llamar a pack_ip_mreq_source() con un valor source más corto que 4 bytes copia memoria de montón adyacente en la estructura empaquetada devuelta.

Information

Published : 2026-06-15 22:16

Updated : 2026-10-25 23:10


NVD link : CVE-2026-12087

Mitre link : CVE-2026-12087

CVE.ORG link : CVE-2026-12087


JSON object : View

Products Affected

No product.

CWE
CWE-125

Out-of-bounds Read

CWE-805

Buffer Access with Incorrect Length Value