En-tête négligent

CVE-2025-68260 : La première CVE en code Rust du noyau Linux dans rust_binder, la cause première, les vérifications d'exposition et la stratégie de correction

La CVE-2025-68260 a été largement décrite comme la première CVE attribuée à du code Rust dans le noyau Linux principal. La vulnérabilité se trouve dans le pilote Android Binder (liant_rouille) et est décrit comme un bogue de classe crash : une condition de course qui peut corrompre des pointeurs de liste liée intrusifs et déclencher des oops/panic du noyau (déni de service).

Ce point est important pour les équipes de sécurité, et ce pour deux raisons. Tout d'abord, les bogues du noyau qui ne provoquent qu'un crash ont toujours un impact opérationnel réel, en particulier dans les environnements à haute disponibilité ou à locataires multiples. Deuxièmement, l'exposition dépend de la configuration : de nombreux systèmes Linux ne seront pas affectés si l'implémentation du Rust Binder n'est pas activée et utilisée.

Résumé à l'intention des ingénieurs en sécurité

  • CVE : CVE-2025-68260
  • Composant : Linux kernel Rust Android Binder driver (liant_rouille), impliquant Node::release et liste_de_décès manipulation
  • Classe de bogues : Condition de course + manipulation intrusive et dangereuse de la liste → corruption du pointeur
  • Impact : Crash du noyau / DoS (décrit publiquement)
  • L'exposition dépend de : Si le Rust Binder est activé/sélectionné (par ex, ANDROID_BINDER_IPC_RUST, binder.impl)
  • Statut NVD : "En attente d'analyse" au moment de la rédaction (CVSS peut être en attente)

CVE-2025-68260 : un bogue de simultanéité dans le pilote Rust Binder

L'enregistrement NVD décrit une opération spécifique de suppression non sécurisée sur une liste chaînée intrusive. L'opération n'est sûre que si aucun autre thread ne peut toucher simultanément les éléments de la liste chaînée intrusive. précédent/suivant pointeurs. L'échec survient lorsqu'un modèle de blocage dans le système Node::release se chevauche avec un projet concurrent non sécurisé supprimerce qui entraîne une corruption de la liste des liens et des pannes.

NVD inclut un symptôme représentatif de crash du noyau ("Unable to handle kernel paging request...") associé aux pointeurs de liste corrompus, ce qui correspond à une vulnérabilité de type crash plutôt qu'à une faille logique subtile.

Une brève esquisse conceptuelle du schéma problématique (pour l'intuition, pas pour l'exploitation) ressemble à ceci :

// Esquisse conceptuelle (pas le code complet du noyau) :
lock(death_list) ;
move_all_items_to_local_list() ;
déverrouiller(death_list) ;

// Itération sans le verrou
for item in local_list {
    // traiter l'élément
}

// Un thread concurrent peut le faire :
unsafe { death_list.remove(item) } // touche les pointeurs prev/next
=> course aux données => corruption de pointeurs => crash du noyau

La clé est l'invariant de simultanéité : toucher des pointeurs de liste intrusifs en toute sécurité nécessite des garanties d'accès exclusif, et ces garanties échouent lorsque les éléments de la liste peuvent être modifiés en parallèle au cours d'une traversée sans verrou.

Pourquoi c'est devenu la "première CVE du noyau Rust" ?

Greg Kroah-Hartman (responsable de la stabilité) a déclaré publiquement qu'il s'agissait de la première CVE du noyau pour du code Rust, en soulignant que le problème "provoque juste un plantage" et ne représente pas une voie démontrée vers une corruption de la mémoire pouvant être utilisée à des fins militaires.

Ce cadrage est utile d'un point de vue opérationnel : il aide les équipes de sécurité à trier le bogue comme un risque de disponibilité dont l'exposition dépend de la configuration, tout en évitant d'exagérer l'exploitabilité.

Systèmes concernés : Calendrier des versions et réalité de la configuration

La chronologie et le modèle d'exposition s'appuient sur deux faits :

  1. Le pilote Rust Android Binder a été intégré à Linux. v6.18-rc1selon la documentation du projet Rust pour Linux.
  2. La configuration du noyau d'Android prend explicitement en charge la sélection d'une implémentation de Binder, y compris une variante de Rust. La documentation Kconfig fait référence à binder.impl comme le bouton de la ligne de commande du noyau utilisé pour choisir l'implémentation et inclut les options régissant la valeur par défaut.

Cela signifie que l'exposition n'est pas "tout Linux". Un parc de serveurs génériques peut ne jamais activer Rust Binder. Mais les noyaux axés sur Android, les machines de développement exécutant des piles de conteneurs Android ou les constructions personnalisées qui activent l'implémentation de Rust Binder devraient considérer CVE-2025-68260 comme pouvant faire l'objet d'une action.

Le Binder lui-même est un mécanisme IPC fondamental d'Android, largement documenté dans les documents relatifs à l'architecture d'Android.

Contrôles rapides de l'exposition (vérifiables, sans contenu d'exploitation)

Utilisez ces commandes pour déterminer si votre environnement est dans le champ d'application.

Version du noyau

uname -r

Configuration du noyau : Rust + Binder + Rust Binder

Configuration /boot de type distro # (courante sur de nombreux systèmes)
grep -E "CONFIG_ANDROID_BINDER_IPC(_RUST)?|CONFIG_RUST" /boot/config-$(uname -r) 2>/dev/null

# Si /proc/config.gz est activé
zcat /proc/config.gz 2>/dev/null | grep -E "CONFIG_ANDROID_BINDER_IPC(_RUST)?|CONFIG_RUST"

Sélection de l'implémentation du binder (les noyaux Android utilisent souvent binder.impl)

cat /proc/cmdline | tr ' ' '\n' | grep -E '^binder\.impl='

Les binder.impl est documenté dans le Kconfig du noyau Android comme faisant partie du comportement de sélection de l'implémentation.

Chasse aux signaux de collision (symptômes uniquement)

dmesg -T | egrep -i "rust_binder|binder|Unable to handle|paging request|Oops|KASAN" | tail -n 200

Stratégie de remédiation : Mise à niveau d'abord, port arrière seulement avec un véritable système d'information géographique

L'approche la plus sûre est de passer à une version stable du noyau contenant le correctif. La couverture publique met l'accent sur la mise à jour vers des noyaux stables plutôt que sur la sélection de commits isolés, conformément à la stabilité du noyau et aux pratiques de test.

L'enregistrement NVD inclut des références aux sources kernel.org qui suivent le contexte du correctif.

Si vous utilisez un noyau Android personnalisé et que vous ne pouvez pas le mettre à jour immédiatement, la solution technique consiste généralement à intégrer le correctif dans votre jeu de correctifs et à le valider sur des charges de travail à forte intensité de Binder. Pour la plupart des entreprises, cependant, le choix pragmatique est le suivant : consommer les mises à jour des fournisseurs (distro/OEM/GKI channel) et documenter les preuves de la remédiation.

Table de triage

Champ d'applicationValeur
CVECVE-2025-68260
ComposantPilote Rust Android Binder (liant_rouille), Node::release / liste_de_décès chemin
Classe de vulnérabilitéCondition de course + corruption intrusive et dangereuse du pointeur de liste
Impact dans le pire des casCrash du noyau / DoS (description publique)
L'exposition dépendRust Binder activé/sélectionné (ANDROID_BINDER_IPC_RUST, binder.impl)
Enrichissement du NVD"En attente d'analyse" (peut être en attente)

Contexte : CVE connexes du noyau à classer par ordre de priorité

CVE-2025-68260 est décrit publiquement comme étant de classe crash. Pour définir les priorités, de nombreuses organisations se réfèrent aux CVE du noyau dont l'impact sur les privilèges est plus clair :

  • CVE-2019-2215 (Android Binder UAF / EoP) : NVD décrit une élévation de privilèges par le biais d'une utilisation de Binder après la libération ; Project Zero fournit une analyse détaillée.
  • CVE-2022-0847 ("Dirty Pipe") : largement suivi pour une escalade locale des privilèges ; la CISA a émis une alerte.
  • CVE-2024-1086 (nf_tables UAF / LPE) : NVD et Red Hat résument le potentiel LPE d'un use-after-free dans netfilter/nf_tables.

En pratique, il faut traiter CVE-2025-68260 en priorité lorsque Binder/Rust Binder est utilisé activement et que les pannes ont un impact sur l'activité de l'entreprise ; sinon, il ne faut pas laisser le titre de "première CVE Rust" supplanter les problèmes de noyau de classe LPE plus largement accessibles.

Opérationnaliser la réponse avec Penligent

Pour les CVEs du noyau dépendant de la configuration, le goulot d'étranglement est rarement la lecture de l'avis - il s'agit de produire des réponses défendables et évolutives à "où sommes-nous exposés" et "le correctif a-t-il réellement atterri". Penligent peut rationaliser ce cycle en transformant le CVE-2025-68260 en un flux de preuves répétable : collecter les versions du noyau et les signaux de configuration à travers les actifs, regrouper les hôtes par activation de Rust Binder et binder.impl et générer un rapport de remédiation prêt à être audité, avec des références à l'appui. Cette approche est conçue pour la vérification et la clôture, et non pour l'exploitation.

NVD : CVE-2025-68260
https://nvd.nist.gov/vuln/detail/CVE-2025-68260

Avis de Greg Kroah-Hartman (encadrement des crashs ; premier CVE du noyau Rust)
https://social.kernel.org/notice/B1JLrtkxEBazCPQHDM

Couverture de SecurityOnline
https://securityonline.info/rusts-first-breach-cve-2025-68260-marks-the-first-rust-vulnerability-in-the-linux-kernel/

Rust pour Linux : Android Binder Driver (fusionné dans la v6.18-rc1)
https://rust-for-linux.com/android-binder-driver

Kconfig du noyau Android (options de Binder Rust ; sélection de binder.impl)
https://android.googlesource.com/kernel/common/+/refs/tags/android15-6.6-2024-07_r44/drivers/android/Kconfig

Android docs : Aperçu de l'IPC Binder
https://source.android.com/docs/core/architecture/hidl/binder-ipc

NVD : CVE-2019-2215
https://nvd.nist.gov/vuln/detail/CVE-2019-2215

Project Zero RCA : CVE-2019-2215
https://googleprojectzero.github.io/0days-in-the-wild/0day-RCAs/2019/CVE-2019-2215.html

NVD : CVE-2022-0847
https://nvd.nist.gov/vuln/detail/CVE-2022-0847

Alerte CISA : Dirty Pipe
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

Partager l'article :
Articles connexes
fr_FRFrench