
CVE-2026-64531 (OVSwrap) PoC - Élévation de privilèges locale (LPE) Open vSwitch du noyau Linux ; pour la validation de correctifs et la recherche en sécurité
PoC d'élévation de privilèges locale (utilisateur normal → root) dans le module Open vSwitch du noyau Linux. Exploite le dépassement d'entier (wrap-around) du champ nla_len de 16 bits pour passer d'utilisateur normal à root.
Lorsque le flux d'actions imbriquées généré par OVS dépasse 65 535 octets, le champ nla_len de 16 bits subit un dépassement (wrap-around). Un attaquant n'ayant besoin que de CAP_NET_ADMIN dans un espace de noms utilisateur/réseau privé peut construire une action CLONE surdimensionnée, faisant tomber le parseur du noyau sur des données conntrack contrôlées par l'attaquant, obtenant ainsi des primitives de lecture arbitraire du noyau et de décrémentation mot à mot, pour finalement modifier ses propres identifiants et s'élever à root.
Ce bug provient d'une affectation non sûre vieille de 13 ans (commit 74f84a5726c7), auparavant protégée par une limite de longueur totale de 32 Kio; il a été activé en mars 2025 lorsque le commit a1e64addf3ff a supprimé cette limite.
openvswitch du noyau Linuxunshare -Urn (aucun privilège d'espace de noms initial requis)Les séries 6.13–6.17, 6.19 et 7.0 sont en fin de vie (EOL), sans correctif.
unshare -Urn), sudo installé# 必须以普通(非 root)用户运行
python3 ovswrap-poc.py
Le script effectue automatiquement unshare -Urn pour entrer dans un espace de noms utilisateur+réseau privé; il intègre une table de décalages précalculés pour environ 800 versions du noyau x86-64. En cas d'absence de correspondance, il tente de les dériver dynamiquement à partir de System.map / BTF / pahole. En cas de succès, il obtient un shell root sans mot de passe en écrivant une entrée dans /etc/sudoers.d/.
Réservé à la recherche en sécurité, à la validation de vulnérabilités et aux tests défensifs. Ce PoC corrompt les identifiants du noyau, modifie les fichiers sudoers, laisse des processus zombies et un état OVS corrompu. Exécutez-le impérativement dans une machine virtuelle jetable, et non en production ou dans un environnement non autorisé.
3f1f755366687d051174739fb99f7d560202f60b| Série du noyau | Plage affectée | Première version corrigée |
|---|
| 5.15.y | 5.15.180 – 5.15.211 | 5.15.212 |
| 6.1.y | 6.1.132 – 6.1.177 | 6.1.178 |
| 6.6.y | 6.6.84 – 6.6.144 | 6.6.145 |
| 6.12.y | 6.12.20 – 6.12.96 | 6.12.97 |
| 6.18.y | 6.18.0 – 6.18.39 | 6.18.40 |
| 7.1.y | 7.1.0 – 7.1.4 | 7.1.5 |