
Dépôt de recherche pour CVE-2026-80844 (DirtyAH6), une élévation de privilèges locale dans le noyau Linux via IPv6 AH6/XFRM, avec PoC, analyse de la cause racine et du correctif.
DirtyAH6
CVE-2026-80844 est une vulnérabilité du noyau Linux affectant le sous-système IPv6 Authentication Header (AH6) / XFRM.
La vulnérabilité est causée par une validation insuffisante du champ
segments_left de l'en-tête de routage IPv6, pouvant entraîner une opération
mémoire hors limites et une corruption de la mémoire du noyau.
Ce dépôt est destiné uniquement à la recherche de sécurité autorisée, l'analyse de vulnérabilités, les CTF et les tests défensifs.
N'utilisez pas cette recherche contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite de test.
La vulnérabilité existe dans le chemin de traitement IPv6 AH6.
Le code affecté effectue une manipulation de l'en-tête de routage via :
net/ipv6/ah6.c
Plus précisément, la logique vulnérable implique :
ipv6_rearrange_rthdr()
La fonction ne validait pas correctement la relation entre :
hdrlen
et :
segments_left
Un attaquant capable de fournir un paquet IPv6 spécialement conçu peut donc amener le noyau à opérer sur de la mémoire en dehors des limites attendues de l'en-tête de routage.
Cela peut conduire à :
Paquet IPv6 malformé
│
▼
Traitement AH6 / XFRM
│
▼
État d'en-tête de routage invalide
│
▼
Opération mémoire hors limites
│
▼
Corruption de la mémoire du noyau
│
▼
Élévation de privilèges potentielle
Le problème fondamental est la validation insuffisante de la valeur
segments_left de l'en-tête de routage IPv6.
Conceptuellement, la condition vulnérable peut être représentée comme :
segments_left > adresses d'en-tête de routage disponibles
Le noyau doit s'assurer que le nombre de segments demandé par l'en-tête de routage est cohérent avec la longueur réelle de l'en-tête avant de manipuler les données d'adresses associées.
Sans cette validation, les opérations mémoire ultérieures peuvent s'effectuer au-delà des limites valides du tampon.
Une exploitation réussie peut permettre à un attaquant disposant des capacités/environnement locaux requis de corrompre la mémoire du noyau.
Les conséquences potentielles incluent :
L'exploitabilité exacte dépend de la configuration du noyau, des namespaces/capacités disponibles et d'autres conditions environnementales.
net/ipv6/ah6.c
Traitement concerné :
AH6
└── En-tête de routage IPv6
└── ipv6_rearrange_rthdr()
Le scénario problématique implique des métadonnées d'en-tête de routage incohérentes.
Par exemple, conceptuellement :
hdrlen → décrit un nombre limité d'adresses
segments_left → déclare plus d'adresses qu'il n'y en a de disponibles
Cette incohérence doit être rejetée avant que le noyau n'effectue le réarrangement des adresses.
Le correctif amont introduit une validation de la valeur segments_left de
l'en-tête de routage avant que le noyau n'effectue l'opération vulnérable.
Le commit amont associé est :
7bad4bda74dc4713f398d3b7624ff05478e3a568
xfrm: ah6: validate routing header segments_left
Le correctif de sécurité peut être résumé comme suit :
Avant :
Faire confiance à segments_left
↓
Réarranger les adresses
↓
Accès hors limites potentiel
Après :
Valider segments_left
↓
Rejeter l'en-tête malformé
↓
Traitement AH6 sûr
Les versions affectées dépendent de l'historique des backports amont et des distributeurs.
Les utilisateurs doivent vérifier l'avis de sécurité de leur distribution plutôt que de se fier uniquement au numéro de version amont.
Des exemples de versions stables amont corrigées incluent :
Vérifier le noyau en cours d'exécution :
uname -a
ou :
uname -r
Vérifier les informations détaillées du noyau :
cat /proc/version
Pour les systèmes basés sur Debian/Kali :
apt-cache policy linux-image-amd64
Pour les systèmes basés sur RPM :
rpm -q kernel
Les noyaux des distributions intègrent fréquemment des correctifs de sécurité sans modifier la version amont de manière évidente. Vérifiez toujours l'avis du fournisseur/le changelog.
L'atténuation principale consiste à mettre à niveau vers un noyau contenant le correctif de sécurité.
Debian/Kali :
sudo apt update
sudo apt full-upgrade
Puis redémarrer :
sudo reboot
Vérifier :
uname -r
Pour les systèmes de production, consultez l'avis de sécurité officiel de la distribution Linux avant d'appliquer les mises à jour du noyau.
Environnement isolé recommandé :
Hôte
│
├── Kali Linux
│
└── VM Linux vulnérable
│
├── Noyau de débogage
├── IPv6 activé
├── Support AH6/XFRM
└── Symboles du noyau
Outils de débogage utiles :
gdb
gef
pwndbg
crash
dmesg
pahole
objdump
readelf
Débogage du noyau :
sudo dmesg -w
Inspecter les symboles du noyau :
cat /proc/kallsyms
CVE-2026-80844-DirtyAH6/
│
├── README.md
│
├── exploit/
│ ├── poc.c
│ └── Makefile
│
├── analysis/
│ ├── vulnerability.md
│ ├── root-cause.md
│ └── patch-analysis.md
│
├── kernel/
│ ├── vulnerable.patch
│ └── fixed.patch
│
├── docs/
│ └── research-notes.md
│
├── screenshots/
│
└── LICENSE
Le matériel PoC ne doit être exécuté qu'à l'intérieur d'un environnement de laboratoire isolé.
L'implémentation de recherche se concentre sur la démonstration de la condition d'en-tête de routage IPv6 malformé et l'observation du comportement résultant du noyau.
Flux de recherche attendu :
Fabriquer un en-tête IPv6 malformé
↓
Transmettre dans un labo isolé
↓
Traitement AH6/XFRM
↓
Observer le comportement du noyau
↓
Capturer dmesg / informations de crash
↓
Comparer noyau vulnérable vs corrigé
Exemple de surveillance :
sudo dmesg -w
Un noyau corrigé doit rejeter l'entrée malformée sans atteindre l'opération mémoire vulnérable.
Cette vulnérabilité démontre pourquoi les parseurs réseau du noyau ne doivent jamais faire confiance aux champs de longueur ou de comptage fournis par un attaquant.
L'analyse critique pour la sécurité doit suivre :
Entrée
↓
Validation des limites
↓
Validation des relations
↓
Validation de l'état
↓
Opération mémoire
plutôt que :
Entrée
↓
Opération mémoire
↓
Validation
Même une petite incohérence entre deux champs de métadonnées d'un paquet peut devenir une vulnérabilité de sûreté mémoire au niveau du noyau.
7bad4bda74dc4713f398d3b7624ff05478e3a568xfrm: ah6: validate routing header segments_leftRecherche en sécurité du noyau Linux
CVE-2026-80844 · IPv6 · AH6 · XFRM · LPE
Rechercher • Analyser • Comprendre • Durcir
| Champ | Détails |
|---|
| CVE | CVE-2026-80844 |
| Nom de code | DirtyAH6 |
| Composant | Noyau Linux |
| Sous-système | IPv6 / XFRM / AH6 |
| Type de vulnérabilité | Élévation de privilèges locale |
| Vecteur d'attaque | Local |
| Complexité d'attaque | Faible |
| Privilèges requis | Faibles |
| Interaction utilisateur | Aucune |
| CVSS v3.1 | 7.8 — Élevé |
| Code affecté | net/ipv6/ah6.c |
| Statut | Corrigé |
| Branche du noyau | Version corrigée |
|---|
| 5.10 | 5.10.270 |
| 5.15 | 5.15.221 |
| 6.1 | 6.1.188 |
| 6.6 | 6.6.157 |
| 6.12 | 6.12.109 |
| 6.18 | 6.18.50 |
| 7.2 | 7.2.4 |
| Comportement | Noyau vulnérable | Noyau corrigé |
|---|
segments_left malformé | Validation insuffisante | Validé |
| Traitement de l'en-tête de routage | Peut continuer | Rejeté si invalide |
| Opération mémoire hors limites | Potentiellement atteignable | Empêché |
| Corruption du noyau | Possible | Atténué |
| Élévation de privilèges | Potentielle | Atténuée |