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), impliquantNode::releaseetliste_de_décèsmanipulation - 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 :
- Le pilote Rust Android Binder a été intégré à Linux. v6.18-rc1selon la documentation du projet Rust pour Linux.
- 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.implcomme 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'application | Valeur |
|---|---|
| CVE | CVE-2025-68260 |
| Composant | Pilote 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 cas | Crash du noyau / DoS (description publique) |
| L'exposition dépend | Rust 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

