[공격] 분석 — CVE-2025-61984
This vulnerability allows potential RCE via control character injection in usernames when ProxyCommand is enabled, but requires a high-complexity chain and local/privileged access to configuration sources, making it a low-probability threat.
📋 요약
- 심각도 low · CVSS 3.6 · EPSS 0.00284 · 악용난이도 hard
🔍 공격 기법
본 취약점은 OpenSSH가 사용자 이름을 처리할 때 control characters를 적절히 필터링하지 않아 발생하는 입력 검증 결함이다. 특히 ProxyCommand 설정이 활성화된 환경에서 이 제어 문자가 쉘 명령어로 해석되어 임의 코드 실행(RCE)으로 이어질 수 있다.
- 공격 표면 및 트리거:
- 입력 지점: SSH 커맨드라인 인자 또는
ssh_config파일 내%-sequence확장 변수. - 트리거 조건: 대상 시스템의 SSH 설정에
ProxyCommand가 정의되어 있어야 하며, 공격자가 제어 가능한 사용자 이름(username)이 해당 명령줄에 삽입되는 구조여야 한다.
- 입력 지점: SSH 커맨드라인 인자 또는
- 공격 체인 및 전제 조건:
- 정찰/초기접근: 공격자는 시스템의 SSH 설정 파일(
~/.ssh/config등)을 수정할 수 있거나, 특정 스크립트를 통해ssh -l [username] ...형태의 명령어를 실행하게 유도해야 한다. (AV:L, PR:L 반영) - 인젝션: 사용자 이름 필드에 쉘 메타문자나 제어 문자를 삽입한다. (예:
user\n/bin/sh -c 'payload') - 실행: OpenSSH가
ProxyCommand를 구성하기 위해 사용자 이름을 문자열로 치환하는 과정에서, 제어 문자가 명령 구분자로 작동하여 의도치 않은 추가 명령어가 쉘에 전달된다. (AC:H 반영) - 권한 획득: 실행되는 명령어는 SSH 클라이언트를 실행한 사용자의 권한을 따른다.
- 정찰/초기접근: 공격자는 시스템의 SSH 설정 파일(
- CVSS 벡터 분석:
AV:L(로컬 접근 필요),AC:H(ProxyCommand 설정 및 특정 입력 경로 확보라는 까다로운 조건),PR:L(최소한의 사용자 권한 필요)이 결합되어 실전 악용 난이도가 매우 높음을 시사한다.
악용 가능성: 본 취약점은 AV:L/AC:H 벡터가 시사하듯, 공격자가 대상 시스템에 이미 로컬 접근 권한을 가졌거나 특정 설정 파일을 제어할 수 있어야 하는 매우 까다로운 전제조건을 요구합니다. 실제 공격 표면은 SSH 클라이언트의 ProxyCommand 옵션과 사용자 이름(username) 필드이며, 특히 %-sequence 확장을 통해 신뢰할 수 없는 소스(명령줄 인자 등)로부터 제어 문자가 주입될 때 트리거됩니다. EPSS 수치가 0.00284로 매우 낮고 KEV에 등재되지 않은 점은 일반적인 네트워크 스캔을 통한 대규모 자동화 공격 가능성이 희박함을 의미합니다. 하지만 로컬 권한을 가진 공격자가 SSH 설정 파일의 취약한 구성이나 잘못된 파라미터 전달 구조를 악용한다면, 제어 문자를 이용해 셸 명령어를 주입하는 Command Injection 형태로 발전할 수 있습니다. 결과적으로 단순한 네트워크 침투보다는 내부망 진입 후 권한 상승이나 측면 이동(Lateral Movement) 단계에서 특정 설정 오류와 체이닝될 때 실전 위협이 되는 구조입니다. 따라서 공격 난이도는 매우 높으나, ProxyCommand를 사용하는 특수한 환경에서는 잠재적인 실행 경로가 존재합니다.
💥 영향 분석
- 임의 코드 실행(RCE): SSH 클라이언트를 실행하는 사용자 권한으로 임의 명령어가 실행된다.
- 기밀성/무결성 침해: 로컬 사용자의 데이터 접근 및 시스템 설정 변경이 가능하다.
🔗 관련 취약점·체이닝
단독으로는 AV:L 및 AC:H 제약으로 인해 파급력이 낮으나, 다음과 같은 체이닝 시나리오가 가능할 것으로 추정된다.
- 설정 파일 변조 $\rightarrow$ RCE: 다른 로컬 취약점을 통해 사용자의
.ssh/config파일을 수정하여%-sequence확장에 악성 제어 문자를 심어둔 뒤, 피해자가 SSH 접속을 시도하는 순간 코드가 실행되게 하는 '지속성(Persistence)' 확보 수단으로 활용 가능. - 권한 상승 체이닝: 추정: 일반 사용자 권한으로 진입한 공격자가 이 취약점을 이용해 특정 자동화 스크립트나 관리자 계정의 SSH 세션을 트리거함으로써 상위 권한을 획득하는 경로로 활용할 수 있음.
- 패턴 분석: 본질적으로
Command Injection유형이며, 외부 입력값이 내부 시스템 쉘 명령어로 전달되는 '신뢰 경계(Trust Boundary)' 붕괴 패턴을 보인다.
🔎 탐지
- 설정 모니터링:
/etc/ssh/ssh_config및~/.ssh/config내ProxyCommand설정 여부와%-sequence사용 패턴 감시. - 프로세스 분석: SSH 프로세스의 자식 프로세스로 비정상적인 쉘 명령어(예:
/bin/sh,curl,wget)가 실행되는지 확인. - 로그 분석: SSH 실행 인자 중 제어 문자(
\n,\r등)나 비정상적인 특수문자가 포함된 커맨드라인 로그 탐색.
🛡️ 완화 방안
- 근본 해결: OpenSSH 10.1 버전 이상으로 업데이트하여 사용자 이름 내 제어 문자 필터링 적용.
- 즉시 조치: 불필요한
ProxyCommand설정을 제거하거나, 신뢰할 수 없는 소스(스크립트 인자 등)로부터 전달된 사용자 이름을 그대로 SSH 명령어에 사용하지 않도록 입력값 검증 로직 추가.
[파이프라인 근거] 본 분석은 다중 소스 데이터의 일관성이 확인되어 신뢰도 1.0으로 작성되었다. 실측 EPSS 값(0.00284)과 백분위(0.20667)는 이론적 심각도와 별개로 실제 야생에서의 악용 가능성이 매우 낮음을 정량적으로 증명하며, 이에 따라 KEV 미등재 및 높은 공격 복잡도를 근거로 우선순위를 monitor로 결정하였다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=3.6 · non-KEV · EPSS=0.00284 · exploit=hard · in_scope=None