피드로 돌아가기
The RegisterSecurity
원문 읽기
AI 기반 Reverse Engineering으로 48시간 만에 발견한 GitHub 내부 프로토콜 취약점
GitHub: Woah, a genuinely helpful AI-assisted bug report that isn't total slop. Here, Wiz, take this wad of cash
AI 요약
Context
GitHub의 multi-service architecture 내에서 push request 처리 시 내부 서비스 간 신뢰 모델에 기반한 데이터 전달 구조 설계. 사용자 입력값이 포함된 push options가 내부 X-Stat HTTP 헤더로 변환되어 전달되는 과정에서 검증 단계의 부재로 인한 보안 허점 발생.
Technical Solution
- AI-augmented tooling 및 IDA MCP를 통한 GitHub 내부 바이너리의 고속 Reverse Engineering 수행
- 내부 서비스 간 통신 프로토콜 재구성 및 사용자 입력이 서버 동작에 영향을 미치는 데이터 파이프라인 분석
- 내부 메타데이터 구분자인 null byte를 push option에 삽입하여 내부 신뢰 값으로 오인하게 만드는 Injection 공격 벡터 식별
- 사용자 입력값의 무조건적인 신뢰를 통한 내부 메타데이터 변조 가능성 파악
- GitHub Enterprise Server(GHES)에서 검증 후 X-Stat 필드 추가 주입을 통해 GitHub.com까지 확장 적용 가능한 Exploit Chain 구축
Impact
- 분석 기간 단축: 기존 수개월 소요 예상 작업을 AI 도구 활용으로 48시간 이내 완료
- 취약점 심각도: CVSS 8.8 점수의 High-severity flaw 식별 및 권한 없는 Private Repository read/write 접근 가능성 확인
- 대응 속도: 제보 후 6시간 이내 패치 및 하드닝 조치 완료
Key Takeaway
서비스 간 통신 시 내부 헤더나 메타데이터를 다룰 때, 외부 입력값이 포함된 경우 경계 지점(Boundary)에서 엄격한 Sanitization과 유효성 검증이 필수적임. 특히 구분자(Delimiter)를 이용한 데이터 변조 가능성을 차단하는 설계가 중요함.
실천 포인트
- 내부 서비스 간 전달되는 HTTP 헤더나 메타데이터에 사용자 입력값이 포함되는지 전수 조사 - 데이터 구분자로 사용되는 특수 문자(null byte 등)의 입력 필터링 로직 적용 여부 검토 - Zero Trust 원칙에 따라 내부 서비스 간 통신에서도 입력 데이터의 무조건적인 신뢰를 배제하고 재검증 프로세스 구축