[공격] 분석 — CVE-2025-32433
CVE-2025-32433 is an unauthenticated remote code execution flaw in Erlang/OTP’s SSH server that demands immediate firewall blocking or service shutdown and prompt patching to OTP 27.3.3 / 26.2.5.11 / 25.3.2.20.
📋 요약
- 심각도 critical · CVSS 10.0 · EPSS 0.98594 · 악용난이도 easy · KEV
🔍 공격 기법
- 공격 표면: TCP 22 (또는 사용자 정의 포트)에서 실행되는 Erlang/OTP SSH 데몬. 취약점은 SSH 프로토콜 메시지 파싱 로직에 존재하므로, 어떠한 인증 절차 없이 악의적인 패킷을 전송하면 코드가 실행된다.
- 정찰:
- 포트 스캔 → SSH 열려 있는지 확인.
- 버전 탐지 (SSH‑banner 혹은 Erlang/OTP 버전 누출) → 취약 버전(OTP‑26.x < 26.2.5.11, OTP‑27.x < 27.3.3 등)인지 판단.
- 초기 접근:
- 악성 SSH 핸드쉐이크 패킷(예: 변조된
KEXINIT/USERAUTH_REQUEST필드) 전송 → 서버가 입력을 검증하지 않아 메모리 손상 또는 임의 명령 실행 트리거. - CVSS 벡터 AV:N/AC:L/PR:N/UI:N와 일치: 네트워크 직접 접근, 낮은 난이도, 인증·사용자 상호작용 불필요.
- 악성 SSH 핸드쉐이크 패킷(예: 변조된
- 실행·권한 획득:
- 성공 시 sshd 프로세스가 실행 중인 계정(대부분 root 또는 시스템 서비스 계정) 권한으로 임의 쉘/명령 실행.
execve("/bin/sh",…)등 직접적인 명령 실행이 가능하므로 전체 시스템 장악 가능.
- 지속:
- 공격자는
/etc/ssh/authorized_keys에 키 추가, 시스템 서비스 파일(systemd,init.d) 변조, 혹은 백도어 스크립트 배포 등으로 재접근을 보장한다.
- 공격자는
- 영향 확산:
- 동일 네트워크 내 다른 호스트에 SSH 키 전파 → 횡적 이동(Lateral Movement).
- 취약 서버가 클러스터 혹은 분산 Erlang 노드의 일부라면, 악성 코드가 Erlang 메시징을 통해 전체 클러스터로 퍼질 가능성 존재.
악용 가능성: 이 취약점은 네트워크를 통해 직접 접근할 수 있는 SSH 서버(AV:N)에서, 복잡한 사전 준비 없이도(AC:L) 인증 없이(PR:N) 사용자 개입(UI:N) 없이 원격 코드 실행이 가능하므로 공격 난이도가 매우 낮습니다. EPSS 점수 0.98594와 KEV 등재는 실제 악용 사례가 빈번히 보고되고 있음을 의미하며, 이론적 심각도와 별개로 실전 위협으로 평가됩니다. 공격자는 공개된 SSH 포트(보통 22/TCP) 혹은 방화벽 규칙에 의해 허용된 다른 포트를 스캔해 대상 서버를 식별하고, 취약한 OTP 버전을 실행 중인지를 확인합니다. 해당 서버가 노출된 상태라면, SSH 프로토콜 메시지 처리 로직의 결함을 이용해 인증 절차 없이 임의 명령을 삽입·실행할 수 있습니다. 이 과정에서 별도의 초기 접근 단계나 권한 상승이 필요 없으며, 단일 네트워크 패킷 교환만으로 원격 코드 실행이 이루어집니다. 따라서 노출된 SSH 엔드포인트 자체가 가장 큰 공격 표면이며, 방화벽이나 접근 제어 설정을 통해 해당 포트를 차단하지 않으면 언제든지 악용될 위험이 존재합니다.
💥 영향 분석
- 전체 시스템 권한 장악: sshd가 실행 중인 사용자(대부분 root) 권한으로 임의 명령 실행 → 데이터 탈취·파괴·내부망 확산.
- 서비스 중단: 악성 프로세스가 시스템 자원을 소모하거나 서비스 설정을 파괴하면 가용성 저하.
- 신뢰 체인 붕괴: Erlang/OTP 기반 애플리케이션(예: RabbitMQ, CouchDB 등)까지 영향을 받아 비즈니스 로직이 손상될 수 있다.
🔗 관련 취약점·체이닝
- CWE‑287 (Improper Authentication) 및 CWE‑306 (Missing Authentication for Critical Function)와 동일한 인증 부재 패턴.
- 추정: 같은 OTP 버전에서 발견된 다른 메모리 안전성 결함(CWE‑119 등)이 존재한다면, 초기 RCE 후 로컬 권한 상승(LPE)으로 이어질 수 있다.
- 일반적인 체이닝 시나리오: Unauthenticated SSH RCE → 시스템 쉘 확보 → 기존 로컬 프리빌리지 에스컬레이션 취약점 이용 → root.
🔎 탐지
- 네트워크 IDS/IPS: 비정상적인 SSH 핸드쉐이크 패킷(예: 변조된
KEXINIT길이, 예상치 못한 메시지 타입)에 대한 서명 매칭. - 호스트 로그: sshd 로그에 “authentication failure” 없이 세션 시작,
exec요청이 즉시 발생하거나session opened for user root와 같은 비정상적인 순서가 기록될 경우 경고. - EDR/Behavioral: sshd 프로세스가 새로운 셸(
sh,bash)을 직접 spawn 하는 이벤트, 혹은/etc/ssh/authorized_keys파일이 예기치 않게 수정되는 행위.
🛡️ 완화 방안
- 즉시 조치
- 외부 접근 차단: 방화벽에서 TCP 22(또는 사용 포트) 차단 또는 SSH 서비스 비활성화.
- 허용된 IP만 제한적으로 열어두고, 키 기반 인증을 강제 적용하되 패치 전까지는 접속 자체를 차단하는 것이 안전.
- 근본 해결
- Erlang/OTP 27.3.3, 26.2.5.11 또는 25.3.2.20 이상 버전으로 업데이트.
- 패치 적용 전후에
erl -eval 'io:format("OTP version ~p~n", [erlang:system_info(otp_release)]).'로 실제 버전을 검증.
- 보조 방어
- sshd를 제한된 권한(예: non‑root 사용자)으로 실행하거나 컨테이너/VM 격리 환경에 배치.
- 정기적인 취약점 스캔 및 SSH 로그 중앙집중화, 이상 징후 알림 설정.
근거: 다중 소스 교차검증 결과 일관된 정보(신뢰도 1.0)와 EPSS 0.98594·KEV 등재가 높은 실제 악용 가능성을 시사하므로, “immediate” 우선순위(24시간 내 대응) 논리에 부합한다.
⚖️ 위험도 / 우선순위
- 조치: immediate (지금 즉시(24h 내))
- 근거: CVSS=10.0 · KEV · EPSS=0.98594 · exploit=easy · in_scope=None