
연구: `pidfd_getfd(2)`-기반 파일 디스크립터 누출 (privileged SUID 프로세스에서). OpenSSH `ssh-keysign`에 대한 경쟁 조건 FD 캡처 및 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]
참고: PoC가 pidfd_* 시스템 콜을 사용하므로 런타임 실행은 Linux 전용입니다.
비 Linux 호스트에서 ./poc-test를 실행하면 의도적으로 다음 메시지와 함께 종료됩니다.
this PoC is Linux-only at runtime. Build with GOOS=linux to generate a Linux executable.
macOS, Linux 또는 Windows에서 Go 크로스 컴파일을 사용하여 Linux 실행 파일을 빌드할 수 있습니다.
# 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-arm64Linux에서 직접 사용(승인된 테스트 환경에서만):
chmod +x bin/poc-test-linux-amd64
./bin/poc-test-linux-amd64 <target-binary> [arg1 arg2 ...] [optional_file_to_capture]
2026년 5월 17일에 이 저장소에서 검증됨:
go mod tidy: 성공go build -o poc-test .: 성공./poc-test on non-Linux host: 예상된 Linux 전용 종료 메시지CGO_ENABLED=0 GOOS=linux GOARCH=amd64 ...: 성공CGO_ENABLED=0 GOOS=linux GOARCH=arm64 ...: 성공이 코드는 보안 연구, 검증 및 패치 확인을 지원하기 위해 공유됩니다. 귀하는 모든 법률, 정책 및 권한 요구 사항을 준수할 책임이 있습니다.