🇰🇷 한글 설명
Dependabot-Core의 특정 버전에서 소스 브랜치 이름에 악성 Bash 코드가 포함될 경우 원격 코드 실행(RCE)이 가능한 취약점이 발견되었습니다. 공격자가 조작된 브랜치 이름을 사용하면 Dependabot이 저장소를 클론하는 과정에서 임의의 명령어를 실행할 수 있습니다. 이 문제는 버전 0.125.1에서 수정되었습니다.
💡 쉬운 설명
프로그램이 브랜치 이름을 읽을 때 그 안에 숨겨진 나쁜 명령어를 실행해버리는 보안 구멍이 발견되었습니다. 공격자가 이름에 특수 코드를 섞어 넣으면 해커가 내 컴퓨터에서 마음대로 명령을 내릴 수 있습니다.
🇺🇸 원문 (English)
Dependabot is a set of packages for automated dependency management for Ruby, JavaScript, Python, PHP, Elixir, Rust, Java, .NET, Elm and Go. In Dependabot-Core from version 0.119.0.beta1 before version 0.125.1, there is a remote code execution vulnerability in dependabot-common and dependabot-go_modules when a source branch name contains malicious injectable bash code. For example, if Dependabot is configured to use the following source branch name: "/$({curl,127.0.0.1})", Dependabot will make a HTTP request to the following URL: 127.0.0.1 when cloning the source repository. The fix was applied to version 0.125.1. As a workaround, one can escape the branch name prior to passing it to the Dependabot::Source class.
📍 영향받는 시스템
Dependabot-Core 0.119.0.beta1 미만 0.125.1 미만 버전 (dependabot-common 및 dependabot-go_modules 포함)
⚔️ 공격 벡터
악성 Bash 코드가 삽입된 소스 브랜치 이름을 사용하여 저장소 클론 유도
🛡️ 대응 방법
Dependabot-Core를 0.125.1 이상의 버전으로 업데이트하거나 브랜치 이름을 이스케이프 처리함
🔧 검증 코드
출력된 버전 번호가 0.125.1보다 낮은지 확인하여 취약 여부를 판단합니다.
gem list dependabot-core 2>/dev/null | grep -E 'dependabot-core' | awk '{print $2}'