CVE-2026-12171: auto-changelog: code execution via untrusted in-repository configuration (handlebarsSetup/plugins), plus argument injection, path traversal, and SSRF

Published Oct 5, 2026
·
Updated

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.

Affected Software

1 affected component
npm/auto-changelog<2.6.1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade auto-changelog to a version that resolves this vulnerability.

    Fixed in 2.6.1

Event History

Oct 5, 2026
CVE Published
via MITRE·04:25 PM
Data Sourced
via MITRE·04:25 PM
RemedyDescriptionSeverityWeakness
Data Sourced
via NVD·05:17 PM
DescriptionSeverityWeakness
Aug 28, 58731
Event
via NVD·06:59 PM

Frequently Asked Questions

1

Which environments are realistically exposed?

Any CI job or local workflow that runs auto-changelog against attacker-controlled repository content is exposed, including workflows that check out an untrusted pull-request head and users running it in a forked or third-party repository. Execution occurs with the privileges of the invoking user or CI job, which can include workflow-secret access.

2

What does an attacker need to exploit this?

The attacker needs control over in-repository auto-changelog configuration, either through .auto-changelog or the auto-changelog key in package.json, and must cause auto-changelog to run on that repository content. Repository dependencies do not need to be installed for handlebarsSetup-based code execution.

3

How can I tell whether a repository is using a dangerous configuration?

Inspect .auto-changelog and package.json for the auto-changelog key, especially handlebarsSetup, plugins, appendGitLog, appendGitTag, output, and template. Before 2.6.1, these in-repository settings can respectively enable module loading, git argument injection, arbitrary-path writes, or outbound requests when auto-changelog runs.

4

What should be done if patching is not immediately possible?

Do not run the affected tool against untrusted pull-request, fork, or third-party repository content. Avoid allowing attacker-controlled in-repository configuration to supply the listed security-sensitive options.

5

What changes in version 2.6.1, and is there a way to bypass it?

Version 2.6.1 treats in-repository configuration as untrusted and refuses to run when it sets the affected options. The protection can be overridden with --unsafe-config, so that flag should not be used for untrusted repository content.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203