🇰🇷 한글 설명
GitHub Actions Runner에서 환경 변수를 Docker 명령어로 인코딩하는 로직에 결함이 발견되었습니다. 공격자가 신뢰할 수 없는 사용자 입력을 환경 변수에 포함할 경우, 이를 탈출하여 Docker 명령어를 직접 수정할 수 있습니다. 이는 컨테이너 액션, 작업 컨테이너 또는 서비스 컨테이너를 사용하는 작업에서 발생할 수 있습니다.
💡 쉬운 설명
GitHub에서 자동화 작업을 실행할 때 사용하는 프로그램에 보안 구멍이 발견되었습니다. 나쁜 의도를 가진 사용자가 입력값을 조작하면, 시스템이 실행하려는 명령어를 마음대로 바꿔서 실행할 수 있습니다.
🇺🇸 원문 (English)
GitHub Actions Runner is the application that runs a job from a GitHub Actions workflow. The actions runner invokes the docker cli directly in order to run job containers, service containers, or container actions. A bug in the logic for how the environment is encoded into these docker commands was discovered in versions prior to 2.296.2, 2.293.1, 2.289.4, 2.285.2, and 2.283.4 that allows an input to escape the environment variable and modify that docker command invocation directly. Jobs that use container actions, job containers, or service containers alongside untrusted user inputs in environment variables may be vulnerable. The Actions Runner has been patched, both on `github.com` and hotfixes for GHES and GHAE customers in versions 2.296.2, 2.293.1, 2.289.4, 2.285.2, and 2.283.4. GHES and GHAE customers may want to patch their instance in order to have their runners automatically upgrade to these new runner versions. As a workaround, users may consider removing any container actions, job containers, or service containers from their jobs until they are able to upgrade their runner versions.
📍 영향받는 시스템
GitHub Actions Runner 버전 2.296.2, 2.293.1, 2.289.4, 2.285.2, 2.283.4 미만 버전
⚔️ 공격 벡터
신뢰할 수 없는 사용자 입력이 포함된 환경 변수를 통해 Docker 명령어를 탈출(Escape)하여 명령어를 직접 조작
🛡️ 대응 방법
GitHub Actions Runner를 패치된 버전(2.296.2, 2.293.1, 2.289.4, 2.285.2, 2.283.4 중 하나)으로 업데이트하거나, 업데이트 전까지 컨테이너 관련 기능을 제거
🔧 검증 코드
출력된 최신 태그 버전이 취약점이 해결된 버전(2.296.2 이상 등)인지 확인합니다.
curl -s https://api.github.com/repos/actions/runner/releases/latest | grep 'tag_name'