
로컬에 의도적으로 취약하게 구성된 실습 환경으로, 가이드 워크숍과 CTF 챌린지를 통해 Dockerized Git 서버를 대상으로 Git push-option RCE, 안전하지 않은 역직렬화(unsafe deserialization), 중복 키 파싱(duplicate-key parsing), 구성 오버라이드(configuration overrides)를 연습할 수 있습니다.
CVE-2026-3854 이면에 공개적으로 문서화된 취약점 개념에서 영감을 받은 로컬 Learning Lab 및 Research Lab입니다. 두 경험 모두 가상의 Git 서버인 ForgeDock에 대해 실제 인증된 Git 푸시를 사용합니다. Research Lab.

[!CAUTION] 이 프로젝트는 의도적으로 취약합니다. 로컬에서만 실행하세요. 해당 포트를 공용 또는 공유 네트워크에 노출하지 마세요. 절대 프로덕션 용도로 사용하지 마세요.
[!NOTE] 이 저장소는 읽기 전용 교육 참고 자료로 게시됩니다. 공개 이슈, 풀 리퀘스트, 기능 요청 또는 지원 요청을 받지 않습니다. 의도하지 않은 보안 경계 실패는 SECURITY.md에 설명된 대로 비공개로 신고하세요.
푸시 옵션, 안전하지 않은 직렬화, 중복 키 파싱, 구성 재정의, 그리고 제한된 실행 체인을 가르치는 가이드 워크숍입니다. 레슨은 짧은 설명과 실행 중인 랩에 대한 안전한 실험을 결합합니다.
세 개의 순차적 Challenge 카드, 선택적 힌트, 백엔드에서 생성된 플래그로 구성된 CTF 스타일 경험입니다. 일반 UI는 소스, 트레이스, 직렬화기 출력, 실행 게이트 출력 또는 가이드 워크스루를 노출하지 않습니다.
git clone https://github.com/royaleybovich/CVE-2026-3854-lab.git
cd CVE-2026-3854-lab
docker compose up -d --build
플래그나 자격 증명 설정은 필요하지 않습니다. 일회성 초기화 프로그램이 최초 시작 시 비공개 Docker 볼륨에 독립적이고 간결한 사람이 읽을 수 있는 증명 값과 무작위 서비스 자격 증명을 생성합니다. make up은 동일한 편의 명령입니다. 선택적 .env는 기본값을 재정의하거나 명시적 값을 Docker 외부에 유지하는 경우에만 필요합니다.
| 서비스 | 로컬 URL |
|---|---|
| Flagship | http://localhost:8080 |
| ForgeDock | http://localhost:3000 |
| Web Terminal | http://localhost:7681 |
일회용 랩 계정은 다음과 같습니다:
Username: devuser
Password: devpass
이 공개 자격 증명은 로컬의 일회용 랩 내부에만 존재합니다. 다른 곳에서 재사용하지 마십시오.
docker compose)릴리스 준비 상태 점검은 Apple Silicon(arm64)에서 검증되었습니다. 다른 운영 체제 및 CPU 아키텍처는 클린 클론 검사가 기록되기 전까지 검증된 것으로 간주되지 않습니다.
make up # build and start; private lab state is generated automatically
make logs # follow service logs
make reset # delete lab repositories/progress and rebuild
make down # stop the lab without deleting Docker volumes
make test # run unit and live integration tests
make reset는 lab 저장소, 런타임 진행 상황, proof 값, 내부 자격 증명을 포함한 Docker 볼륨을 삭제합니다. 다음 시작 시 새로운 비공개 값이 자동으로 생성됩니다.
게시된 포트는 127.0.0.1에 바인딩됩니다. Redis, hook 실행기, 내부 처리 서비스는 게시되지 않습니다. 실행기에는 Docker 소켓이나 호스트 파일 시스템 마운트가 없으며, Linux 기능을 제거하고, 읽기 전용 파일 시스템을 사용하며, 셸 명령이나 호출자가 제어하는 환경을 허용하지 않고, 정확히 lab이 소유한 proof 실행 파일만 호출할 수 있습니다. 이러한 제어는 연습을 제한할 뿐, 공개적으로 노출하는 것이 안전해지지는 않습니다.
Browser / Git client
↓
Flagship portal / ForgeDock
↓
Internal processing network
↓
Constrained executor
시스템 개요, push-option 처리, 위협 모델, 로컬 배포 가이드를 참조하세요.
ForgeDock은 CVE-2026-3854 이면의 공개적으로 문서화된 취약점 개념을 의도적으로 단순화하고 안전하게 제약하여 재구성한 것입니다. GitHub의 독점 구현을 재현하지 않습니다. 필드 이름, 서비스 경계, 실행 동작은 실제 GitHub 및 GitHub Enterprise Server 구현과 다릅니다.
의도적으로 취약한 동작은 이 랩을 위해 다운스트림에 추가된 것이며, 업스트림 Forgejo의 취약점이 아닙니다. ForgeDock은 GitHub가 아니며, 이 프로젝트는 GitHub, Forgejo, Wiz 또는 인용된 연구자들과 제휴하거나 이들의 승인을 받지 않았습니다.
이 크레딧은 출처와 의존성을 설명하며, 협업, 승인 또는 보증을 의미하지 않습니다.
Flagship이 제작한 소프트웨어와 커리큘럼은 파일에 다른 호환 라이선스가 명시되지 않은 한 GPL-3.0-or-later에 따라 라이선스가 부여됩니다. LICENSE, NOTICE.md, Forgejo 출처, TRADEMARKS.md를 참조하세요. 기존 제3자 라이선스 및 고지는 계속 유효합니다.