AI 에이전트 빌더가 뚫리면 금고가 열린다 — Langflow 무인증 RCE (CVE-2026-9198)

보안 2026-08-10 14:03:35 langflowrcecisa-kev에이전트cve

글 목록 →

8월 5일(현지 기준) CISA가 Known Exploited Vulnerabilities(KEV) 카탈로그에 Langflow의 원격 코드 실행 취약점 CVE-2026-9198을 올렸다. KEV는 “실제 공격에 쓰이고 있음이 확인된 취약점” 목록이다. Langflow는 LLM 워크플로와 에이전트를 시각적으로 조립하는 오픈소스 빌더로, 이 블로그처럼 MCP 서버·에이전트를 만지는 사람이라면 한 번쯤 설치해 봤을 종류의 도구다. 이번 건이 눈길을 끄는 이유는 취약점 자체보다, “에이전트를 조립하는 도구”가 공격 표면이 됐을 때 무엇이 새어 나가는지를 보여주기 때문이다.

취약점 구조 — 인증 없는 기본값과 코드 실행 표면의 결합

보도와 공개 분석을 종합하면 CVE-2026-9198(CVSS 9.8)은 Langflow OSS 1.0.0~1.10.0에 영향을 주는 무인증 코드 주입 취약점이다. 구멍은 두 조각의 결합이다.

  • 인증 없는 기본 설정: 기본 배포에서 자동 로그인 성격의 엔드포인트가 네트워크의 아무 호출자에게나 관리자급 토큰을 내어준다.
  • 코드 실행 엔드포인트: 코드 검증용 API가 전달받은 Python 코드를 서버에서 실제로 실행한다. Langflow는 사용자가 커스텀 컴포넌트를 Python으로 짜는 도구라, 코드 실행 기능 자체가 제품의 일부다.

각각은 “편의 기능”이지만 둘이 겹치면 인증 없이 관리자 권한으로 임의 코드를 실행하는 경로가 된다. 벤더는 7월 중순 공개와 함께 1.10.1에서 수정했고, CISA는 KEV 등재와 함께 미 연방 기관에 8월 7일까지 패치를 지시했다. 보안 매체 보도로는 7월 초부터 수백 건의 악용 시도가 수십 개국의 IP에서 관측됐다.

왜 에이전트 도구의 RCE는 더 아픈가

일반 웹 앱의 RCE는 그 서버 하나의 문제로 끝나기도 한다. 에이전트 오케스트레이션 도구는 사정이 다르다. 이런 도구가 일을 하려면 모델 제공사 API 키, 데이터베이스 자격증명, 외부 서비스 커넥터 토큰을 자기 안에 모아 둬야 한다. 도구가 뚫리면 공격자는 서버 한 대가 아니라 그 도구가 신뢰받던 모든 연결을 손에 넣는다. 훔친 API 키로 모델 호출 요금을 대신 태우거나, 커넥터 토큰으로 사내 데이터에 닿는 식이다.

같은 주에 나온 CrowdStrike 보고서는 공개 PoC가 나온 뒤 48시간 안에 시작된 공격이 취약점 공격의 대부분(약 88%)이라고 집계했다. “나중에 패치하지”가 통하던 시간 여유는 이제 없다고 봐야 한다.

지금 확인할 것 — 에이전트 스택 점검 목록

Langflow 사용자가 아니어도, 로컬에서 굴리는 에이전트 도구 전반에 같은 질문을 던져볼 만하다.

  1. 버전: Langflow라면 1.10.1 이상인지 확인한다. 다른 도구도 KEV 등재 여부를 찾아본다.
  2. 노출 범위: 그 도구가 0.0.0.0으로 바인딩되어 인터넷이나 사내망 전체에 열려 있지 않은지 본다. 로컬 전용이면 루프백에만 묶는다.
  3. 인증 기본값: “설치하면 바로 쓰인다”는 도구일수록 인증이 꺼진 채 시작할 가능성이 높다. 문서에서 인증 활성화 옵션을 찾아 켠다.
  4. 자격증명 반경: 그 도구에 넣어 둔 API 키·토큰이 무엇인지 목록을 만들고, 침해가 의심되면 즉시 로테이션한다. 처음부터 권한을 좁게 발급한 키만 넣는 습관이 피해 반경을 줄인다.
  5. 코드 실행 표면: 사용자 코드를 실행해 주는 기능(커스텀 컴포넌트, 코드 검증 등)이 있는 도구는 그 기능이 인증 뒤에 있는지 확인한다.

에이전트 스택은 새 기술이지만 공격당하는 방식은 오래된 문법 그대로다 — 인증 없는 기본값, 열린 포트, 한곳에 모인 자격증명. 새 도구를 들일 때마다 이 세 가지를 묻는 것이, LLM 시대에도 변하지 않는 최소한의 규율이다.

참고 자료

댓글

이 글에 대한 의견은 아래 댓글로 남겨주세요 (GitHub 계정 필요). 로그인 없이 남기고 싶다면