CVE-2026-74586
sctp : effacer new_transport lors de la suppression d'un pair
- Publié
- 22 août 2026
- Mise à jour
- 25 août 2026
- Attribution de CNA
- Linux
- Preuve observée
- 9 sept. 2026
CVSS primaire
nvd · CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HFaible · 30 prochains jours
- Percentile
- 41,7 %
- Date du modèle
- 21 sept. 2026
EPSS est une estimation statistique, et non une certitude ou une mesure d'impact. Combinez-le avec CVSS, le statut KEV, l'exposition et votre environnement.
Résumé
Dans le noyau Linux, la vulnérabilité suivante a été résolue : sctp : effacer new_transport lors de la suppression d'un pair `sctp_process_asconf_param()` stocke un transport de pair nouvellement ajouté dans `asoc->new_transport`. Après le traitement de tous les paramètres du bloc ASCONF, `sctp_sf_do_asconf()` utilise ce pointeur pour envoyer un HEARTBEAT au nouveau transport. Un ASCONF authentifié provenant d'un pair SCTP distant peut ajouter un transport puis le supprimer à nouveau avec un paramètre DEL-IP générique dans le même bloc. La suppression générique préserve le transport sur lequel l'ASCONF est arrivé, mais supprime le transport nouvellement ajouté via `sctp_assoc_del_nonprimary_peers()`. La suppression n'efface pas `asoc->new_transport`, le laissant pointer vers le transport supprimé. `sctp_sf_do_asconf()` crée alors un HEARTBEAT dont `chunk->transport` pointe vers le transport supprimé sans détenir de référence de transport. Lors du remplacement d'adresse locale, `src_out_of_asoc_ok` conserve ce HEARTBEAT sur `control_chunk_list`. Après la libération du transport par RCU, un ASCONF_ACK réussi pour l'adresse de remplacement libère le HEARTBEAT mis en file d'attente et `sctp_outq_select_transport()` lit l'état du transport libéré. Le problème a été découvert lors d'un audit statique des objets SCTP. Avec un pair authentifié, le reproducteur a déclenché le même rapport KASAN dans 2 des 2 exécutions non corrigées sur un noyau netdev/main avec KASAN activé : BUG: KASAN: slab-use-after-free in sctp_outq_select_transport Read of size 4 at addr ffff88800b9bd95c by task python3/197 Call Trace: sctp_outq_select_transport+0x549/0x8b0 [sctp] sctp_outq_flush+0x306/0x2c60 [sctp] sctp_transport_immediate_rtx+0xaf/0x260 [sctp] sctp_process_asconf_ack+0xa48/0xf70 [sctp] Allocated by task 197: sctp_transport_new+0x68/0x650 [sctp] sctp_assoc_add_peer+0x258/0x12a0 [sctp] sctp_process_asconf+0x5e9/0x1090 [sctp] Last potentially related work creation: __call_rcu_common.constprop.0+0x77/0xb70 sctp_assoc_del_nonprimary_peers+0x7c/0xd0 [sctp] sctp_process_asconf+0xd9c/0x1090 [sctp] Le premier accès invalide était une lecture de quatre octets de `transport->state` à `net/sctp/outqueue.c:833`. Le même reproducteur a exécuté la séquence complète d'ASCONF authentifié et de remplacement d'adresse locale avec ce correctif sans rapport KASAN ni oops. Effacez `new_transport` lorsque son pair est supprimé, avant qu'il ne puisse être utilisé pour créer le HEARTBEAT.
Sources
Utilisation responsable
Utilisez les informations de vulnérabilité uniquement sur les systèmes que vous possédez ou que vous êtes autorisé à tester. Kitploit renvoie aux métadonnées de la recherche publique et ne stocke pas de code d'exploitation ni de charges utiles malveillantes.