🇰🇷 한글 설명
OWASP BLT 2.1.1 이전 버전의 GitHub Actions 워크플로우에서 Pull Request를 통해 공격자가 제어하는 파일을 신뢰할 수 있는 실행 환경에 복사하고, Python 모듈 임포트 시점에 악의적인 코드를 실행시킬 수 있는 RCE 취약점입니다. 이를 통해 GITHUB_TOKEN과 저장소 암호에 접근하여 공급망 공격을 수행할 수 있습니다.
💡 쉬운 설명
OWASP BLT의 자동화 시스템에서 외부인이 제출한 코드를 검증할 때 악의적인 코드가 자동으로 실행되는 보안 결함입니다. 이를 통해 민감한 정보와 저장소 접근 권한을 탈취할 수 있습니다.
🇺🇸 원문 (English)
OWASP BLT is a QA testing and vulnerability disclosure platform that encompasses websites, apps, git repositories, and more. Versions prior to 2.1.1 contain an RCE vulnerability in the .github/workflows/regenerate-migrations.yml workflow. The workflow uses the pull_request_target trigger to run with full GITHUB_TOKEN write permissions, copies attacker-controlled files from untrusted pull requests into the trusted runner workspace via git show, and then executes python manage.py makemigrations, which imports Django model modules including attacker-controlled website/models.py at runtime. Any module-level Python code in the attacker's models.py is executed during import, enabling arbitrary code execution in the privileged CI environment with access to GITHUB_TOKEN and repository secrets. The attack is triggerable by any external contributor who can open a pull request, provided a maintainer applies the regenerate-migrations label, potentially leading to secret exfiltration, repository compromise, and supply chain attacks. A patch for this issue is expected to be released in version 2.1.1.
📍 영향받는 시스템
OWASP BLT 버전 2.1.0 이하
⚔️ 공격 벡터
외부 기여자가 Pull Request를 제출하고 유지보수자가 regenerate-migrations 라벨을 적용하면, 공격자 제어 파일의 Python 코드가 CI 환경에서 자동 실행되어 GITHUB_TOKEN 탈취
🛡️ 대응 방법
OWASP BLT를 버전 2.1.1 이상으로 업그레이드
🔧 검증 코드
출력되는 Version 값이 2.1.1 이상이면 안전, 2.1.0 이하면 즉시 업그레이드 필요
pip show owasp-blt 2>/dev/null | grep -i version