Code execution via untrusted repository config in auto-changelog
Key facts
- Attack vector
- Local
- Privileges required
- None
- User interaction
- Active
- Attack complexity
- Low
- Attack requirements
- None
- Impact type
- Code execution
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-829.
Summary
The cookpete auto-changelog package before 2.6.1 merges configuration from inside the target repository and honors security-sensitive options from it. The handlebarsSetup option is passed to require(), so running the tool over attacker-controlled repository content executes attacker-chosen code (CWE-94) with the privileges of the invoking user or CI job. Exploitation requires a user to run auto-changelog on the attacker's repository, for example in a CI workflow that checks out an untrusted pull request. The same conditions also enable git argument injection, arbitrary file writes, and outbound requests to attacker-chosen URLs.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
Description from the CNA
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
Remediation
Upgrade auto-changelog to version 2.6.1. Version 2.6.1 treats in-repository configuration as untrusted and refuses to run when it sets these options unless the --unsafe-config flag is passed.
Written with Claude Haiku 5.5 from the sources below · 2026-10-29
- Fix · CNA auto-changelog (cookpete) Fixed in 2.6.1
Timeline
- 2026-10-05 Threatist record created from CVE-2026-12171
- 2026-10-05 CISA SSVC decision points changed
- 2026-10-05 Priority changed: MEDIUM → HIGH
References
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences