[공격] 분석 — CVE-2026-3497
Memory corruption via uninitialized variables in Ubuntu's GSSAPI OpenSSH patch allows potential undefined behavior, requiring an immediate update or disabling GSSAPI to prevent unstable execution.
📋 요약
- 심각도 low · CVSS 2.7 · EPSS 0.0218 · 악용난이도 hard
🔍 공격 기법
- 공격 표면: SSH 서버의 GSSAPI 키 교환(Key Exchange) 단계. 네트워크를 통해 접근 가능한 모든 OpenSSH 포트가 대상임.
- 취약점 원리 (Trigger):
- Ubuntu 등 특정 배포판의 GSSAPI 패치 코드에서 에러 발생 시
sshpkt_disconnect()를 호출함. - 문제는 이 함수가 프로세스를 즉시 종료시키지 않고 제어권을 반환한다는 점임.
- 공격자가 키 교환 과정에서 Unexpected GSSAPI Message Type을 전송하면, 서버는 에러를 인지하고
sshpkt_disconnect()를 호출하지만 프로그램은 계속 실행됨. - 이때 관련 연결 변수들이 초기화(NULL 설정)되지 않은 상태로 유지되며, 이후 코드에서 이 Uninitialized Variables에 접근하여 무작위 메모리 영역을 참조하게 됨 (Undefined Behavior).
- Ubuntu 등 특정 배포판의 GSSAPI 패치 코드에서 에러 발생 시
- 공격 체인:
- 정찰: 대상 서버가 Ubuntu 기반의 특정 OpenSSH 버전(10.0p1-5ubuntu5 $\le$ x < 10.0p1-5ubuntu5.1 등)을 사용하는지 확인.
- 초기 접근: GSSAPI 인증이 활성화된 SSH 포트로 접속 시도.
- 트리거: 표준 프로토콜 흐름을 벗어난 비정상적 GSSAPI 메시지 타입 전송 $\rightarrow$
sshpkt_disconnect()호출 유도 $\rightarrow$ 프로세스 생존 및 미초기화 변수 참조 발생. - 실행/영향: 메모리 상태와 컴파일러 hardening 설정에 따라 Crash(DoS) 또는 추정: 메모리 레이아웃 조작을 통한 실행 흐름 제어 시도.
- CVSS 벡터 분석:
AV:N/AC:L은 네트워크를 통해 특별한 조건 없이 접근 가능함을 뜻하지만,VI:L/VA:L(Low Integrity/Availability impact)과VC:N(No Confidentiality impact)은 직접적인 데이터 유출이나 완전한 시스템 장악보다는 불안정한 상태 유발에 그칠 가능성이 높음을 시사함.
악용 가능성: 본 취약점은 OpenSSH 업스트림이 아닌 특정 Linux 배포판의 GSSAPI 패치 영역에서 발생하는 메모리 오염 결함으로, 공격 난이도는 Hard로 평가됩니다. 공격자는 Network(AV:N)를 통해 접근 가능하며, 인증 전 단계인 GSSAPI Key Exchange 과정에서 sshpkt_disconnect()가 프로세스를 완전히 종료하지 못하는 점을 이용해 비정상적인 메시지 타입을 주입해야 합니다. 이 트리거 조건은 초기화되지 않은 변수가 메모리의 임의 지점을 참조하게 만들어 Undefined Behavior를 유발하며, 이는 단순 Crash를 넘어 원격 코드 실행(RCE)으로 이어지기 위해 정교한 Heap Spraying이나 메모리 레이아웃 조작이 전제되어야 합니다. EPSS 수치가 0.0218로 낮고 KEV에 등재되지 않은 점은 현재 야생에서 자동화된 익스플로잇이 광범위하게 유포되지 않았음을 시사하지만, SSH라는 핵심 서비스의 특성상 타겟팅 공격 시 치명적인 진입점이 될 수 있습니다. 주요 공격 표면은 GSSAPI가 활성화된 SSH 서버의 Listen 포트 및 GSSAPI 키 교환 프로토콜 핸들러이며, 특히 배포판별 패치 차이로 인해 노출되는 특정 함수 호출 흐름이 핵심 타겟입니다. 결과적으로 이론적 심각도는 높으나, 실제 악용을 위해서는 메모리 상태를 정밀하게 제어해야 하는 높은 기술적 장벽이 존재합니다.
💥 영향 분석
- Undefined Behavior: 메모리 오염으로 인해 서비스 프로세스가 비정상 종료(DoS)되거나, 드문 확률로 예측 불가능한 동작 수행.
- 컴파일러 의존성: 실제 영향도는 컴파일 시 적용된 hardening 플래그 설정에 따라 크게 달라짐.
🔗 관련 취약점·체이닝
- 메모리 오염 체이닝 (추정): 단독으로 RCE를 달성하기에는 난이도가 매우 높으나, 다음과 같은 유형의 결함과 체이닝될 가능성이 있음:
- Information Leak $\rightarrow$ Memory Corruption: 다른 취약점을 통해 메모리 주소를 미리 알고 있다면, 미초기화 변수가 가리키는 'Random Memory' 영역을 특정 지점으로 유도하여 공격 성공률을 높일 수 있음.
- Heap Spraying/Grooming $\rightarrow$ Use-of-Uninitialized-Variable: 힙 메모리를 미리 조작하여 미초기화 변수가 참조할 위치에 공격자가 제어하는 값을 배치함으로써 실행 흐름을 왜곡하려는 시도 가능.
- 결론: 본 취약점은
Memory-Corruption유형이나, 직접적인 권한 상승보다는 시스템 불안정성을 유발하는 '징검다리' 역할의 결함으로 분석됨.
🔎 탐지
- 패턴: SSH 연결 과정 중 GSSAPI 키 교환 단계에서 비정상적으로 짧은 세션 종료 또는 반복적인
sshpkt_disconnect관련 에러 로그 발생 여부 모니터링. - 로그:
/var/log/auth.log또는syslog내 GSSAPI 인증 실패 및 비정상 세션 종료 패턴 분석.
🛡️ 완화 방안
- 즉시 조치:
sshd_config에서GSSAPIAuthentication no설정을 통해 GSSAPI 기능을 비활성화하여 공격 표면 제거. - 근본 해결: Ubuntu 보안 업데이트를 통해
sshpkt_disconnect()대신 프로세스를 확실히 종료시키는ssh_packet_disconnect()가 적용된 버전으로 패치.
[파이프라인 근거]
- 교차검증: CVSS 벡터 형식 파싱 불일치가 감지되어, 보수적으로 더 엄격한 값을 채택하여 분석함.
- EPSS: 실측값
0.0218(백분위 0.80515)은 현재 실제 악용 사례가 매우 드물며, 이론적 취약점 대비 실전 악용 가능성이 낮음을 의미함. - 우선순위 결정: CVSS(2.7), non-KEV, 낮은 EPSS 및 exploit 난이도(
hard)를 근거로monitor등급으로 결정됨.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=2.7 · non-KEV · EPSS=0.0218 · exploit=hard · in_scope=None