Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

CVE-2026-31411

Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-476 Desreferencia a puntero nulo (NULL)
Fecha de publicación:
08/04/2026
Última modificación:
20/05/2026

Descripción

*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> net: atm: fix crash due to unvalidated vcc pointer in sigd_send()<br /> <br /> Reproducer available at [1].<br /> <br /> The ATM send path (sendmsg -&gt; vcc_sendmsg -&gt; sigd_send) reads the vcc<br /> pointer from msg-&gt;vcc and uses it directly without any validation. This<br /> pointer comes from userspace via sendmsg() and can be arbitrarily forged:<br /> <br /> int fd = socket(AF_ATMSVC, SOCK_DGRAM, 0);<br /> ioctl(fd, ATMSIGD_CTRL); // become ATM signaling daemon<br /> struct msghdr msg = { .msg_iov = &amp;iov, ... };<br /> *(unsigned long *)(buf + 4) = 0xdeadbeef; // fake vcc pointer<br /> sendmsg(fd, &amp;msg, 0); // kernel dereferences 0xdeadbeef<br /> <br /> In normal operation, the kernel sends the vcc pointer to the signaling<br /> daemon via sigd_enq() when processing operations like connect(), bind(),<br /> or listen(). The daemon is expected to return the same pointer when<br /> responding. However, a malicious daemon can send arbitrary pointer values.<br /> <br /> Fix this by introducing find_get_vcc() which validates the pointer by<br /> searching through vcc_hash (similar to how sigd_close() iterates over<br /> all VCCs), and acquires a reference via sock_hold() if found.<br /> <br /> Since struct atm_vcc embeds struct sock as its first member, they share<br /> the same lifetime. Therefore using sock_hold/sock_put is sufficient to<br /> keep the vcc alive while it is being used.<br /> <br /> Note that there may be a race with sigd_close() which could mark the vcc<br /> with various flags (e.g., ATM_VF_RELEASED) after find_get_vcc() returns.<br /> However, sock_hold() guarantees the memory remains valid, so this race<br /> only affects the logical state, not memory safety.<br /> <br /> [1]: https://gist.github.com/mrpre/1ba5949c45529c511152e2f4c755b0f3

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 2.6.12.1 (incluyendo) 5.10.252 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.11 (incluyendo) 5.15.202 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.16 (incluyendo) 6.1.165 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.2 (incluyendo) 6.6.128 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.7 (incluyendo) 6.12.75 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.13 (incluyendo) 6.18.14 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.19 (incluyendo) 6.19.4 (excluyendo)
cpe:2.3:o:linux:linux_kernel:2.6.12:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:2.6.12:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:2.6.12:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:2.6.12:rc5:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:*