CVE 재현: cve-2026-0770-langflow_rce_reproduction
CVSS 9.8 (Critical) | ZDI-CAN-27325 | CWE-829: 신뢰할 수 없는 제어 영역의 기능 포함
CVE-2026-0770은 LLM 기반 애플리케이션을 구축하기 위한 로우코드 애플리케이션 프레임워크인 Langflow의 중요한 인증되지 않은 원격 코드 실행 취약점입니다. 이 결함은 /api/v1/validate 엔드포인트에 있으며, exec_globals 매개변수가 Python의 exec() 함수에 안전하지 않게 전달되어 인증되지 않은 공격자가 Langflow 프로세스의 권한(일반적으로 root)으로 임의 코드를 실행할 수 있습니다.
Zero Day Initiative(ZDI-CAN-27325)를 통해 발견되었습니다.
Langflow의 validate 엔드포인트(/api/v1/validate)는 exec_globals 필드를 포함하는 JSON 페이로드를 받습니다. 이 딕셔너리는 사용자 정의 컴포넌트 검증 중 전역 변수를 미리 채우기 위해 내부적으로 사용됩니다. 그러나 이 엔드포인트는 exec_globals의 내용을 검증하거나 제한하지 않으며, 값들이 Python의 내장 exec() 함수에 직접 전달됩니다:
exec(user_code, exec_globals)
공격자는 내장 함수를 재정의하거나 악성 호출 가능 객체를 주입하는 조작된 exec_globals 딕셔너리를 제공하여 임의의 Python 코드를 주입할 수 있습니다. Langflow가 이러한 전역 변수로 사용자 코드를 내부적으로 평가할 때 주입된 코드가 실행됩니다.
이 취약점은 CWE-829로 분류되는데, 이는 애플리케이션이 신뢰할 수 없는 소스(네트워크 요청)로부터 (exec_globals를 통해) 기능을 적절한 검증 없이 포함시켜 임의 코드 실행을 유발하기 때문입니다.
validate 엔드포인트에서 exec_globals에 대한 적절한 검증을 구현한 패치 이전의 모든 Langflow 버전이 영향을 받습니다. 구체적인 영향 받는 버전은 다음과 같습니다:
/api/v1/validate가 exec_globals를 검증 없이 받는 버전exec_globals 페이로드와 함께 조작된 POST 요청을 /api/v1/validate로 전송포함된 exploit.py 스크립트를 사용하세요:
python exploit.py --target 192.168.1.100 --port 7860 --command "id > /tmp/pwned"
exec_globals를 검증하는 패치된 버전으로 Langflow 업그레이드.면책 조항: 이 정보는 교육 목적 및 승인된 보안 테스트용으로만 제공됩니다. 귀하가 소유하지 않거나 명시적 테스트 허가가 없는 시스템에 대한 무단 사용은 불법입니다.