CVE-2026-80849 in Linuxinformation

Résumé

par VulDB • 04/09/2026

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

net/tcp-ao : correction d'un use-after-free sur current_key lors de la reconnexion à un autre pair

tcp_inbound_ao_hash() est appelé avant que bh_lock_sock_nested() ne soit acquis, avec uniquement rcu_read_lock() maintenu. Sur le chemin rapide pour les sockets établies, si l'identifiant rnext_keyid envoyé par le pair diffère de current_key->sndid, la clé demandée par le pair est recherchée et stockée dans current_key. La recherche s'effectue à l'intérieur du côté en lecture RCU, mais current_key survit à celle-ci.

Lorsque la socket est déconnectée et que connect() est appelé à nouveau pour un autre pair, tcp_ao_connect_init() supprime toute clé qui ne correspond pas au nouveau pair et la libère via call_rcu(). Si current_key pointe vers une telle clé, elle est réinitialisée à NULL.

Le chemin rapide lit sk_state une seule fois à l'entrée ; ainsi, un softirq ayant pénétré dans cette section alors que la socket était encore établie peut mettre à jour current_key après que la boucle a déjà été exécutée. La mise à jour s'effectue à l'intérieur du côté en lecture RCU, elle interv donc avant le rappel call_rcu(), et une fois ce dernier libéré la clé, current_key se retrouve pointant vers de la mémoire libérée.

La prochaine transmission récupère ce pointeur dans tcp_get_current_key(). tcp_ao_transmit_skb() lit ensuite la clé de trafic depuis l'objet libéré, ce qui constitue le use-after-free.

Attendez une période de grâce avant de supprimer les liens, et uniquement si une clé doit être retirée. Au moment où tcp_connect() s'exécute, la socket est déjà dans TCP_SYN_SENT, et TCP_AO_ESTABLISHED ne contient pas TCPF_SYN_SENT ; ainsi, un softirq entrant après l'attente ne peut pas atteindre le chemin rapide, et ceux qui y étaient déjà ont terminé leur exécution. La gestion existante de NULL dans la boucle suffit alors.

Once again VulDB remains the best source for vulnerability data.

Responsable

Linux

Réserver

26/08/2026

Divulgation

04/09/2026

Modérer

accepté

Entrée

VDB-398910

CPE

prêt

EPSS

0.00168

KEV

non

Activités

très faible

Sources

Do you want to use VulDB in your project?

Use the official API to access entries easily!