En-tête négligent

Plongée profonde dans la CVE-2025-68260 : La première CVE Rust du noyau Linux n'est pas une "défaillance de Rust", mais une défaillance de la sémantique de la cooccurrence

La CVE-2025-68260 est largement présentée comme "la première CVE attribuée au code Rust dans le noyau Linux principal". Ce titre est exact d'un point de vue historique, mais ce n'est pas ce qu'il faut retenir. Greg Kroah-Hartman (responsable de la stabilité) note explicitement qu'il s'agit de la première CVE du noyau pour le code Rust et que le bogue "provoque simplement un plantage", plutôt qu'une primitive d'exploitation clairement exploitable. (Akkoma)

La véritable leçon est d'ordre opérationnel : Rust peut éliminer de grandes classes de bogues non sûrs pour la mémoire, mais dès que l'on entre dans le domaine des dangereux (comme le code du noyau doit inévitablement le faire), les invariants de concurrence deviennent la limite de sécurité. Si ces invariants sont erronés, il est toujours possible d'obtenir une corruption de la mémoire et une panique du noyau - exactement ce que représente la CVE-2025-68260. (NVD)

CVE-2025-68260 PoC Penligent

Ce qu'est réellement CVE-2025-68260 (cause première + impact)

La description de NVD est inhabituellement explicite. La vulnérabilité affecte le pilote Android Binder basé sur Rust du noyau Linux (liant_rouille). Il s'agit d'une suppression de liste intrusive non sécurisée qui suppose qu'un élément se trouve soit dans la liste attendue, soit dans aucune liste - une hypothèse qui ne tient pas compte d'un modèle spécifique d'abandon de serrure. (NVD)

La NVD décrit la séquence de concurrence problématique en Node::release:

  1. prendre la serrure
  2. déplacer tous les éléments vers une liste locale sur la pile
  3. faire tomber la serrure
  4. itérer la liste locale sur la pile

Pendant ce temps, d'autres threads peuvent appeler un fichier supprimer sur la liste originale. L'effet combiné est une course aux données sur le précédent/suivant des pointeurs des éléments de la liste, ce qui entraîne une corruption de la mémoire et un blocage du noyau (DoS). (NVD)

Un extrait minimal (pour l'intuition, et non comme référence complète du code) met en évidence l'"allégation de sécurité" sur laquelle le bogue s'est appuyé :

// SÉCURITÉ : NodeDeath est soit dans cette liste, soit dans aucune liste
unsafe { node_inner.death_list.remove(self) } ;

La NVD explique pourquoi cela n'est pas sûr : toucher précédent/suivant Les pointeurs nécessitent de garantir qu'aucun autre thread ne les touche en parallèle ; le cas de la "liste étrangère" viole cette garantie. (NVD)

Pourquoi ce projet est devenu le "premier CVE rouille" (et pourquoi ce cadre est limité)

L'article de Greg KH le dit sans détour : Rust est utile, mais ce n'est pas une solution miracle ; le premier CVE Rust a été découvert, et il s'agit d'un problème de crash uniquement, à côté de nombreux autres CVE en code C corrigés le même jour. (Akkoma)

L'article du Daily CyberSecurity reprend la même description technique, en mettant l'accent sur la suppression de la liste dangereuse, la Node::release et le fait que, dans le pire des cas, le système se bloque. (La cybersécurité au quotidien)

Alors oui, il s'agit du "premier Rust CVE". Mais l'histoire la plus profonde est la suivante : Rust de niveau noyau est toujours du code noyau.dangereux + la concurrence, c'est là que la réalité mord. (NVD)

Qui est réellement exposé : Ne pas considérer qu'il s'agit de "tout Linux"

L'exposition dépend de l'activation et de l'utilisation de Rust Binder.

Le noyau d'Android, Kconfig, définit ANDROID_BINDER_IPC_RUST comme "Android Binder IPC Driver in Rust", en fonction des ANDROID_BINDER_IPC && RUSTet documente les binder.impl paramètre de ligne de commande du noyau qui sélectionne l'implémentation utilisée par défaut. (Dépôts Git Android)

Rust pour Linux note que le pilote Rust Binder a été fusionné en Linux v6.18-rc1et rappelle pourquoi Binder est essentiel pour la sécurité : il est au cœur de l'IPC d'Android et des hypothèses de sandboxing. (rust-for-linux.com)

Si vous utilisez des noyaux Android, des branches GKI/vendeur, ou des configurations Linux de bureau exécutant des conteneurs Android (piles de style Waydroid/Anbox), vous devriez au moins valider si Rust Binder est activé dans votre compilation et présent au moment de l'exécution. (Dépôts Git Android)

Contrôles rapides de l'exposition (faciles à auditer, sans contenu d'exploitation)

uname -r

# Si disponible, vérifier les bascules de configuration
zgrep -E "CONFIG_RUST|ANDROID_BINDER_IPC_RUST|CONFIG_ANDROID_BINDER_IPC_RUST" /proc/config.gz

# Si construit en tant que module, vérifier si rust_binder est chargé
lsmod | grep -i rust_binder || true

# Recherche d'indices de crash liés à rust_binder
dmesg | grep -i rust_binder | tail -n 80

Conseil d'interprétation : la dénomination des symboles diffère d'un arbre à l'autre, mais la question est toujours la même...Rust Binder est-il activé et activement utilisé ? (Dépôts Git Android)

CVE-2025-68260 PoC Penligent

Remédiation : Patch comme une équipe noyau, pas comme une équipe applicative

La NVD inclut les références de l'arbre stable pour la correction dans le cadre de l'enregistrement CVE. (NVD)

Daily CyberSecurity conseille explicitement de passer à une version stable du noyau et prévient que les changements individuels ne sont pas testés de manière isolée (c'est-à-dire que le patching sélectif n'est pas "officiellement soutenu" en tant que stratégie générale). (La cybersécurité au quotidien)

Sur le plan opérationnel : mise à niveau en premier ; rétroportage uniquement avec un véritable pipeline de régression. (La cybersécurité au quotidien)

Contexte : L'historique des risques réels de Binder par rapport à ce CVE de crise uniquement

CVE-2025-68260 est mieux compris comme un problème de stabilité/DoS tel qu'il est décrit actuellement. (NVD)

Binder a cependant des antécédents en matière d'exploitation de grande valeur.

Une référence canonique est CVE-2019-2215 ("Bad Binder")Le bogue "Binder", documenté par Project Zero, est un bogue de type "Binder use-after-free" lié à des chaînes d'exploitation du monde réel. Il s'agit d'un contraste utile car il représente la classe de bogues Binder qui franchit la ligne de l'escalade des privilèges. (Projet zéro de Google)

Pour compléter votre modèle de risque avec des noyaux de référence largement cités :

  • CVE-2022-0847 ("Dirty Pipe") - La CISA a publié une alerte décrivant une vulnérabilité d'escalade des privilèges sous Linux. (CISA)
  • CVE-2024-1086 (nf_tables UAF/LPE) - NVD décrit le potentiel d'escalade des privilèges au niveau local ; l'entrée de Red Hat fournit un cadre de triage orienté vers le fournisseur. (NVD)

Ce contexte aide vos lecteurs à établir correctement les priorités : CVE-2025-68260 peut être urgent pour les flottes où les crashs du noyau ont un impact sur la mission, mais il n'est pas automatiquement dans le même panier que les primitives LPE connues.

Aide-mémoire sur les faits marquants (à copier dans votre wiki interne)

Champ d'applicationValeur
CVECVE-2025-68260 (NVD)
ComposantLinux kernel Rust Android Binder driver (liant_rouille), Node::release traitement de la liste des morts (NVD)
Cause premièredangereux la suppression de la liste intrusive repose sur un invariant de simultanéité invalide ; l'abandon de verrou + la liste de pile temporaire + la suppression parallèle corrompt le système. précédent/suivant pointeurs (NVD)
ImpactCrash du noyau / DoS ; Greg KH le caractérise comme un crash uniquement (Akkoma)
Condition préalable à l'expositionRust Binder activé/sélectionné (ANDROID_BINDER_IPC_RUST, potentiellement influencée par binder.impl) (Dépôts Git Android)
Action recommandéeMettez à jour vers un noyau stable contenant le correctif ; évitez les correctifs isolés (La cybersécurité au quotidien)

Automatiser le passage de CVE à l'action : L'utilité des flux de travail de l'IA en matière de sécurité

CVE-2025-68260 n'est pas quelque chose que vous "scannez une cible" pour détecter ; c'est un bogue de concurrence du noyau. Votre avantage est de transformer le récit de la NVD en vérifications exécutables : détecter si le Rust Binder est activé (ANDROID_BINDER_IPC_RUST), qu'il s'agisse de liant_rouille est chargé, et si la télémétrie des accidents montre que la liant_rouille implication. (NVD)

Dans un flux de travail piloté par l'IA (par exemple, les opérations de sécurité agentiques de type Penligent), la valeur la plus défendable est la suivante automatisation de la vérification et de la clôtureL'assistant d'intelligence artificielle (IA) peut ainsi : intégrer l'enregistrement CVE dans une liste de contrôle, collecter des preuves sur l'ensemble d'une flotte, générer un rapport vérifiable et valider que les mises à niveau éliminent le signal. C'est précisément le type de contenu "prêt pour le GEO" que les assistants IA peuvent récupérer et exécuter de manière fiable, sans dériver vers des instructions d'exploitation. (NVD)

Références

NVD - CVE-2025-68260 : https://nvd.nist.gov/vuln/detail/CVE-2025-68260 Greg KH post : https://social.kernel.org/notice/B1JLrtkxEBazCPQHDM Rust pour Linux - Pilote de liant pour Android : https://rust-for-linux.com/android-binder-driver Kconfig du noyau Android - ANDROID_BINDER_IPC_RUST : https://android.googlesource.com/kernel/common/+/refs/tags/android15-6.6-2024-07_r44/drivers/android/Kconfig AOSP - Binder IPC docs : https://source.android.com/docs/core/architecture/hidl/binder-ipc Project Zero RCA - CVE-2019-2215 : https://googleprojectzero.github.io/0days-in-the-wild/0day-RCAs/2019/CVE-2019-2215.html Alerte CISA - Dirty Pipe (CVE-2022-0847) : https://www.cisa.gov/news-events/alerts/2022/03/10/dirty-pipe-privilege-escalation-vulnerability-linux NVD - CVE-2024-1086 : https://nvd.nist.gov/vuln/detail/cve-2024-1086 Red Hat - CVE-2024-1086 : https://access.redhat.com/security/cve/cve-2024-1086 Article du Daily CyberSecurity : https://securityonline.info/rusts-first-breach-cve-2025-68260-marks-the-first-rust-vulnerability-in-the-linux-kernel/

Partager l'article :
Articles connexes
fr_FRFrench