CVE-2026-98276 in Linuxinformation

Résumé

par VulDB • 06/10/2026

Dans le noyau Linux, la vulnérabilité suivante a été corrigée :

net : verrouiller la prise réseau dans sock_gettstamp()

Les champs sk->sk_flags ne doivent être modifiés que lorsque le verrou de la prise réseau est détenu, car sock_set_flag() et sock_reset_flag() utilisent des opérations non atomiques (__set_bit() et __clear_bit()).

sock_gettstamp() est l'un des derniers endroits où un bit de sk->sk_flags est modifié depuis un appel système sans détenir le verrou de la prise réseau, via sock_enable_timestamp(sk, SOCK_TIMESTAMP).

sk_set_memalloc() et sk_clear_memalloc() modifient également sk->sk_flags sans le verrou de la prise réseau, mais leurs appels (nbd, iscsi_tcp, nvme-tcp, sunrpc, wireguard) nécessitent une auditage minutieux ; cela sera traité dans un correctif séparé.

Jungwoo Lee et Wongi Lee ont signalé un use-after-free sur une socket UDP causé par ce bug : un ioctl SIOCGSTAMPNS_NEW en concurrence avec bind() peut annuler le bit SOCK_RCU_FREE que udp_lib_get_port() vient de définir, car les deux threads effectuent une opération lecture-modification-écriture sur le même mot.

CPU 0 (bind) CPU 1 (SIOCGSTAMPNS_NEW) -------------------------------- ---------------------------- read sk_flags = F read sk_flags = F compute F | BIT(SOCK_RCU_FREE) compute F | BIT(SOCK_TIMESTAMP) store F | BIT(SOCK_RCU_FREE) sk_add_node_rcu(sk, ...) store F | BIT(SOCK_TIMESTAMP)

Après la mise à jour perdue (lost update), SOCK_RCU_FREE est effacé alors que la socket reste visible pour les recherches de réception UDP sans verrou. sk_destruct() libère ensuite immédiatement la socket au lieu d'attendre une période de grâce RCU, tandis que le chemin de réception conserve toujours un pointeur non référencé vers celle-ci :

BUG: KASAN: slab-use-after-free in ipv4_pktinfo_prepare+0x30/0x410 Read of size 8 at addr ffff888008806610 by task exploit/207 CPU: 0 UID: 1000 PID: 207 Comm: exploit Not tainted 6.12.95+ #1 ipv4_pktinfo_prepare+0x30/0x410 udp_queue_rcv_one_skb+0x51c/0x1180 udp_unicast_rcv_skb+0x109/0x350 ip_protocol_deliver_rcu+0x14b/0x310 ip_local_deliver_finish+0x29d/0x390 ip_local_deliver+0x24d/0x2a0

Ne détenez le verrou de la socket que lorsque SOCK_TIMESTAMP doit être défini, afin de maintenir le cas courant sans verrou.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Responsable

Linux

Réserver

25/09/2026

Divulgation

06/10/2026

Modérer

accepté

Entrée

VDB-413997

EPSS

0.00135

KEV

non

Activités

très faible

Sources

Interested in the pricing of exploits?

See the underground prices here!