피드로 돌아가기
Dev.toSecurity
원문 읽기
Semicolon 주입을 통한 GitHub 서버 RCE 및 CVSS 8.7 취약점 분석
GitHub Let a Git Push Hijack Its Servers (RCE CVE-2026-3854)
AI 요약
Context
GitHub의 git proxy인 babeld가 사용자 제공 push option을 내부 X-Stat 헤더에 포함하는 과정에서 필드 구분자인 semicolon에 대한 검증 누락 발생. 이로 인해 downstream 서비스의 정책 집행 로직을 우회하고 임의의 값을 주입할 수 있는 구조적 결함 존재.
Technical Solution
- Semicolon 주입을 통한 X-Stat 헤더 내 필드 구분자 조작 및 Last-write-wins 메커니즘 악용
- non-production rails_env 설정을 통한 기존 Sandbox 제한 우회
- custom_hooks_dir 경로 재설정으로 내부 Hook 조회 경로를 공격자 제어 영역으로 리다이렉션
- Path Traversal 기법을 적용한 repo_pre_receive_hooks 값 조작으로 서버 내 임의 바이너리 실행 유도
- Git 서비스 유저 권한을 획득하여 Sandbox 외부에서 코드 실행 및 Cross-tenant 저장소 접근 권한 확보
- GHES 최신 버전 패치를 통한 입력값 Sanitization 강화 및 감사 로그 내 semicolon 패턴 탐지 로직 도입
실천 포인트
1. 외부 입력값이 내부 서비스 간 통신 헤더로 전달될 때 필드 구분자(Separator)에 대한 엄격한 Sanitization 적용 여부 검토
2. 서비스 유저 권한이 여러 테넌트에 걸쳐 과도하게 부여되었는지 최소 권한 원칙(Least Privilege) 기반 재설계
3. 내부 Hook이나 설정 파일 경로를 동적으로 지정하는 로직에서 Path Traversal 방지를 위한 화이트리스트 기반 검증 도입
4. 인프라의 결정론적(Deterministic) 동작을 맹신하지 않고, 중요 파이프라인에 대한 지속적인 검증(Verify) 프로세스 구축