[단독분석] 분석 — CVE-2023-51384
CVE-2023-51384 allows locally added PKCS#11 keys to bypass destination constraints in OpenSSH ssh‑agent versions 8.9–9.5, and the primary mitigation is to upgrade to OpenSSH 9.6 or later and monitor key‑addition activity.
📋 요약
- 심각도 medium · CVSS 5.5 · EPSS 0.00426 · 악용난이도 hard
🔍 공격 기법
- 로컬 사용자(권한 낮음)가 PKCS#11 토큰을 통해
ssh-agent에 여러 개인키를 추가할 때, 목적지 제약(destination constraints)은 첫 번째 키에만 적용되고 이후 반환되는 키에는 적용되지 않습니다. - 제한이 없는 키가 에이전트에 남으면, 사용자 개입 없이 해당 키로 모든 SSH 서버에 인증이 가능해집니다(특히
ForwardAgent가 활성화된 경우 횡적 이동이 쉬워짐).
악용 가능성: AV가 Local(L)인 점은 공격자가 대상 시스템에 직접 접근해야 함을 의미합니다. AC가 Low(L)이므로 취약점을 이용하는 절차 자체는 복잡하지 않으며, PKCS#11 토큰이 제공하는 여러 키 중 첫 번째 키에만 제약이 적용되는 상황만 재현하면 됩니다. PR이 Low(L)인 점은 공격자가 해당 계정의 로컬 사용자 권한만 있으면 충분하다는 것을 나타내며, UI가 None(N)이므로 사용자의 별도 동작을 요구하지 않습니다. 이러한 전제조건을 충족하려면 공격자는 악성 PKCS#11 모듈을 로드하거나 물리적 토큰을 제어하여 ssh‑agent에 키를 추가할 수 있어야 하며, 이는 일반 사용자 수준에서는 비교적 제한된 시나리오입니다. EPSS 0.00426이라는 실측값은 현재까지 실제 악용 사례가 매우 드물다는 점을 보여주고, KEV 리스트에 등재되지 않은 것도 이 취약점이 아직 광범위하게 활용되고 있지 않음을 뒷받침합니다. 따라서 공격 표면은 ssh‑agent와 PKCS#11 연동 과정에서 노출되는 “키 추가” API 및 해당 토큰이 반환하는 키 목록이며, 로컬 접근 권한을 가진 사용자가 이 경로를 악용할 경우에만 위험이 실현됩니다.
💥 영향 분석
-
기술적 위험
- 제한되지 않은 PKCS#11‑hosted 키를 이용해 원격 SSH 서버에 무단 접근할 수 있으며, 에이전트 포워딩을 통해 내부 네트워크 다른 호스트로도 동일한 키가 재사용되어 횡적 이동이 가능해집니다.
- 직접적인 권한 상승이나 코드 실행은 발생하지 않지만, 인증된 계정의 기밀성·무결성이 침해됩니다.
-
비즈니스 영향
- 무단 접근으로 인한 내부 데이터 유출·시스템 오용 위험이 존재합니다.
- 인증키 관리 정책 위반 시 규제·컴플라이언스 감사 대상이 될 수 있으며, 사고 발생 시 복구 비용 및 기업 신뢰도 손실이 발생할 가능성이 있습니다.
-
노출 규모
- 영향 제품: OpenSSH 8.9‑9.6 (OpenBSD) 및 Debian 계열(
openssh패키지) 전 버전. - PKCS#11 토큰을 사용하는 모든 로컬 사용자와 해당 시스템의
ssh-agent가 대상이 됩니다.
- 영향 제품: OpenSSH 8.9‑9.6 (OpenBSD) 및 Debian 계열(
-
근거
- 다중 소스에서 일관성이 확인됐으며([교차검증]), EPSS 0.00426은 현재 관찰된 악용 가능성이 낮지만 완전히 배제되지 않음을 의미합니다([실측 악용예측]).
- CVSS 5.5·non‑KEV·EPSS 0.00426·exploit hard 라는 규칙 기반 판단에 따라 우선순위는 “monitor”(모니터링)로 결정되었습니다([우선순위 결정]).
🔗 관련 취약점·체이닝
- 과거 OpenSSH 에이전트에서 보고된 목적 제약 적용 오류와 유사한 패턴이 존재하지만, 현재 공개된 연계 CVE 번호는 확인되지 않았습니다.
- 이 취약점을 이용해 획득한 키는 다른 SSH 인증 관련 취약점(예: 인증 우회, 강제 인증)과 결합될 경우 추가적인 권한 상승이나 서비스 거부 공격에 활용될 수 있습니다.
🔎 탐지
ssh-add --pkcs11명령 또는 에이전트 API 호출 시 기록되는 로그에서 키 개수와 destination_constraint 표시 여부를 비교합니다.- 예시 정규식:
text1ssh-add\s+.*--pkcs11\b.*\bkey count=\d+\b(?!.*destination_constraint)
auditd의USER_AUTH이벤트 또는sshd로그(Accepted publickey for …)와 연계해, 제한 없는 키가 사용된 세션을 경보로 전환합니다.
🛡️ 완화 방안
- 패치 적용 – OpenSSH 9.6 이상으로 업그레이드하거나 배포판(
openssh) 최신 보안 업데이트를 즉시 설치합니다. - PKCS#11 사용 제한 – 필요하지 않은 경우 PKCS#11 토큰을 통한 키 추가 기능을 비활성화하고, 기존 키에 대해 수동 제약 검증을 수행합니다.
- Agent Forwarding 차단 –
ForwardAgent yes설정을 최소화하거나 신뢰된 호스트에만 제한적으로 허용합니다. - 모니터링 강화 – 위 탐지 패턴을 SIEM 등에 등록해 비정상적인 키 추가·사용 행위를 실시간으로 알림받습니다.
⚖️ 위험도 / 우선순위
- 조치: monitor (모니터링)
- 근거: CVSS=5.5 · non-KEV · EPSS=0.00426 · exploit=hard · in_scope=None