오픈SSH에서 비밀번호 로그인이 막혀 있어야 할 리눅스 계정에 아주 긴 비밀번호를 넣어 접속할 수 있는 결함이 5일 공개됐다. 연구자 오즈귄 쿨테킨이 이 결함에 '*sshole'이라는 이름을 붙이고 sshhole.com에 상세 내용을 올렸다. 그는 AI 에이전트로 인증 시험을 약 1만 7,600회 돌려 문제를 찾아냈다고 한다.
원인은 musl 기반 리눅스의 암호 처리 방식과 2016년 보안 조치가 겹친 데 있다. 이 환경에서는 256바이트를 넘는 비밀번호처럼 해시 계산에 실패하면 별표(*)가 반환된다. 오픈SSH는 계정 존재 여부를 시간차로 추측하지 못하게 하려고 사용할 수 없는 해시를 가진 계정에도 비밀번호를 해시하는데, 이때 반환된 별표가 저장된 별표 값과 같아져 인증이 통과된다.
영향을 받는 곳은 알파인 리눅스, 오픈WRT, 빌드루트, 요크토 같은 musl 기반 시스템이다. 다만 PAM 인증이 꺼져 있고(알파인 openssh-server 패키지의 기본값), SSH 비밀번호 인증이 켜져 있어야 하며, 해시가 별표인 계정과 유효한 해시를 가진 계정이 함께 있어야 한다. glibc 기반인 데비안, 우분투, 페도라와 PAM을 쓰는 시스템은 해당하지 않는다.
알파인의 공식 AWS·애저 클라우드 이미지에는 비밀번호 없이 doas 권한을 쓰는 기본 계정 'alpine'이 있어 루트 권한까지 이어질 수 있어 위험이 더 크다.
결함은 오픈SSH 10.6p2에서 고쳐졌다. 알파인에서는 apk upgrade openssh로 업데이트하면 되고, 당장 어렵다면 SSH 설정에서 PasswordAuthentication을 no로 바꾼 뒤 서비스를 재시작하면 막을 수 있다. 점검하려면 로그에서 'Accepted password' 기록을 찾아 잠긴 계정이 비밀번호로 로그인했는지 확인하면 된다.
원문: BleepingComputer
이 글은 원문에 담긴 사실을 바탕으로 Raon Community가 새로 작성한 기사입니다. 원문의 저작권은 원저작자에게 있으며, 자세한 내용은 원문에서 확인해 주세요.