## https://sploitus.com/exploit?id=64EFA937-093D-58C2-AD93-37AE0C988CD3
# 🔴 Fragnesia — CVE-2026-46300
### Élévation de privilèges dans le noyau Linux · CVSS 7.8 · Divulgué le 14 mai 2026
> **Dépôt de sensibilisation uniquement.** Ce repository ne contient pas de code d'exploitation. Son objectif est d'informer les administrateurs systèmes, ingénieurs et équipes de sécurité sur la nature de la vulnérabilité et les mesures de remédiation disponibles.
---
## 📋 Résumé
| Champ | Valeur |
|--------------------|-----------------------------------------------------------|
| **CVE** | CVE-2026-46300 |
| **Nom** | Fragnesia |
| **Sévérité** | High (CVSS 7.8) |
| **Type** | Local Privilege Escalation (LPE) |
| **Composant** | Linux Kernel — XFRM ESP-in-TCP subsystem |
| **Découvreur** | William Bowling (V12 Security / Zellic.io) |
| **Divulgation** | 14 mai 2026 |
| **Patch upstream** | 13 mai 2026 — `[PATCH net] net: skbuff: preserve shared-frag marker during coalescing` |
| **PoC public** | ✅ Oui (publié le jour de la divulgation) |
| **Exploitation ITW** | ❌ Aucune observée à ce jour |
---
## 🧬 Contexte et généalogie
Fragnesia est la **troisième** vulnérabilité d'une série découverte dans le sous-système IPsec du noyau Linux en l'espace de deux semaines :
```
Dirty Frag (CVE-2026-43284) ──► Copy Fail (CVE-2026-43500) ──► Fragnesia (CVE-2026-46300)
Mai 2026 Mai 2026 14 mai 2026
```
Ironiquement, **le patch de Dirty Frag a activé latentement la faille Fragnesia** — la correction de `CVE-2026-43284` a introduit un chemin de code exposant un bug préexistant depuis un commit datant de 2013.
> *"Fragnesia was accidentally activated by the patch fixing CVE-2026-43284."*
> — Hyunwoo Kim, découvreur de Dirty Frag
---
## 🔬 Analyse technique
### Origine du bug
La faille réside dans la fonction `skb_try_coalesce()` du code socket-buffer du noyau. Lors de la fusion de fragments entre buffers, le **marqueur `SKBFL_SHARED_FRAG` n'était pas propagé**, faisant perdre au noyau la trace du fait qu'un fragment était adossé à des pages du page cache (ex. : un fichier mappé en mémoire via `splice()`).
### Chaîne d'exploitation
```
1. L'attaquant ouvre un socket TCP
2. Il splice() des pages d'un fichier read-only (ex. /usr/bin/su) dans la receive queue
3. Le socket bascule en mode espintcp (ULP)
4. Le noyau traite les pages du fichier comme du texte chiffré ESP
5. La décryption AES-GCM in-place écrit des octets contrôlés dans le page cache
6. /usr/bin/su en mémoire est corrompu → exécution de code root au prochain appel
```
### Caractéristiques notables
- ✅ **Pas de race condition** — exploitation 100% déterministe
- ✅ **Sans modification du disque** — seule la copie en mémoire est altérée (un `reboot` restaure l'état)
- ✅ **Utilise les user namespaces** (activés par défaut) pour obtenir `CAP_NET_ADMIN` sans droits élevés
- ✅ **Tout fichier lisible par l'attaquant** peut être ciblé, pas seulement `su`
- ⚠️ **Difficile à détecter** par les outils traditionnels basés sur le disque
---
## 🎯 Systèmes affectés
**Tous les noyaux Linux publiés avant le 13 mai 2026** incluant le mécanisme `SKBFL_SHARED_FRAG`.
Les distributions impactées incluent notamment :
| Distribution | Statut patch |
|----------------------|--------------------------|
| Ubuntu 22.04 / 24.04 | ✅ Patché |
| Debian 11 / 12 | ✅ Patché |
| AlmaLinux | ✅ Patché (avant RHEL) |
| Red Hat / RHEL | ✅ Advisory publié |
| SUSE / openSUSE | ✅ Advisory publié |
| Amazon Linux | ✅ Advisory publié |
| Fedora | ✅ Patché |
| Arch Linux | ✅ Patché |
| CentOS / Rocky Linux | ✅ Patché |
### Environnements à risque élevé
- 🏢 Serveurs multi-utilisateurs et jump servers
- ☸️ Nœuds Kubernetes workers
- 🏗️ Fermes CI/CD et build runners partagés
- ☁️ Plateformes cloud SaaS exécutant du code utilisateur
- 🐳 Clusters de containers (page cache partagé sur l'hôte)
---
## 🛡️ Remédiation
### 1. Patch — Solution définitive
Mettre à jour vers un noyau corrigé :
```bash
# Debian / Ubuntu
sudo apt-get update && sudo apt-get dist-upgrade -y
sudo reboot
uname -r # Vérifier la version du nouveau noyau
# RHEL / AlmaLinux / Rocky Linux
sudo dnf clean metadata && sudo dnf upgrade -y
sudo reboot
# Arch Linux
sudo pacman -Syu
sudo reboot
```
### 2. Mitigation temporaire — Désactivation des modules vulnérables
Si une mise à jour immédiate n'est pas possible :
```bash
# Décharger les modules actifs
sudo rmmod esp4 esp6 rxrpc 2>/dev/null; true
# Blacklister définitivement les modules
printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' \
| sudo tee /etc/modprobe.d/fragnesia.conf
# Régénérer initramfs (Debian/Ubuntu)
sudo update-initramfs -u
```
> ⚠️ La même blacklist de modules que celle utilisée pour Dirty Frag couvre également Fragnesia.
### 3. Vérifier l'exposition du système
```bash
# Vérifier si les modules vulnérables sont chargés
lsmod | grep -E '^esp4|^esp6|^rxrpc'
# Si la commande retourne du contenu → le système est exposé
# Vérifier la version du noyau actuel
uname -r
cat /etc/os-release
```
### 4. Mesures complémentaires (environnements container / cloud)
- Interdire la création de sockets `AF_ALG` via **Seccomp**
- Bloquer la création de user namespaces non privilégiés
- Surveiller les accès anormaux à `/etc/passwd`, `/etc/sudoers`, `/etc/shadow`, `/usr/bin/su`
- Restreindre les appels système `splice`, `add_key` et `unshare` pour les utilisateurs non privilégiés
### 5. Post-exploitation — Flush du page cache
Si une exploitation est suspectée avant l'application du patch :
```bash
sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
```
> ⚠️ Cela purge uniquement la copie en mémoire. Si un attaquant a déjà obtenu les droits root et installé une backdoor, cette commande ne suffit pas — **traiter le système comme entièrement compromis**.
---
## 🔍 Détection
### Indicateurs de compromission (IoC)
Les outils de détection doivent surveiller :
- Accès ou modification anormaux de `/usr/bin/su`, `/usr/bin/sudo`, `/bin/bash` **en mémoire**
- Appels système inhabituels : `splice()`, `add_key()`, `unshare()` par des utilisateurs non privilégiés
- Création de user namespaces réseau sur des systèmes où ce n'est pas attendu
- Activité réseau `espintcp` sur des sockets utilisateurs non privilégiés
> 🔎 Les outils de sécurité basés uniquement sur l'analyse des fichiers disque **ne peuvent pas détecter** cette exploitation, car le binaire sur disque reste intact.
---
## 📚 Références officielles
- 🔗 [Red Hat Advisory — CVE-2026-46300](https://access.redhat.com/security/cve/CVE-2026-46300)
- 🔗 [Patch upstream netdev](https://lists.openwall.net/netdev/2026/05/13/79)
- 🔗 [AlmaLinux Blog — Fragnesia](https://almalinux.org/blog/2026-05-13-fragnesia-cve-2026-46300/)
- 🔗 [Tenable FAQ — CVE-2026-46300](https://www.tenable.com/blog/fragnesia-cve-2026-46300-faq-about-new-linux-kernel-xfrm-esp-in-tcp-priv-esc)
- 🔗 [TuxCare — Analyse technique](https://tuxcare.com/blog/fragnesia-cve-2026-46300-is-a-new-linux-kernel-lpe/)
- 🔗 [Help Net Security — Divulgation](https://www.helpnetsecurity.com/2026/05/14/fragnesia-cve-2026-46300-linux-lpe-vulnerability/)
- 🔗 [NSFOCUS CERT Advisory](https://nsfocusglobal.com/linux-kernel-fragnesia-privilege-escalation-vulnerability-cve-2026-46300-notice/)
- 🔗 [LinuxSecurity.com](https://linuxsecurity.com/features/fragnesia-linux-privilege-escalation)
- 🔗 [SOC Prime Blog](https://socprime.com/blog/cve-2026-46300-fragnesia-linux-kernel-flaw/)
---
## ⚖️ Avertissement légal & éthique
Ce dépôt est publié dans un objectif **exclusivement éducatif et défensif**. Il ne contient aucun code d'exploitation (PoC).
Toute utilisation des informations présentes dans ce dépôt à des fins malveillantes ou sans autorisation explicite sur des systèmes tiers est **illégale** et contraire à l'éthique. L'auteur décline toute responsabilité quant à un usage détourné de ces informations.
> **Responsible Disclosure** — Si vous découvrez une vulnérabilité, suivez les pratiques de divulgation responsable et contactez les équipes de sécurité concernées avant toute publication.
---
## 👤 Auteur
**Maxime288** — [github.com/Maxime288](https://github.com/Maxime288)
*Dépôt de veille sécurité — Suivi des vulnérabilités critiques Linux*
---




