Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-3854-PoC — X-Stat Push Option Injection을 통한 GitHub RCE | Kitploit
도구/GitHubGitHub/lysophavin18/cve-2026-3854-poc
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & Education
GitHublysophavin18/cve-2026-3854-poc

CVE-2026-3854-PoC

X-Stat Push Option Injection을 통한 GitHub RCE

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-3854 PoC — X-Stat 푸시 옵션 주입을 통한 GitHub RCE

교육 및 인가된 보안 연구 목적으로만 사용하십시오.
명시적인 서면 허가 없이 어떤 시스템에도 사용하지 마십시오.


개요

CVE-2026-3854는 GitHub Enterprise Server(및 GitHub.com)의 git push 파이프라인에서 발생하는 원격 코드 실행(RCE) 취약점입니다.

클라이언트가 푸시 옵션(git push -o)을 제공하면 GitHub의 내부 Ruby 코드는 각 옵션 값을 세미콜론으로 연결하여 X-Stat 헤더를 생성합니다. 값이 있는 그대로(정화 처리 없이) 삽입되었기 때문에, 공격자는 푸시 옵션에 세미콜론을 포함시켜 헤더에 임의의 키-값 필드를 주입하고 보안에 중요한 설정을 덮어쓸 수 있었습니다 — 궁극적으로 git 사용자 권한으로 샌드박스가 적용되지 않은 RCE를 달성할 수 있었습니다.

취약점 근본 원인

X-Stat: repo_id=12345;user_id=alice;rails_env=production;...;push_option_0=<USER INPUT>

normal_value;rails_env=staging을 푸시 옵션 값으로 주입하면 다음과 같이 변합니다:

...;push_option_0=normal_value;rails_env=staging

파서는 각 키의 마지막 항목을 사용하므로 rails_env는 이제 (샌드박스가 적용되지 않은) staging이 되어, 이전에 설정된 정당한 production 값을 덮어씁니다.


요구 사항

  • Python 3.10 이상(내장 list[str] / dict[str, str] 타입 힌트 사용)
  • 서드파티 패키지 불필요

사용 방법

python3 exploi-git.py

이 스크립트는 네트워크 연결, 셸 명령, 파일 쓰기 없이 전적으로 메모리에서만 세 가지 데모를 연속으로 실행합니다:

데모설명
1rails_env를 덮어쓰는 기본 세미콜론 주입
2전체 3단계 개념적 RCE 공격 체인
3패치된 동작 — 세미콜론이 퍼센트 인코딩되어 주입이 무력화됨

패치

GitHub는 푸시 옵션 값을 X-Stat 헤더에 삽입하기 전에 세미콜론을 퍼센트 인코딩하여 이 취약점을 수정했습니다:

normal_value;rails_env=staging  →  normal_value%3Brails_env=staging

이로써 세미콜론이 값의 리터럴 일부가 되어 주입이 차단됩니다.


참고 자료

  • Wiz Research 블로그 게시물
  • GitHub 보안 블로그
  • NVD — CVE-2026-3854

면책 조항

이 저장소는 교육 목적과 인가된 보안 연구 지원을 위해서만 제공됩니다. 저자는 오용에 대해 어떠한 책임도 지지 않습니다. 소유하지 않은 시스템을 테스트하기 전에 항상 명시적인 서면 허가를 받으십시오.

도구 다운로드