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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-33017-Lab — # CVE-2026-33017 재현 실습 환경 Langflow의 인증되지 않은 RCE 취약점인 CVE-2026-33017을 위한 재현 가능한 실습 환경입니다. Docker 기반의 취약 서비스와 공개 빌드 엔드포인트를 통한 코드 실행을 입증하는 최소 피해 PoC를 포함합니다. | Kitploit
도구/GitHubGitHub/rootdirective-sec/cve-2026-33017-lab
Vulnerability AnalysisExploitationWeb Application ExploitationPapers & ResearchLearning & EducationLabs & Practice
GitHubrootdirective-sec/cve-2026-33017-lab

CVE-2026-33017-Lab

# CVE-2026-33017 재현 실습 환경 Langflow의 인증되지 않은 RCE 취약점인 CVE-2026-33017을 위한 재현 가능한 실습 환경입니다. Docker 기반의 취약 서비스와 공개 빌드 엔드포인트를 통한 코드 실행을 입증하는 최소 피해 PoC를 포함합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-33017 — Langflow 인증 없이 원격 코드 실행 실습 환경

요약

CVE-2026-33017은 Langflow의 인증 없는 원격 코드 실행(RCE) 취약점으로, 공개 빌드 엔드포인트가 공격자가 제어하는 플로우 데이터를 수락하여 사용자 정의 컴포넌트 코드가 서버에서 실행될 수 있게 합니다.

이 실습 환경에서 검증 흐름은 다음과 같습니다:

  1. 자동 로그인 흐름을 통해 액세스 토큰 획득
  2. 새 PUBLIC 플로우 생성
  3. 공개 빌드 엔드포인트에 공격자가 제어하는 컴포넌트 코드 전송
  4. job_id 수신
  5. 빌드 이벤트 API를 통해 결과 폴링
  6. 컴포넌트 출력에서 직접 증명 객체 읽기

증명은 Langflow API 이벤트 메커니즘을 통해 직접 검색되므로 시스템 인터페이스 자체를 통해 결과를 관찰할 수 있습니다.


이 저장소의 범위

이 문서는 취약점 전용 실습 환경을 제시합니다.

현재 docker compose에는 vuln 서비스 하나만 포함되어 있습니다. 이 프로젝트는 실제 아티팩트 전용 접근 방식을 따르며 공식 수정 아티팩트에 기반하지 않은 패치된 환경을 피하기 때문입니다.


이 실습 환경에서 검증된 동작

이 실습 환경에서 다음 동작이 검증되었습니다:

  • 취약한 Langflow 인스턴스가 http://localhost:7861에서 실행됨
  • 버전 엔드포인트가 1.8.1을 반환함
  • 공개 플로우를 생성할 수 있음
  • build_public_tmp가 job_id를 반환함
  • PoC가 이벤트 폴링을 계속할 수 있음
  • 증명 객체가 API를 통해 반환됨
  • 공격자가 제어하는 코드가 Langflow 런타임 내에서 실행됨

증명 객체 예시:

root@kitploit:~
{
  "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_output
  • whoami
  • hostname
  • cwd
  • python_version

위 정보는 공격자가 제어하는 코드가 실제로 서버 측에서 실행되었음을 보여줍니다.


저장소 구조

root@kitploit:~
.
├── docker-compose.yml
├── vuln/
│   └── Dockerfile
├── poc/
│   └── poc.py
├── README.md
└── .gitignore

요구 사항

  • Linux 또는 macOS
  • Docker Desktop 또는 Docker Engine
  • Docker Compose v2
  • Python 3

서비스 개요

vuln

  • 취약한 Langflow 인스턴스
  • 바인딩 포트: 7861 -> 7860
  • localhost에서 CVE-2026-33017을 재현하는 데 사용됨

취약점 작동 방식

이 취약점은 Langflow의 공개 빌드 엔드포인트가 사용자 제공 플로우 정의를 수락하기 때문에 존재합니다. 엔드포인트는 이미 공개 플로우용으로 설계되었지만, 공격자가 사용자 정의 컴포넌트 코드가 포함된 노드 정의를 제출하면 시스템이 해당 코드를 플로우 빌드 경로에 전달하여 궁극적으로 서버에서 코드 실행으로 이어집니다.

이 프로젝트의 PoC는 출력에 증명 객체를 반환하는 사용자 정의 컴포넌트를 사용하여 공격자가 제어하는 코드가 실제로 실행됨을 입증합니다.


PoC 설계

이 프로젝트의 PoC는 최소 피해를 목표로 설계되었으며 API를 통한 명확한 관찰 가능한 증명에 중점을 둡니다. 작업 흐름은 다음과 같습니다:

  1. Langflow가 준비될 때까지 대기
  2. 자동 로그인 엔드포인트를 호출하여 토큰 획득
  3. PUBLIC 플로우 생성
  4. 공개 빌드 엔드포인트에 사용자 정의 컴포넌트 코드 전송
  5. job_id 수신
  6. 빌드 이벤트 API 폴링
  7. 이벤트 페이로드에서 증명 객체 파싱

이 PoC는 다음을 포함하지 않습니다:

  • 셸 열기
  • 역방향 연결 설정
  • 지속성 확보
  • 비밀 덤프
  • 웹셸 사용

실습 환경 실행

1) 취약한 서비스 시작

root@kitploit:~
docker compose up -d --build

2) 버전 엔드포인트 확인

root@kitploit:~
curl -i http://localhost:7861/api/v1/version

3) PoC 실행

root@kitploit:~
python3 poc/poc.py --base-url http://localhost:7861 --artifact-dir ./artifacts/vuln

예상 출력

PoC가 성공하면 출력은 다음과 같습니다:

root@kitploit:~
[+] 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는 다음을 입증합니다:

  • 공격자가 공개 빌드 플로우를 호출할 수 있음
  • 공격자가 제어하는 코드가 Langflow 서버에서 실행됨
  • 실행 컨텍스트가 API를 통해 반환됨
  • 실제 영향은 인증 없는 코드 실행임

이 PoC는 지속성이나 고급 사후 침투를 입증하기 위한 것이 아니며 취약점 검증에 필요한 최소 수준으로 영향을 유지합니다.


영향

이 실습 환경을 기반으로 입증된 영향은 다음과 같습니다:

  • 인증 없는 공격자가 Langflow 서버에서 Python 코드를 실행할 수 있음
  • 공격자가 프로세스의 런타임 컨텍스트에 접근할 수 있음
  • 공격자가 일회성 시스템 명령을 실행할 수 있음
  • 공격자가 작업 디렉터리와 런타임 메타데이터에 접근할 수 있음

패치된 서비스가 없는 이유

이 저장소는 설계상 패치된 서비스를 포함하지 않습니다.

범위는 실제 업스트림 아티팩트에서 취약한 동작을 재현하는 것으로 제한됩니다. 패치된 측면은 공급업체 또는 업스트림 프로젝트에서 명확하게 검증 가능한 공식 수정 아티팩트가 제공되는 경우에만 추가됩니다.

따라서 이 저장소는 의도적으로 다음을 피합니다:

  • 수정된 릴리스를 시뮬레이션하기 위한 로컬 이미지 빌드,
  • 패치 동작을 모방하기 위한 이미지 소스 수정, 또는
  • 진정한 업스트림 패치 아티팩트 없이 취약점-대-패치 비교의 모양을 만드는 헬퍼 스크립트 추가.

이를 통해 실습 환경의 범위를 좁게 유지하고 기술적으로 정직하게 유지합니다. 인위적인 병렬 구성을 제시하는 대신 저장소는 세 가지에 중점을 둡니다:

  • 재현 가능한 취약한 동작,
  • 투명한 개념 증명, 그리고
  • 실제 업스트림 아티팩트와 일치하는 문서.

실질적으로 이 저장소는 다음에 가장 적합합니다:

  • 취약점 재현,
  • 기술 분석 및 보고서 작성 지원, 그리고
  • 재현성과 신뢰성이 인위적인 패치 환경보다 더 중요한 포트폴리오 용도.

정리

root@kitploit:~
docker compose down -v

안전 참고 사항

이 실습 환경은 localhost에서만 테스트하도록 설계되었습니다.

사용 요구 사항:

  • 자신의 환경에서만 사용하십시오
  • PoC를 웹셸이나 지속성 메커니즘으로 수정하지 마십시오
  • 저장소에 실제 토큰이나 실제 비밀을 포함하지 마십시오
  • 향후 패치된 측면이 추가되는 경우 공식 수정 아티팩트만 사용해야 합니다
도구 다운로드