Read the docs
TI-2026-67752 Aliases CVE-2026-12171

Code execution via untrusted repository config in auto-changelog

Priority HIGH 72CWE-22Published · Updated

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

Exploitation Proof of concept CISA SSVC · not in CISA KEV
EPSS 0.00218 12th percentileScored 2026-11-07
Fix Fixed auto-changelog (cookpete): 2.6.1

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

VendorProductAffected versionsFixed inStatusSource
cookpeteauto-changelogbefore 2.6.12.6.1Patch availableCNA
  • auto-changelog Vendorcookpete Affected before 2.6.1 Fixed in 2.6.1 Patch available CNA

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

  1. 2026-10-05 Threatist record created from CVE-2026-12171
  2. 2026-10-05 CISA SSVC decision points changed
  3. 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