10년간 방치된 SSH 인증 우회 취약점 발견
원제 Sshole
810 포인트댓글 227
Key Point
SSH 인증 메커니즘의 근본적인 결함이 10년간 방치된 이유와 그 과정을 이해하려면, 라이브러리 간 호환성 차이와 테스트 범위의 한계라는 구조적 문제를 알아야 한다.
핵심 요약
- 2016년부터 2026년까지 SSH 시스템에서 패스워드 프롬프트에 잘못된 값(예: SSH 키)을 붙여넣으면 인증을 우회할 수 있는 취약점이 존재했다.
- 새로 설정한 박스와 그래도우 파일의 '*' 항목은 영향을 받지 않으며, OpenSSH는 OpenBSD와 glibc에서만 테스트해 musl 라이브러리 환경에서는 발견되지 않았다.
- 대부분의 배포판이 PAM을 통해 인증하므로 crypt 함수를 직접 호출하지 않아, 이 취약점이 광범위하게 감지되지 않았다.
- 2013년 Debian 개발자가 glibc에 musl의 '*' 문자 처리 방식을 복사해달라고 요청했으나 6년 뒤 Debian이 libxcrypt로 전환하면서 '*0'으로 변경되어 버그가 해결되지 않았다.
- 2024년 12월 musl 메일링 리스트에서 busybox passwd가 257자 길이 패스워드에서 같은 '*' 문제로 고장나는 사건이 보고되었다.
- 2026년 10월 OpenSSH 커밋에서 pick_salt() 함수 보안 검토 중 발견된 취약점 바로 아래 4줄의 코드에서 실제 버그가 있었고, 이는 보안 검토 4일 전에 발견됐다.