
Исследование утечки файловых дескрипторов на основе `pidfd_getfd(2)` из привилегированных SUID-процессов. Демонстрирует перехват FD в состоянии гонки против OpenSSH `ssh-keysign` и раскрытие чувствительных файловых дескрипторов, принадлежащих root.
Учебный и исследовательский репозиторий для CVE-2026-46333, ориентированный на воспроизводимый анализ и безопасный тестовый процесс PoC.
Этот проект документирует поведение уязвимости, настройку тестов и подход к валидации, чтобы исследователи и специалисты по защите могли ответственно воспроизводить результаты.
Этот репозиторий предназначен только для авторизованного, локального и контролируемого тестирования.
Заметки по безопасному PoC находятся в docs/SAFE_TEST_POC.md.
Предыстория проекта, цели и дорожная карта находятся в docs/ABOUT.md.
go mod tidy
go build -o poc-test .
./poc-test <target-binary> [arg1 arg2 ...] [optional_file_to_capture]
Примечание: исполнение возможно только в Linux, так как PoC использует системные вызовы pidfd_*.
На хостах, не работающих под Linux, запуск ./poc-test намеренно завершается с сообщением:
this PoC is Linux-only at runtime. Build with GOOS=linux to generate a Linux executable.
Вы можете собрать исполняемый файл Linux из macOS, Linux или Windows с помощью кросс-компиляции 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 .
Эти команды создают статические ELF-бинарники (без зависимости от общей libc).
Репозиторий включает:
bin/poc-test-linux-amd64bin/poc-test-linux-arm64Непосредственное использование в Linux (только в авторизованных тестовых средах):
chmod +x bin/poc-test-linux-amd64
./bin/poc-test-linux-amd64 <target-binary> [arg1 arg2 ...] [optional_file_to_capture]
Проверено в этом репозитории 17 мая 2026 года:
go mod tidy: успешноgo build -o poc-test .: успешно./poc-test на хосте не под Linux: ожидаемое сообщение о работе только в LinuxCGO_ENABLED=0 GOOS=linux GOARCH=amd64 ...: успешноCGO_ENABLED=0 GOOS=linux GOARCH=arm64 ...: успешноЭтот код публикуется для поддержки исследований в области безопасности, валидации и проверки исправлений. Вы несёте ответственность за соблюдение всех законов, политик и требований авторизации.