🔍 CVE-2026-12171

7.8
CVSS Score
HIGH
2026-10-05
2026-10-06 16:08
✅ 완료

🇰🇷 한글 설명

auto-changelog 2.6.1 미만 버전은 대상 저장소 내부의 설정 파일을 신뢰할 수 없는 소스로 처리하지 않아 보안 취약점이 발생합니다. 공격자가 제어하는 설정 파일의 handlebarsSetup 또는 plugins 옵션을 통해 임의의 코드를 실행하거나, git 인자 주입 및 임의 파일 쓰기 공격이 가능합니다.

💡 쉬운 설명

신뢰할 수 없는 프로젝트의 파일을 실행할 때, 그 안에 숨겨진 악성 명령어가 자동으로 실행될 수 있는 보안 결함입니다. 이를 통해 해커가 사용자의 컴퓨터나 서버의 중요한 정보를 훔쳐갈 수 있습니다.

🇺🇸 원문 (English)

auto-changelog before 2.6.1 merges configuration from inside the target repository (the .auto-changelog file and the auto-changelog key in package.json) into its options, and honors security-sensitive options from that untrusted source. The handlebarsSetup option is passed to require(), so running auto-changelog over attacker-controlled repository content (for example, in a CI workflow that checks out an untrusted pull request head, or locally on a forked or third-party repository) executes attacker-chosen code with the privileges of the invoking user or CI job, including access to workflow secrets, without the repository dependencies ever being installed. The plugins option similarly loads attacker-controlled modules from the repository. Under the same conditions, appendGitLog/appendGitTag allow git argument injection (e.g. --output= to write arbitrary files), output allows writing attacker-influenced content to arbitrary paths, and template causes an outbound request to an attacker-chosen URL. Version 2.6.1 treats in-repository configuration as untrusted and refuses to run when it sets these options, unless the new --unsafe-config flag is passed.

📍 영향받는 시스템

auto-changelog version < 2.6.1

⚔️ 공격 벡터

신뢰할 수 없는 저장소(Pull Request 등)를 CI/CD 환경에서 실행할 때 악성 설정 파일을 통한 코드 실행 및 파일 조작

🛡️ 대응 방법

auto-changelog를 2.6.1 이상 버전으로 업데이트하거나, 신뢰할 수 없는 저장소 실행 시 --unsafe-config 플래그 사용을 지양함

🔧 검증 코드

출력된 버전이 2.6.1 미만이면 취약한 상태이며, 2.6.1 이상이면 안전합니다.

Shell / Script
npm list auto-changelog 2>/dev/null | grep -E 'auto-changelog@'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Git