OpenSSH 10년 묵은 결함, 257자 비밀번호로 잠긴 계정 열려
musl 기반 리눅스에서 257~1,024자 비밀번호면 OpenSSH로 잠긴 계정에 접속할 수 있는 결함 '*sshole'이 확인됐습니다. OpenSSH 10.6p2에서 수정됐습니다.

musl 라이브러리를 쓰는 일부 리눅스 서버에서 OpenSSH를 통해 잠긴 계정이 열리는 결함이 드러났습니다. 내용과 상관없이 257~1,024자 길이의 비밀번호만 입력하면 인증을 통과했습니다. 이 결함은 2016년부터 존재했으며, 알려진 바로는 10년 넘게 누구도 알아채지 못했습니다. 수정판인 OpenSSH 10.6p2는 11월 5일 공개됐습니다.
'*sshole' 발견 과정
11월 초 이 결함을 공개한 사람은 Wakefield의 연구원 Ozgun Kultekin입니다. 이름 '*sshole'은 SSH와 'hole'을 합친 말장난이며, 맨 앞의 별표는 결함의 원인과도 맞닿아 있습니다. 연구원은 OpenSSH를 12가지 방식으로 빌드하고, AI 에이전트가 만든 약 17,600건의 비정상 로그인 시도를 각 빌드에 적용했습니다. 그 결과 한 가지 구성만 다르게 반응했다고 설명합니다.
별표가 잠금과 오류 값을 겸한 문제
유닉스에서는 1980년부터 비밀번호를 받지 않는 계정에 해시 대신 ''를 기록하는 관례가 있습니다. 그런데 2012년부터 musl의 해시 함수는 실패할 때도 ''를 반환하고, 비밀번호가 256자를 넘으면 실패합니다.
2016년 OpenSSH는 존재하지 않는 계정에는 응답이 즉시 오고 실제 계정은 연산 시간이 걸려, 응답 시간으로 계정을 구별할 수 있던 문제를 고쳤습니다. 이를 위해 잠긴 계정에도 다른 계정의 설정을 빌려 해시 연산을 수행하게 했습니다. 긴 비밀번호는 연산이 실패해 ''가 반환됐고, 저장된 ''와 일치해 로그인이 허용됐습니다.
영향 조건과 대응
실제 위험이 되려면 여러 조건이 맞아야 합니다. 서버가 musl 기반이어야 하고(Alpine Linux, OpenWrt, Buildroot, Yocto 등), PAM을 쓰지 않으며, 비밀번호 로그인이 허용되고, '*'로 잠긴 계정과 실제 비밀번호가 있는 다른 계정이 함께 있어야 합니다. Alpine 3.16(2022년)부터 root가 이런 방식으로 잠겨 있고, AWS와 Azure의 공식 Alpine 이미지에서는 기본 계정이 비밀번호 없이 관리자 권한을 얻을 수도 있습니다.
Debian, Ubuntu, Fedora와 PAM 기반 시스템은 영향이 없습니다. 연구원은 실제 악용 사례를 알지 못한다고 밝혔습니다. 해당 관리자는 OpenSSH 10.6p2로 업데이트하거나, 어렵다면 비밀번호 로그인을 비활성화해야 합니다.
주목할 만한 앱
올바른 칸을 고르고 더해 목표 숫자를 맞추세요. 배우긴 쉽고 마스터하긴 어렵습니다. 무료, 전 연령.
AI 대화 파트너와 대화하세요. 모든 문장이 교정되어 내 언어로 설명과 함께 돌아옵니다. 9개 언어, A1부터 C2까지.
EDIFACT와 X12 메시지를 열어 각 세그먼트 설명을 보고, JSON/XML로 변환하고, PDF와 Excel로 내보내세요. 로컬에서 실행, 업로드 없음.
받는 사람, 기념일, 성격을 고르세요. 검색 엔진이 현지 상점의 상품 설명을 읽고 어울리는 것을 추려 줍니다. 무료, 가입 없음.
같은 날의 다른 뉴스
전체 보기 →관련 카테고리: 보안
전체 보기 →
애플 iOS 27.2.1 배포, iMessage·블루투스 취약점 9건 수정

국정원, 보안제품 중복 시험 줄인다…업계 부담 완화

앤트로픽, 클로드 기업 계정 유출로 개인정보위 정식 조사




