- alpine, openwrt, buildroot, yocto와 같은 musl 기반 시스템
- pam 미사용(알파인은 기본 미사용으로 설정되어 있으며 UsePAM no로 끈 경우도 포함)
- ssh 비밀번호 로그인 사용
- 비밀번호 해시가 * 그자체인 계정이 존재(키로만 로그인하는 계정, 시스템 계정 등)
- 비밀번호가 지정된 다른 계정이 존재
위 5 조건이 모두 만족한다면 4번의 계정은 길이가 257~1024인 모든 비밀번호를 유효한 비밀번호로 인식합니다.
대다수의 서버용 리눅스는 glibc 기반이므로 안전합니다. 하지만 알파인 기반 도커 이미지에 취약한 버전의 openssh server가 설치되어 있다던가 하는 상황이라면... 명복을 빕니다.
해결방법은 openssh 업데이트뿐입니다. OpenSSH 10.6p2 이상으로 업데이트하세요. 혹은 그 전까지 비밀번호 인증을 꺼도 됩니다.(이참에 끄시는게 어떨까요)
자세한 설명은 위 사이트에서 보실 수 있습니다.(어쩌다가 *이 유효하지 않은 해시로써 비밀번호 해시에 들어가게 되었는지, 어쩌다가 crypt 함수가 해시로 *을 반환하게 되었는지 등 사태의 원인이 잘 나와 있습니다)
YJSoft
Lv. 11
YJSoft입니다.
댓글 3
취약점 이름 앞에 붙어 있는 별표도 이름의 일부입니다. 별표 특수문자가 취약점의 핵심 요소이기도 하고요. 영어권에서는 흔히 별표가 A자를 닮았다고 생각하니 (asterisk가 A로 시작하기도 하고...) 작명센스 끝네주네요. ㅋㅋㅋ
다행히 Alpine의 주요 사용처는 도커이고, 도커로 OpenSSH server를 돌리는 일은 흔하지 않으므로 실제로 취약한 서버 수는 얼마 안 될 듯 합니다. 우분투, 데비안, 록키 등 일반적인 리눅스 배포판이라면 이번 이슈는 해당 없습니다.
복붙하다가 빼먹었네요 ㅎㅎ
그리고 *는 영어권에서도 단어를 검열할때 사용되곤 하니 asshole에서 a를 검열한 모양새라고도 볼수 있겠네요.
HN이나 레딧처럼 마크다운을 지원하는 커뮤니티에서는 이 취약점 언급하다가 본의 아니게 이탤릭체로 글을 쓰기도 하더군요. 이래저래 골때리는 이슈네요. ㅎㅎ