🔍 Contexte
Publié le 15 mai 2026 sur GitHub par le compte 0xdeadbeefnetwork, le dépôt ssh-keysign-pwn met à disposition un proof-of-concept (PoC) fonctionnel exploitant une vulnérabilité du noyau Linux. Le bug a été rapporté par Qualys et corrigé par Linus Torvalds le 2026-05-14 (commit 31e62c2ebbfd). Jann Horn avait identifié la forme de vol de descripteur de fichier dès octobre 2020, soit six ans avant le correctif.
🐛 Vulnérabilité exploitée
La faille réside dans __ptrace_may_access() : lorsque task->mm == NULL, la vérification dumpable est ignorée. Durant do_exit(), exit_mm() s’exécute avant exit_files(), créant une fenêtre temporelle où le processus n’a plus de mm mais conserve ses descripteurs de fichiers ouverts. pidfd_getfd(2) réussit dans cette fenêtre si l’UID de l’appelant correspond à celui de la cible.
🎯 Cibles et vecteurs d’exploitation
sshkeysign_pwn: extrait/etc/ssh/ssh_host_{ecdsa,ed25519,rsa}_key.ssh-keysignouvre ces fichiers (mode 0600) avantpermanently_set_uid(), puis abandonne surEnableSSHKeysign=noen laissant les fds ouverts. Ce comportement existe depuis 2002.chage_pwn: extrait/etc/shadow.chage -l <user>appellespw_open(O_RDONLY)puissetreuid(ruid, ruid), effectuant un drop complet de privilèges. La race condition permet de récupérer le fd shadow et de craquer le hash root hors ligne.
🖥️ Systèmes confirmés vulnérables
- Raspberry Pi OS Bookworm 6.12.75
- Debian 13
- Ubuntu 22.04 / 24.04 / 26.04
- Arch Linux
- CentOS 9
⚙️ Détails techniques
- Langage : C (94.7%), Makefile (5.3%)
- Fichiers clés :
sshkeysign_pwn.c,chage_pwn.c,exploit_vuln_target.c,vuln_target.c - Fiabilité : succès en 100 à 2000 tentatives de spawn
- Commit :
5655487 - Popularité : 199 étoiles, 24 forks au moment de la publication
📌 Type d’article
Il s’agit d’une publication de PoC technique accompagnée d’une analyse de la vulnérabilité, visant à documenter et démontrer l’exploitabilité de la faille sur des systèmes Linux non patchés.
🧠 TTPs et IOCs détectés
TTP
- T1068 — Exploitation for Privilege Escalation (Privilege Escalation)
- T1552.004 — Unsecured Credentials: Private Keys (Credential Access)
- T1003.008 — OS Credential Dumping: /etc/passwd and /etc/shadow (Credential Access)
- T1083 — File and Directory Discovery (Discovery)
IOC
- Fichiers :
sshkeysign_pwn.c - Fichiers :
chage_pwn.c - Fichiers :
exploit_vuln_target.c - Fichiers :
vuln_target.c - Fichiers :
sshkeysign_pwn - Fichiers :
chage_pwn - Chemins :
/etc/ssh/ssh_host_ecdsa_key - Chemins :
/etc/ssh/ssh_host_ed25519_key - Chemins :
/etc/ssh/ssh_host_rsa_key - Chemins :
/etc/shadow
Malware / Outils
- ssh-keysign-pwn (tool)
🟡 Indice de vérification factuelle : 48/100 (moyenne)
- ⬜ github.com — source non référencée (0pts)
- ✅ 2202 chars — texte partiel (fulltext extrait) (13pts)
- ✅ 10 IOCs (IPs/domaines/CVEs) (10pts)
- ⬜ pas d’IOC vérifié (0pts)
- ✅ 4 TTPs MITRE identifiées (15pts)
- ✅ date extraite du HTML source (10pts)
- ⬜ aucun acteur de menace nommé (0pts)
- ⬜ pas de CVE à vérifier (0pts)
🔗 Source originale : https://github.com/0xdeadbeefnetwork/ssh-keysign-pwn