
Recherche sur la fuite de descripteurs de fichiers basée sur `pidfd_getfd(2)` depuis des processus SUID privilégiés. Démontre la capture de descripteurs de fichiers par condition de concurrence contre OpenSSH `ssh-keysign` et l'exposition de poignées de fichiers sensibles appartenant à root.
Dépôt de recherche et d'éducation pour CVE-2026-46333, axé sur l'analyse reproductible et un workflow de test PoC sûr.
Ce projet documente le comportement de la vulnérabilité, la configuration de test et l'approche de validation afin que les chercheurs et les défenseurs puissent reproduire les résultats de manière responsable.
Ce dépôt est destiné uniquement à des tests autorisés, locaux et contrôlés.
Les notes sur le PoC sûr se trouvent dans docs/SAFE_TEST_POC.md.
Le contexte, les objectifs et la feuille de route du projet sont dans docs/ABOUT.md.
go mod tidy
go build -o poc-test .
./poc-test <target-binary> [arg1 arg2 ...] [optional_file_to_capture]
Remarque : l'exécution est réservée à Linux car le PoC utilise les appels système pidfd_*.
Sur les hôtes non-Linux, l'exécution de ./poc-test se termine volontairement avec :
this PoC is Linux-only at runtime. Build with GOOS=linux to generate a Linux executable.
Vous pouvez générer un exécutable Linux depuis macOS, Linux ou Windows en utilisant la compilation croisée de Go :
# Linux amd64 binary
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -trimpath -ldflags "-s -w" -o bin/poc-test-linux-amd64 .
# Linux arm64 binary
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -trimpath -ldflags "-s -w" -o bin/poc-test-linux-arm64 .
Ces commandes produisent des binaires ELF statiques (sans dépendance à la libc partagée).
Ce dépôt inclut :
bin/poc-test-linux-amd64bin/poc-test-linux-arm64Utilisation directe sur Linux (uniquement dans des environnements de test autorisés) :
chmod +x bin/poc-test-linux-amd64
./bin/poc-test-linux-amd64 <target-binary> [arg1 arg2 ...] [optional_file_to_capture]
Validé dans ce dépôt le 17 mai 2026 :
go mod tidy : succèsgo build -o poc-test . : succès./poc-test sur un hôte non-Linux : message de sortie « Linux-only » attenduCGO_ENABLED=0 GOOS=linux GOARCH=amd64 ... : succèsCGO_ENABLED=0 GOOS=linux GOARCH=arm64 ... : succèsCe code est partagé pour soutenir la recherche en sécurité, la validation et la vérification de correctifs. Vous êtes responsable du respect de toutes les lois, politiques et exigences d'autorisation.