위협 요약
IBM Langflow OSS(오픈소스)에 인증 없는 원격 코드 실행(RCE) 취약점(CVE-2026-9198)이 발견됐다. 공격자가 두 가지 취약점을 연결해 기본 설정 환경에서 완전한 원격 코드 실행에 성공할 수 있다. CISA는 2026년 8월 4일 KEV(Known Exploited Vulnerabilities) 목록에 등재했고, 조치 기한은 8월 7일로 설정됐다. CVSS 9.8(Critical)로 평가되며, IBM은 현재 공식 패치나 우회 방안이 제공되지 않고 있다.
취약점 개요
CVE-2026-9198은 Langflow OSS 1.0.0~1.10.0에서 발견된 코드 인젝션(CWE-94) 취약점이다. Langflow는 LLM(Large Language Model) 기반 애플리케이션을 시각적으로 구축하고 테스트하는 오픈소스 개발 플랫폼으로, AI/ML 엔지니어와 데이터 과학자가 워크플로우를 설계하는 데 널리 사용된다.
이 취약점은 두 가지 문제의 연결로 인해 발생한다. 먼저 인증되지 않은 엔드포인트(/api/v1/auto_login)가 네트워크상에서 호출한 모든 요청자에게 슈퍼유저 베어러 토큰을 발급한다. 두 번째로 코드 검증 엔드포인트(/api/v1/validate/code)가 사용자 입력 코드를 exec()를 통해 직접 실행한다. 공격자는 자동 로그인 엔드포인트에서 슈퍼유저 토큰을 획득한 후, 이를 이용해 코드 검증 엔드포인트에 악성 코드를 제출하는 방식으로 완전한 RCE에 도달한다.
CVSS v3.1 기준 9.8점(Critical)로, CVSS 벡터는 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H이다. 네트워크 기반 원격 공격이 가능하며, 공격 복잡도는 낮고, 인증이 필요 없으며, 사용자 상호작용도 필요 없다. 기밀성, 무결성, 가용성에 모두 심각한 영향을 미친다.
IBM은 2026년 7월 2일 이 취약점을 최초 공개했으며, 현재 공식 패치나 우회 방안(Workarounds)이 제공되지 않고 있다.
기술적 분석
CWE-94(코드 생성의 부적절한 제어, 코드 인젝션) 유형이다. 두 취약점의 연결 공격 흐름은 다음과 같다.
1단계: 자동 로그인을 통한 슈퍼유저 토큰 획득
/api/v1/auto_login 엔드포인트는 인증 절차 없이 모든 네트워크 호출자에게 슈퍼유저 권한의 베어러 토큰을 발급한다. 기본 설정(deployment)에서 이 기능이 활성화되어 있으며, 네트워크가 접근 가능한 상태다. 공격자는 해당 엔드포인트에 HTTP GET 요청을 보내면 응답에서 토큰을 획득한다.
2단계: 코드 검증 엔드포인트를 통한 원격 코드 실행
/api/v1/validate/code 엔드포인트는 사용자가 제출한 Python 코드를 검증하는 목적으로 동작하지만, 내부적으로 exec() 함수를 사용해 코드를 직접 실행한다. 여기서 핵심 문제는 코드 검증기가 Python 데코레이터, 기본 인수, 주석(annotation)을 함수 정의 시점(definition time)에서 실행한다는 것이다. 공격자는 이를 악용해 다음과 같은 방식으로 임의 코드를 실행할 수 있다:
- 함수 정의 시점의 데코레이터 안에 명령 실행 코드 배치
- 기본 인수(default argument)에서 os.system 또는 subprocess 호출
- 함수 주석(annotation) 부분을 통해 부수 효과(side effect) 코드 실행
공격 예시 흐름:
GET /api/v1/auto_login → 토큰 획득
POST /api/v1/validate/code (Bearer 토큰 포함)
Body: { "code": "import os; os.system('id')" }
→ 실행 결과 응답
탐지 신호:
/api/v1/auto_login엔드포인트에 대한 비정상 접근 시도 (특히 내부 사용자가 아닌 IP)/api/v1/validate/code엔드포인트를 통한 Python 코드 실행 요청 로그- Langflow 컨테이너/호스트에서 비정상적인 프로세스 실행 또는 명령 실행 로그
- 외부 IP로 향하는 비정상 네트워크 연결 (C2 통신 또는 데이터 유출)
- 호스트 파일 시스템의 비정상적 변경 (웹셸 설치, 계정 생성 등)
IBM은 공개된 PoC나 exploit 코드의 존재 여부는 확인하지 않았으나, CISA가 KEV에 등재한 것은 실제 악용이 관측되었다는 의미다.
영향 범위
Langflow OSS 1.0.0부터 1.10.0까지의 모든 버전이 영향을 받으며, 기본 설정 환경(all default deployments)에서 취약하다. Langflow를 사용 중인 조직은 거의 전부가 해당된다.
Langflow가 AI/ML 워크플로우를 구축하는 데 사용되는 특성상, 다음 정보가 노출될 위험이 있다.
- 모델 API 키 및 비밀 정보: Langflow에 저장된 LLM API 키, 데이터베이스 연결 정보, 서비스 자격 증명
- 사용자 데이터: 학습 데이터, 프롬프트 템플릿, 워크플로우 구성 정보
- 호스트 시스템 접근: RCE를 통해 Langflow가 실행되는 호스트 시스템 전체를 제어할 수 있으며, 내부 네트워크로의 수평 이동 가능
- 컨테이너 환경: Docker/Kubernetes 환경에서 컨테이너 탈출이나 클러스터 내 수평 이동 가능
CISA KEV에 2026년 8월 4일 등재되었고, CISA BOD 26-04(방어적 보안 조치 지시사항)의 적용 대상이기도 하다. 정부 및 공공기관은 조치 기한 8월 7일까지 대응을 완료해야 한다. 비규제 조직 역시 실제 악용이 확인된 상태이므로 즉시 조치해야 한다.
대응 방안
1. 영향 버전 격리 및 서비스 중단 검토
IBM은 현재 공식 패치나 우회 방안(Workarounds)을 제공하지 않고 있다. Langflow 1.0.0~1.10.0 버전을 운영 중이라면 가능한 즉시 영향 버전 인스턴스를 격리하고, 비즈니스 영향도를 고려해 서비스 중단 여부를 검토해야 한다. Langflow 공식 저장소와 IBM 서포트를 수시로 확인해 공식 패치 출시를 모니터링한다.
2. /api/v1/auto_login 및 /api/v1/validate/code 엔드포인트 접근 차단
가장 시급한 단기 조치다. 다음 엔드포인트에 대한 외부 접근을 즉시 차단한다.
/api/v1/auto_login— 인증 없이 슈퍼유저 토큰을 발급하는 엔드포인트/api/v1/validate/code— 사용자 코드를 실행하는 엔드포인트
리버스 프록시(NGINX, Apache) 또는 방화벽 규칙을 통해 해당 엔드포인트에 대한 외부 접근을 차단한다. Langflow 인스턴스에 대한 접근을 내부 네트워크 또는 VPN을 통해서만 제한한다.
# NGINX 예시
location /api/v1/auto_login {
deny all;
return 403;
}
location /api/v1/validate/code {
deny all;
return 403;
}
3. 자동 로그인 기능 비활성화
Langflow 설정에서 자동 로그인(auto-login) 기능을 비활성화한다. 기본 설정에서 활성화되어 있으므로, 운영 환경에서는 반드시 꺼야 한다.
4. Langflow 인스턴스 감염 여부 점검
이미 공격이 발생했을 가능성을 가정하고 다음 사항을 점검한다.
/api/v1/auto_login접근 로그에서 비정상 IP 확인- 호스트 시스템의 비정상 프로세스, 계정, 파일 변경 여부 확인
- Langflow 컨테이너 내부의 비정상 명령 실행 로그 분석
- 외부 IP로 향하는 비정상 네트워크 트래픽 포렌식
- API 키, 자격 증명 등 민감 정보 유출 여부 확인
5. 네트워크 분할 및 최소 권한 접근
Langflow 인스턴스를 DMZ나 외부 네트워크가 아닌 내부 네트워크에 배치한다. 접근은 VPN 또는 전용 라인을 통해서만 허용하고, 불필요한 포트 개방을 최소화한다.
6. CISA BOD 26-04 준수
규제 대상 조직은 조치 기한 내 대응 완료 여부를 문서화하고, 준수 상태를 입증할 증거를 보존한다.
참고문헌
-
NVD — CVE-2026-9198 상세
https://nvd.nist.gov/vuln/detail/CVE-2026-9198 -
CISA KEV 카탈로그 — CVE-2026-9198
https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2026-9198 -
CVE.org — CVE-2026-9198 공식 기록
https://www.cve.org/CVERecord?id=CVE-2026-9198 -
IBM Security Bulletin — CVE-2026-9198 (Unauthenticated RCE via Auto-Login Bypass and Code Validation)
https://www.ibm.com/support/pages/node/7278927
본 콘텐츠는 AI 기술로 작성된 분석 리포트를 포함하고 있습니다. 내용 중 사실과 다르거나 보완이 필요한 정보를 발견하셨으면 댓글을 통해 의견을 부탁드립니다. 여러분의 피드백은 더 정확한 보안 정보 공유에 큰 도움이 됩니다.
댓글 (0)
댓글을 작성하려면 로그인이 필요합니다.
로그인아직 댓글이 없습니다.
첫 번째 댓글을 작성해보세요!