OpenSSH 10.6p2 정리, Alpine 서버라면 비밀번호 로그인부터 확인하세요
OpenSSH 가 2026-11-05 에 10.6p2 를 공개했습니다. PAM(리눅스의 공통 인증 모듈) 없이 빌드·실행된 일부 리눅스에서 sshd(SSH 접속을 받는 서버 프로그램)의 비밀번호 인증을 우회할 수 있는 문제를 고친 버전입니다. 같은 날 Alpine Linux 도 보안 공지를 냈습니다.
이 글은 두 공식 자료를 정리한 것입니다. 아직 직접 재현해 보지는 않았습니다. 공격 방법은 다루지 않고, 해당 여부를 판단하는 조건과 조치만 옮겼습니다. 내용은 2026-11-05 공지 기준입니다.
먼저 범위부터 말씀드리면, 모든 리눅스 서버의 문제는 아닙니다. 서버의 C 라이브러리, 비밀번호 로그인 설정, 계정의 비밀번호 칸을 확인하는 일이 먼저입니다.
릴리스 노트와 Alpine 공지가 말하는 것
릴리스 노트는 근본 원인이 sshd 밖에 있다고 적었습니다. 그러면서도 sshd 쪽을 강화해 이 문제를 고쳤다는 설명입니다.
Alpine 공지는 표현이 더 구체적입니다. SSH 포트에 접근할 수 있는 공격자가 비밀번호 없이 로그인할 수 있고, 연결 한 번으로 재시도 없이 된다고 적었습니다.
영향을 받는 릴리스는 3.21~3.24 와 edge, 그리고 지원이 끝난 3.16~3.20 입니다. CVE 번호는 공지 작성 시점에 배정되지 않았습니다.
네 조건이 모두 맞을 때만 해당됩니다
Alpine 공지의 영향 조건은 아래 네 가지입니다. 하나라도 빠지면 공지가 말하는 영향 대상이 아닙니다.
확인할 항목 | 해당되는 경우 | 해당 안 되는 경우 |
|---|---|---|
sshd 패키지와 PAM | 'openssh-server'(PAM 없이 빌드) 또는 'openssh-server-pam' + 'UsePAM no' | 'openssh-server-pam' + 'UsePAM yes' |
비밀번호 로그인 | 'PasswordAuthentication yes'(OpenSSH 기본값) | 'PasswordAuthentication no', cloud-init 이 이 값을 쓴 이미지 |
비밀번호 칸이 '*' 인 계정 | root, 키 전용 사용자, 디렉터리 서비스 사용자, tiny-cloud 이미지의 alpine 사용자 | 잠금 처리된 계정('!') |
로컬 계정의 비밀번호 해시 | 로컬 계정 하나 이상에 '$5$' 또는 '$6$' 해시가 있음 | '$' 해시가 없는 시스템 |
표 밖의 경우도 하나 있습니다. 컨테이너 안에서 sshd 를 실행하지 않으면 영향이 없다고 공지는 적었습니다.

이 표에서 눈여겨볼 줄은 비밀번호 칸이 '*' 인 계정입니다. 비밀번호 칸은 '/etc/shadow' 에 있는 계정별 비밀번호 항목을 말합니다. 공지가 든 예에 root 와 키 전용 사용자가 들어 있습니다.
키로만 로그인하도록 쓰던 계정이라도 sshd 설정을 함께 보지 않으면 키 전용이라고 말할 수 없습니다. 게다가 'PasswordAuthentication yes' 는 OpenSSH 기본값입니다. 설정 파일이나 cloud-init 으로 따로 바꾼 적이 없다면 이 조건은 맞는 것으로 봅니다.
범위를 더 넓게 적은 자료도 있습니다. 발견자가 쓴 설명 글은 Debian·Ubuntu·Fedora 같은 glibc(대다수 리눅스의 C 라이브러리) 계열, PAM 을 거치는 시스템, Dropbear, OpenBSD 는 영향이 없다고 적었습니다. OpenWrt·Buildroot·Yocto 도 musl(경량 C 라이브러리) 계열로 언급했습니다. 다만 이 범위는 Alpine 공지에 없는 발견자의 설명이고 공식 자료가 아닙니다.
고친 패키지 버전
공지의 표를 그대로 옮겼습니다. 릴리스별로 아래 버전이 고친 패키지입니다.
Alpine 릴리스 | 고친 패키지 버전 |
|---|---|
edge | 10.6_p2-r0 |
3.24 | 10.3_p1-r2 |
3.23 | 10.2_p1-r1 |
3.22 | 10.0_p1-r11 |
3.21 | 9.9_p2-r1 |
3.20 | 9.7_p1-r6 |
3.19 | 9.6_p1-r3 |
3.18 | 9.3_p2-r4 |
3.17 | 9.1_p1-r7 |
3.16 | 9.0_p1-r6 |
고친 내용이 들어간 지점 릴리스는 3.21.10, 3.22.8, 3.23.8, 3.24.4 입니다.
표에서 edge 만 10.6 입니다. 3.24 의 고친 버전은 10.3_p1-r2 입니다. 기존 버전에 고친 내용을 옮겨 넣은 것으로 보입니다(추정). 그래서 '10.6 이상인가'로 판단하지 않고, 자기 릴리스의 줄과 대조합니다.
조치 순서와 주의할 점
공지의 조치는 두 줄입니다.
apk upgrade -U -a
rc-service sshd restart둘째 줄이 빠지면 조치가 끝난 것이 아닙니다. 공지는 패키지만 올려서는 실행 중인 데몬이 다시 시작되지 않는다고 적었습니다. 디스크의 파일은 새 버전인데 접속을 받는 프로세스는 옛 버전 그대로입니다.

재시작 명령이 끝났다는 출력만으로 마무리하지 않는 편을 권합니다. sshd 프로세스의 시작 시각이 재시작 이후인지 확인하면 새 프로세스가 접속을 받고 있다는 것을 알 수 있습니다. 옛 프로세스도 겉으로는 정상으로 응답합니다.
당장 패키지를 올릴 수 없으면 'PasswordAuthentication no' 로 바꾸고 sshd 를 재시작합니다. 이때 키 로그인을 설정해 두지 않은 서버라면 운영자도 들어갈 수 없게 됩니다. 공지도 기존 세션을 열어 둔 채 새 키 로그인을 먼저 시험하라고 적었습니다.
클라우드 이미지는 따로 볼 항목이 있습니다. 3.18.11~3.24.3 의 공식 qcow2·VHD·AMI 는 alpine 사용자의 비밀번호 칸이 '*' 이고 비밀번호 없는 doas(sudo 처럼 권한을 올리는 도구)가 설정돼 있습니다. 공지는 첫 부팅 때는 안전하지만 '$6$' 해시가 생기면 공격이 가능해진다고 적었습니다. 처음 만든 뒤 어느 계정에 비밀번호를 설정했는지가 판단 기준이 됩니다.
조건에 해당했던 서버라면 침해 여부도 확인합니다. 공지가 든 항목은 아래와 같습니다.
'/var/log/messages' 에서 비밀번호가 없는 계정의 'Accepted password for' 항목
doas 사용 기록
최근 만들어진 사용자·파일·'authorized_keys'
공지는 이런 로그인이 없었다고 배제하지 못하면 침해된 것으로 다루라고 적었습니다.

납품한 서버와 장비에서는 어디를 보나
SI 납품이나 운영을 맡고 있다면 공지를 읽은 뒤 바로 답해야 하는 질문은 하나입니다. '우리가 넘긴 것 중에 해당되는 서버가 있는가'입니다. 아래는 공지의 조건을 납품 목록에 옮긴 저희 제안입니다.
OS 이름과 릴리스: Alpine 이라면 3.16 이후인지, edge 인지
C 라이브러리 계열: OS 이름으로 알기 어려운 임베디드 장비는 musl 인지
'openssh-server' 와 'openssh-server-pam' 중 어느 쪽이고 'UsePAM' 값은 무엇인지
'PasswordAuthentication' 값: 설정을 안 바꿨다면 기본값 yes 입니다
비밀번호 칸이 '*' 인 계정과 '$5$'·'$6$' 해시가 있는 계정이 함께 있는지
납품 목록에 OS 이름만 적혀 있으면 이런 공지가 나올 때마다 서버에 하나씩 접속해 확인하게 됩니다. C 라이브러리 계열과 sshd 설정까지 같이 적어 두면 이 확인이 빨라집니다. 직접 측정한 수치가 있는 것은 아니고 제안입니다.
출처와 이 글의 범위
이 글의 조건과 조치는 OpenSSH 릴리스 노트와 Alpine 공지를 옮긴 것이고, 앞서 말씀드린 대로 직접 재현은 하지 않았습니다. 공지가 2026-11-05 이후 갱신됐을 수 있으니 적용 전에 위 링크의 원문을 한 번 더 확인하시길 권합니다.
이번 공지에서 실무에 남는 사실은 두 가지입니다. 패키지 갱신과 프로세스 재시작은 다른 일입니다. 키 전용이라고 적어 둔 계정도 sshd 설정과 함께 봐야 그렇게 말할 수 있습니다.