
# CVE-2026-33017 재현 실습 환경 Langflow의 인증되지 않은 RCE 취약점인 CVE-2026-33017을 위한 재현 가능한 실습 환경입니다. Docker 기반의 취약 서비스와 공개 빌드 엔드포인트를 통한 코드 실행을 입증하는 최소 피해 PoC를 포함합니다.
CVE-2026-33017은 Langflow의 인증 없는 원격 코드 실행(RCE) 취약점으로, 공개 빌드 엔드포인트가 공격자가 제어하는 플로우 데이터를 수락하여 사용자 정의 컴포넌트 코드가 서버에서 실행될 수 있게 합니다.
이 실습 환경에서 검증 흐름은 다음과 같습니다:
PUBLIC 플로우 생성job_id 수신증명은 Langflow API 이벤트 메커니즘을 통해 직접 검색되므로 시스템 인터페이스 자체를 통해 결과를 관찰할 수 있습니다.
이 문서는 취약점 전용 실습 환경을 제시합니다.
현재 docker compose에는 vuln 서비스 하나만 포함되어 있습니다. 이 프로젝트는 실제 아티팩트 전용 접근 방식을 따르며 공식 수정 아티팩트에 기반하지 않은 패치된 환경을 피하기 때문입니다.
이 실습 환경에서 다음 동작이 검증되었습니다:
http://localhost:7861에서 실행됨1.8.1을 반환함build_public_tmp가 job_id를 반환함증명 객체 예시:
{
"canary": "lf33017-c14fc1c9",
"id_output": "uid=1000(user) gid=0(root) groups=0(root)",
"whoami": "user",
"hostname": "155aa3fd5e2a",
"cwd": "/app",
"python_version": "3.12.12"
}
핵심 증거는 다음과 같습니다:
id_outputwhoamihostnamecwdpython_version위 정보는 공격자가 제어하는 코드가 실제로 서버 측에서 실행되었음을 보여줍니다.
.
├── docker-compose.yml
├── vuln/
│ └── Dockerfile
├── poc/
│ └── poc.py
├── README.md
└── .gitignore
7861 -> 7860이 취약점은 Langflow의 공개 빌드 엔드포인트가 사용자 제공 플로우 정의를 수락하기 때문에 존재합니다. 엔드포인트는 이미 공개 플로우용으로 설계되었지만, 공격자가 사용자 정의 컴포넌트 코드가 포함된 노드 정의를 제출하면 시스템이 해당 코드를 플로우 빌드 경로에 전달하여 궁극적으로 서버에서 코드 실행으로 이어집니다.
이 프로젝트의 PoC는 출력에 증명 객체를 반환하는 사용자 정의 컴포넌트를 사용하여 공격자가 제어하는 코드가 실제로 실행됨을 입증합니다.
이 프로젝트의 PoC는 최소 피해를 목표로 설계되었으며 API를 통한 명확한 관찰 가능한 증명에 중점을 둡니다. 작업 흐름은 다음과 같습니다:
PUBLIC 플로우 생성job_id 수신이 PoC는 다음을 포함하지 않습니다:
docker compose up -d --build
curl -i http://localhost:7861/api/v1/version
python3 poc/poc.py --base-url http://localhost:7861 --artifact-dir ./artifacts/vuln
PoC가 성공하면 출력은 다음과 같습니다:
[+] http://localhost:7861 ready (version=1.8.1)
=== TARGET: vuln ===
Base URL : http://localhost:7861
Version : 1.8.1
Flow ID : <uuid>
HTTP : 200
Job ID : <uuid>
Canary : lf33017-xxxxxxxx
Events : artifacts/vuln/events-<job_id>.ndjson
Polls : 2
[+] Proof observed through the Langflow API events endpoint:
{
"canary": "lf33017-xxxxxxxx",
"id_output": "uid=1000(user) gid=0(root) groups=0(root)",
"whoami": "user",
"hostname": "<container-hostname>",
"cwd": "/app",
"python_version": "3.12.x"
}
[+] Vulnerable behavior observed
artifacts/vuln/events-<job_id>.ndjson 파일은 추가 디버깅을 위한 원시 이벤트 데이터를 저장합니다.
이 PoC는 다음을 입증합니다:
이 PoC는 지속성이나 고급 사후 침투를 입증하기 위한 것이 아니며 취약점 검증에 필요한 최소 수준으로 영향을 유지합니다.
이 실습 환경을 기반으로 입증된 영향은 다음과 같습니다:
이 저장소는 설계상 패치된 서비스를 포함하지 않습니다.
범위는 실제 업스트림 아티팩트에서 취약한 동작을 재현하는 것으로 제한됩니다. 패치된 측면은 공급업체 또는 업스트림 프로젝트에서 명확하게 검증 가능한 공식 수정 아티팩트가 제공되는 경우에만 추가됩니다.
따라서 이 저장소는 의도적으로 다음을 피합니다:
이를 통해 실습 환경의 범위를 좁게 유지하고 기술적으로 정직하게 유지합니다. 인위적인 병렬 구성을 제시하는 대신 저장소는 세 가지에 중점을 둡니다:
실질적으로 이 저장소는 다음에 가장 적합합니다:
docker compose down -v
이 실습 환경은 localhost에서만 테스트하도록 설계되었습니다.
사용 요구 사항: