전 세계 서버 원격 관리의 표준인 OpenSSH에서 시스템 최고 권한(root)을 우회 획득할 수 있는 고위험군 취약점인 CVE-2026-35414가 공개되었습니다. 보안 기업 Cyera에 의해 발견된 이 취약점은 일명 'SplitSSHell'로 명명되었으며, 약 15년간 OpenSSH 코드 내부(v5.6부터 v10.2p1까지)에 잠복해 있던 것으로 밝혀져 충격을 주고 있습니다. 리눅스 기반 인프라를 운영 중인 관리자분들은 아래 내용을 파악하시고 즉시 패치를 적용하시기 바랍니다.
1. 취약점 개요
- CVE 번호: CVE-2026-35414
- 취약점 별칭: SplitSSHell (스플릿 SSH셸)
- 공개 일자: 2026년 5월 20일
- 취약점 유형: 부적절한 특수 요소 처리 / 인증 및 접근 제어 우회 (Authentication Bypass)
- 취약점 심각도: 고위험 (High / CVSS 스코어 8.1)
- 영향을 받는 대상: OpenSSH 5.6 버전 이상 ~ 10.3 미만 전체 버전
2. 발생 원인 및 취약점 메커니즘
이 취약점은 OpenSSH가 인증 과정에서 인증기관(CA)의 사용자 인증서(Certificate)와 서버의 authorized_keys 파일 내 설정 항목을 비교하는 파싱 로직에서 발생합니다.
시스템 관리자는 특정 SSH 인증서가 로그인할 수 있는 사용자를 제한하기 위해 authorized_keys에 cert-authority,principals="user1,user2"와 같은 형태로 허용 목록을 정의해 둡니다.
이때 OpenSSH 내부 함수가 문자열을 검증할 때 코드를 오용하여, 서버 설정뿐만 아니라 인증서(Certificate) 내부의 사용자 식별자(Principal) 이름에 포함된 콤마(,)까지 목록 구분자로 오인하여 문자열을 쪼개는(Split) 오류를 범합니다.
익스플로잇 시나리오
- 공격자는 신뢰된 CA로부터
deploy,root라는 단 하나의 문자열 이름을 가진 로우(Low) 권한의 인증서를 발급받거나 탈취합니다. - 서버에 로그인을 시도할 때 취약한 OpenSSH는 이 문자열 내의 콤마(,)를 감지하고, 이를
deploy와root라는 두 개의 별도 계정 권한을 가진 것으로 해석합니다. - 만약 서버 설정에
root가 허용 항목에 매칭되어 있다면, 공격자는 최종적으로 어떠한 암호나 별도 인증 없이 서버의 root(최고 관리자) 권한으로 로그인을 성공하게 됩니다.
3. 발생 가능한 위협 및 특징 (Impact)
- 루트 권한 원격 장악: 조건이 만족될 경우, 원격의 공격자가 타깃 서버의 전권을 쥐는 root 셸 액세스를 즉시 확보할 수 있습니다.
- 로그 흔적 미남김: 이 취약점은 정상적인 SSH 인증 프로토콜 흐름의 연장선상에서 파싱 오류를 유발하는 형태이기 때문에, 시스템의 비정상 종료를 일으키지 않고 SSH 접근 로그에도 정상 로그인처럼 위장되어 흔적이 남지 않습니다. 일반적인 로그 기반 탐지가 어렵다는 점에서 위협적입니다.
4. 취약점이 성립하기 위한 전제 조건
대중적인 원격 코드 실행 취약점과 달리, SplitSSHell 취약점이 실제로 악용되려면 인프라가 다음과 같은 특정 아키텍처 환경을 가지고 있어야 합니다.
- 단순 비밀번호나 일반 공개키(Public Key) 인증이 아닌, SSH 인증서(Certificate) 기반 인증 체계를 명시적으로 도입하여 사용 중인 환경이어야 합니다.
- 서버의
authorized_keys파일 내에cert-authority설정과 함께principals=제약 조건 옵션이 다중 계정 형태로 명시되어 있어야 합니다.
5. 대응 및 조치 방법
방법 A: OpenSSH 버전 업데이트 (영구적 해결책)
OpenSSH 개발사는 콤마 문자열을 구분자로 분리하지 않고 엄격하게 1:1 매칭(strcmp)하도록 로직을 수정한 OpenSSH 10.3 / 10.3p1 버전을 릴리즈했습니다. 인프라 관리자는 사용하는 배포판의 패키지 저장소를 새로고침하여 최신 커널 및 패키지 버전을 반영해야 합니다.
# RHEL / Rocky Linux 계열
sudo dnf clean metadata && sudo dnf update openssh-server
# Ubuntu / Debian 계열
sudo apt update && sudo apt --only-upgrade install openssh-server
# 서비스 재시작 (세션 유지에 주의)
sudo systemctl restart sshd
방법 B: 임시 완화 조치 및 환경 감사
시스템을 당장 업데이트하기 어려운 엔터프라이즈 환경에서는 아래의 우회 수단을 적용할 수 있습니다.
- 사내 내부 인증기관(CA)에서 사용자 SSH 인증서를 발급할 때, Principal(식별 이름) 필드에 콤마(,) 문자가 포함되지 않도록 발급 정책 및 검증 스크립트를 즉시 강화합니다.
- 인프라 전체 서버의
authorized_keys파일 내에서principals=지시문이 활성화된 자산을 탐색하여 불필요한 다중 계정 허용 설정을 임시로 단일화하거나 배제합니다.
6. 결론
CVE-2026-35414(SplitSSHell) 취약점은 복잡한 메모리 오염 기술을 쓰지 않고도 단순한 문장 부호 하나로 대형 보안 장벽을 무너뜨릴 수 있다는 점에서 논리적 설계 오류의 무서움을 보여줍니다. 비록 SSH 인증서 시스템을 구축한 대규모 인프라나 클라우드 환경에 국한되는 조건부 위험이지만, 성공 시 root 권한을 통째로 탈취당하므로 보안 담당자분들은 신속히 내부 OpenSSH 버전을 검토하고 보안 패치를 적용하시길 권장합니다.
'서버 리뷰' 카테고리의 다른 글
| [보안 경고] 워드프레스 WP Maps Pro 플러그인 치명적 취약점 발견 (CVE-2026-8732) (0) | 2026.06.04 |
|---|---|
| OpenSSL 정보 유출 보안 취약점(CVE-2026-31790) 분석 및 업데이트 권고 (0) | 2026.05.30 |
| NGINX WebDAV 모듈 힙 버퍼 오버플로우 취약점(CVE-2026-27654) 분석 및 대응 가이드 (0) | 2026.05.30 |
| [Network/Java] OpenSSL 검증 코드와 Java PKIX 에러 매핑 완벽 정리 (0) | 2026.05.18 |
| NAT와 공인 IP에 대한 이해 (0) | 2025.09.18 |