피드로 돌아가기
ssh-keysign-pwn - Linux 0-day로 비권한 사용자가 root 소유 파일을 읽는 PoC
GeekNewsGeekNews
Security

ssh-keysign-pwn - Linux 0-day로 비권한 사용자가 root 소유 파일을 읽는 PoC

pidfd_getfd 취약점을 통한 setuid 파일 디스크립터 무단 접근 및 root 권한 탈취 분석

neo2026년 5월 16일4advanced

Context

Linux 커널의 ptrace_may_access 로직 결함으로 인해 비권한 사용자가 setuid 바이너리가 오픈한 파일 디스크립터에 접근 가능한 상태. ssh-keysign과 같은 setuid 프로세스의 권한 관리 허점을 이용하여 root 소유의 민감 파일에 접근하는 LPE(Local Privilege Escalation) 위험이 존재함.

Technical Solution

  • pidfd_getfd 시스템 콜을 통한 setuid 프로세스 내 파일 디스크립터 강제 획득 구조 분석
  • ptrace_scope 설정을 2(admin-only) 또는 3(no attach)으로 변경하여 프로세스 attach 경로를 원천 차단하는 강화 전략
  • systemtap 스크립트를 활용한 pidfd_getfd 호출의 실시간 런타임 차단 및 완화책 적용
  • /usr/lib64/misc/ssh-keysign의 실행 권한을 제거하여 특정 PoC 공격 벡터를 일시적으로 무력화하는 임시 조치
  • EnableSSHKeysign 옵션의 우선순위 검증 로직 부재로 인한 호스트 키 노출 경로 식별

- /proc/sys/kernel/yama/ptrace_scope 설정값을 2 이상으로 유지하여 권한 없는 프로세스 접근 제어 - setuid 바이너리 설계 시 최소 권한 원칙을 적용하고 민감한 설정 옵션을 조기 검증하는 로직 구현 - 커널 보안 패치 적용 전 eBPF나 systemtap을 통한 위험 시스템 콜(pidfd_getfd 등) 모니터링 및 차단 검토 - LLM 기반의 PoC 생성 속도 증가에 따른 Zero-day 대응 시간 단축 및 신속한 완화책 적용 프로세스 구축

원문 읽기