리눅스의 최신 커널 결함은 멋진 이름이 없습니다. 그냥 'ssh-keysign-pwn'이라고 불립니다. 불과 몇 주 만에 리눅스를 강타한 네 번째 고위험 로컬 보안 구멍입니다. 이번 결함은 일반 사용자가 시스템에서 가장 민감한 파일들, 즉 Secure Shell(SSH) 호스트 개인 키와 섀도우 패스워드 파일을 조용히 읽을 수 있게 해줍니다.

이 취약점은 주요 익스플로잇 경로 중 하나인 OpenSSH의 ssh-keysign 헬퍼 바이너리를 악용하는 데서 'ssh-keysign-pwn'이라는 별명을 얻었습니다. Keysign은 호스트 기반 인증에 사용되며 일반적으로 setuid root로 실행되어 시스템의 SSH 호스트 키를 연 다음, 권한을 낮추고 작업을 완료합니다.

보안 회사 Qualys의 연구원들은 CVE-2026-46333, 즉 리눅스 커널의 ptrace 접근 검사에서 정보 노출 취약점을 공개했습니다. Qualys는 이 취약점이 약 6년 동안 어떤 형태로든 존재해 왔다고 주장합니다.

결함은 프로세스가 종료될 때 실행되는 __ptrace_may_access() 로직에 있습니다. 특정 조건에서 커널은 프로세스가 메모리 매핑을 삭제한 후 일반적인 '덤프 가능' 검사를 건너뜁니다. 이로 인해 다른 프로세스가 파일 디스크립터를 훔칠 수 있는 짧은 창이 열립니다.

ssh-keysign-pwn이 자체적으로 완전한 루트 셸을 제공하지는 않지만, 호스트 키와 패스워드 해시를 유출할 수 있는 능력은 측면 이동과 장기 지속성을 위한 강력한 빌딩 블록입니다. 게다가 도난당한 SSH 호스트 키를 사용하면 공격자가 호스트 기반 신뢰 관계에서 머신을 가장할 수 있습니다. 섀도우 패스워드 디렉토리에 접근하면 오프라인 패스워드 크래킹을 시도하고 해당 자격 증명을 시스템 전체에 재사용할 수 있습니다.

패치에서 리누스 토르발즈는 문제가 존재하는 이유를 설명했습니다: "ptrace_may_access()는 MM과 완전히 독립적으로 다양한 다른 것들을 확인하기 위해 'dumpable'을 사용하는 이상한 특수 사례가 있습니다(일반적으로 PTRACE_MODE_READ_FSCREDS와 같은 플래그를 명시적으로 사용). VM이 더 이상 없는 스레드(그리고 대부분의 커널 스레드처럼 한 번도 없었을 수도 있음)를 포함합니다. 이 플래그가 설계된 용도는 아니지만, 그렇다고 해서 어쩔 수 없습니다."

이것이 우리에게 의미하는 바는, 이 로직 오류를 pidfd_getfd(2) 시스템 콜과 결합함으로써 권한 없는 사용자가 종료 중인 권한 있는 프로세스에 접근하여 아직 열려 있는 파일 디스크립터를 가져오고, 일반적으로 루트만 접근할 수 있는 파일을 읽을 수 있다는 것입니다.

좋은 소식은 수정 사항이 나왔다는 것입니다. 리눅스 안정화 관리자 그렉 크로아-하트만은 이미 여러 지원 브랜치에 걸쳐 업데이트를 배포했습니다. 여기에는 7.0.8, 6.18.31, 6.12.89, 6.6.139, 6.1.173, 5.15.207, 5.10.256과 같은 새 릴리스가 포함되며, 모두 ssh-keysign-pwn 수정 사항을 포함합니다. 가능한 한 빨리 이 커널 중 하나로 이동하는 것이 좋습니다. 이 구멍은 2026년 5월 14일 이전에 출시된 모든 리눅스 커널에 영향을 미칩니다.

패치된 커널이 널리 보급될 때까지 보안 팀은 몇 가지 완화 옵션이 있지만, 각각 장단점이 있습니다. 빠르고 간단한 해결 방법 중 하나는 리눅스의 Yama ptrace 제한을 강화하는 것입니다. 이는 비루트 사용자에 대해 ptrace를 비활성화하고 익스플로잇을 차단하지만, 많은 디버깅 및 모니터링 워크플로우를 망가뜨립니다. 또한 필요하지 않은 시스템에서 호스트 기반 SSH 인증과 ssh-keysign 헬퍼를 완전히 비활성화하여 노출을 줄일 수 있지만, 이는 SSH를 완전히 중단시킵니다.

지친 Manjaro 리눅스 팀원이 말했듯이: "PC가 필요하지 않으면 실행하지 마세요. 자신을 가두고 어깨 너머를 살피세요." 음, 확실히 그런 대처 방법도 있군요!