무슨 일이 있었나
Langflow의 MCP 'Stdio' 트랜스포트는 사용자가 MCP 서버 구성에 넣은 명령/인자를 허용 목록이나 샌드박스 없이 `bash -c exec …`로 감싸서 실행했습니다. 명령은 서버 목록을 가져오거나 플로우가 MCP 도구 구성 요소를 사용하는 즉시 Langflow 프로세스 사용자 권한으로 실행됩니다. 기본 LANGFLOW_AUTO_LOGIN=true에서는 노출된 인스턴스가 자격 증명 없이 토큰을 발급하므로 CVE-2026-105697은 사실상 인증 없이 악용 가능합니다. 관련된 인증된 pre-1.9.0 변형(CVE-2026-105740)은 임의 환경 변수 주입(LD_PRELOAD/PATH)도 허용했습니다. 10월 5일 공개 배치에는 로컬 전용 MCP 설치 제한을 우회하는 X-Forwarded-For: 127.0.0.1 스푸핑(105741), 테넌트 간 MCP 리소스 읽기(105699), 플로우 빌드/버텍스 소유권 격차(105698)도 포함되었습니다.
왜 중요한가
Langflow는 가장 널리 배포된 오픈소스 에이전트/워크플로우 빌더 중 하나입니다(MCP 도구 표면을 LLM 앱에 연결하는 데 사용). 모든 사용자 — 또는 기본 자동 로그인으로 인스턴스에 도달하는任何人都 — 서빙 호스트에서 임의 명령을 실행하고, 비밀 및 모델/프로바이더 자격 증명을 탈취하고, 에이전트 빌드 표면 자체를 통해 주변 환경으로 피벗할 수 있습니다.
공격 경로
설정 → MCP 서버에서 MCP 서버를 추가하거나(POST/PATCH /api/v2/mcp/servers/{server_name}) MCP 도구 구성 요소를 사용하는 플로우를 빌드하고, 명령 필드를 임의 OS 명령으로 설정합니다. 가져온 도구 목록/플로우 실행은 Langflow 호스트에서 프로세스 사용자 권한으로 실행됩니다(또는 빌드 버텍스 사용).
영향받는 시스템
Langflow / langflow-base / lfx < 1.10.3 (CVE-2026-105697); < 1.9.0 (CVE-2026-105740); 또한 CVE-2026-105741 IP 스푸핑 우회 < 1.10.3, CVE-2026-105699 MCP 리소스 크로스-테넌트 읽기 1.6.8–1.9.1, CVE-2026-105698 빌드-버텍스 플로우 소유권 1.0.0–1.10.1
완화 방안
Langflow 1.10.3 / langflow-base 0.10.3 / lfx 1.10.3로 업그레이드(105697, 105741), 1.9.0(105740), 1.9.1(105699), 1.10.1(105698). 노출된 인스턴스에서 AUTO_LOGIN을 비활성화하고, MCP 서버 구성을 생성할 수 있는 사용자를 제한합니다.