
OpenSSH 공식 릴리스 노트에 따르면 11월 5일 공개된 Portable OpenSSH 10.6p2는 musl C 라이브러리를 쓰고 PAM 인증을 사용하지 않는 일부 리눅스 환경의 비밀번호 인증 우회 문제를 차단한다. 개발팀은 이를 중대한 보안 대응으로 설명하면서, 근본 원인은 sshd 외부에 있지만 sshd를 통해 악용될 수 있어 방어 조치를 넣었다고 밝혔다.
취약점은 모든 리눅스나 OpenSSH 서버에 일괄 적용되는 문제가 아니다. 발견 연구자 Özgün Kültekin의 원문과 공개 저장소에 따르면 musl 기반 시스템에서 PAM 없이 SSH 비밀번호 인증이 활성화돼 있고, 비밀번호 필드가 별표(*) 한 글자인 계정과 SHA-256 또는 SHA-512 방식의 정상 비밀번호 해시를 가진 다른 계정이 함께 존재하는 등 조건이 맞아야 한다. Alpine Linux의 기본 openssh-server 패키지가 대표적인 점검 대상이다.
별표는 통상 유효한 비밀번호 해시가 아니어서 비밀번호로 로그인할 수 없도록 하는 데 쓰인다. 문제는 musl의 crypt() 함수가 비밀번호 해시 계산에 실패할 때도 별표를 반환한다는 데 있다. 연구자는 256바이트를 넘는 긴 입력으로 계산 오류가 발생하면 OpenSSH가 이 반환값과 저장된 별표를 같다고 판단해 인증을 허용할 수 있다고 설명했다.
다른 계정의 정상 해시가 조건에 포함되는 것은 OpenSSH가 인증 처리 시간 차이를 줄이기 위해 사용하는 로직과 관련이 있다. 사용할 해시가 없는 계정에서도 다른 계정의 솔트를 빌려 계산을 수행하는 과정이 musl의 오류 반환 방식과 맞물린 것이다. 정상 비밀번호 해시를 가진 계정의 실제 비밀번호를 임의로 우회하는 문제와는 구분된다.
연구자는 Alpine 공식 AWS·Azure 이미지의 기본 alpine 계정도 조건이 맞으면 영향을 받을 수 있다고 밝혔다. 이 계정에 비밀번호 없는 doas 권한이 있으면 로그인 후 관리자 권한으로 이어질 수 있다는 설명이다. 반면 glibc 기반 시스템이나 PAM을 통한 인증, SSH 비밀번호 인증을 꺼 둔 구성은 이번 공격 경로의 영향 대상이 아니라고 명시했다.
운영자는 사용 중인 배포판이 제공하는 수정된 OpenSSH 패키지로 업데이트하는 것이 우선이다. 연구자 저장소는 Alpine용 패키지가 나왔다고 안내하며 apk upgrade openssh를 제시했다. 즉시 갱신이 어려운 경우에는 공개키 등 기존 접속 수단을 확인한 뒤 PasswordAuthentication no 설정으로 SSH 비밀번호 인증을 차단하는 방안을 안내했다.
인증 로그에서 비밀번호 로그인이 불가능해야 할 계정에 비밀번호 인증이 성공한 기록이 있는지도 살펴볼 필요가 있다. 다만 이번 공식 릴리스는 취약점의 존재와 수정 조치를 확인한 자료로, 실제 침해 규모나 특정 조직의 피해를 입증하는 발표는 아니다.
출처: OpenSSH 10.6p2 공식 릴리스 노트 https://www.openssh.org/txt/release-10.6p2 · Özgün Kültekin 연구자 원문 https://sshhole.com/ · 연구자 공개 저장소 https://github.com/oz9un/sshole









