🇰🇷 한글 설명
NetBox Device Type Library에서 테스트 디렉토리의 sys.path 우선순위 문제로 인해 발생하는 임의 코드 실행 취약점입니다. 인증되지 않은 기여자가 악성 모듈을 추가하여 GitHub Actions 러너에서 코드를 실행하거나 토큰 및 네트워크 자원에 접근할 수 있습니다.
💡 쉬운 설명
누구나 코드를 제출할 수 있는 프로젝트에서, 테스트 과정 중 악성 코드가 몰래 실행될 수 있는 허점이 발견되었습니다. 이를 통해 해커가 서버의 중요한 비밀번호나 정보를 훔쳐갈 위험이 있습니다.
🇺🇸 원문 (English)
NetBox Device Type Library is a collection of community-sourced device type definitions for import into NetBox. The absence of tests/init.py and the lack of --import-mode=importlib cause pytest prepend import mode to place the tests directory at the front of sys.path during collection. An unauthenticated contributor can add a module such as tests/git.py that shadows GitPython when tests/definitions_test.py executes from git import Git, Repo, or add tests/conftest.py for automatic collection-time execution. Python imports and runs the pull-request module before any test function, allowing arbitrary code execution on the GitHub Actions runner, test-result tampering, and access to tokens or network resources exposed to the workflow. This module-shadowing path is independent of the earlier pickle deserialization flaw and the separately tracked NETBOX_DT_LIBRARY_URL issue. This vulnerability is fixed by commit b0d9a3dadd0a0a9d3c93b0b2777559fd4bad1037.
📍 영향받는 시스템
NetBox Device Type Library (commit b0d9a3d 이전 버전)
⚔️ 공격 벡터
악성 모듈(tests/git.py 또는 tests/conftest.py)을 포함한 Pull Request 제출을 통한 모듈 섀도잉 공격
🛡️ 대응 방법
커밋 b0d9a3dadd0a0a9d3c93b0b2777559fd4bad1037가 적용된 최신 버전으로 업데이트
🔧 검증 코드
명령어 실행 결과로 해당 커밋 해시가 출력되면 취약점이 해결된 상태입니다.
git log -1 --format=%H | grep b0d9a3dadd0a0a9d3c93b0b2777559fd4bad1037