피드로 돌아가기
The RegisterSecurity
원문 읽기
Gogs Merge flow 내 Argument Injection을 통한 CVSS 9.4 RCE 취약점 발생
No fix yet for critical RCE bug in open-source Git service Gogs - exploit module is out
AI 요약
Context
오픈소스 Git 서비스 Gogs의 Pull Request Merge 과정에서 입력값 검증 미흡으로 인한 보안 결함 발견. 특히 Rebase before merging 설정 활성화 시 사용자 입력값이 셸 명령어로 직접 전달되는 구조적 한계 존재.
Technical Solution
- internal/database/pull.go 내 Merge() 함수에서 발생한 Argument Injection flaw 식별
- Base branch name을 git rebase 명령어로 전달할 때 옵션 종료 구분자인 -- separator 누락으로 인한 취약점 노출
- 입력값에 대한 Sanitization 처리 부재를 이용해 --exec 플래그를 주입하는 공격 경로 확인
- 악성 브랜치 생성 및 Rebase 요청을 통해 서버 권한으로 임의 페이로드를 실행하는 RCE 메커니즘 작동
- 임시 완화책으로 app.ini 내 DISABLE_REGISTRATION 및 MAX_CREATION_LIMIT 설정을 통한 외부 유입 차단 적용
- Repository 설정 내 Rebase before merging 옵션 비활성화를 통한 공격 벡터 제거
실천 포인트
1. 외부 입력값이 OS 명령어 인자로 전달될 때 반드시 -- separator를 사용하여 옵션 주입을 방지했는지 검토
2. 모든 사용자 입력값에 대해 엄격한 Allow-list 기반의 Sanitization 로직 적용 여부 확인
3. 권한이 낮은 사용자가 설정 변경을 통해 고권한 명령을 실행할 수 있는 Privilege Escalation 경로 분석
4. 오픈소스 의존성 라이브러리의 보안 업데이트 상태 및 Maintainer의 대응 속도 모니터링 체계 구축