Update tj-actions/changed-files action to v46 [SECURITY]#13
Open
renovate[bot] wants to merge 1 commit intomainfrom
Open
Update tj-actions/changed-files action to v46 [SECURITY]#13renovate[bot] wants to merge 1 commit intomainfrom
renovate[bot] wants to merge 1 commit intomainfrom
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
v34→v46GitHub Vulnerability Alerts
CVE-2023-51664
Summary
The
tj-actions/changed-filesworkflow allows for command injection in changed filenames, allowing an attacker to execute arbitrary code and potentially leak secrets.Details
The
changed-filesaction returns a list of files changed in a commit or pull request which provides anescape_jsoninput enabled by default, only escapes"for JSON values.This could potentially allow filenames that contain special characters such as
;and ` (backtick) which can be used by an attacker to take over the GitHub Runner if the output value is used in a raw fashion (thus being directly replaced before execution) inside arunblock. By running custom commands an attacker may be able to steal secrets such asGITHUB_TOKENif triggered on other events thanpull_request. For example onpush.Proof of Concept
$(whoami).txtwhich is a valid filename.List all changed filesstep below.Example output:
Impact
This issue may lead to arbitrary command execution in the GitHub Runner.
Resolution
A new
safe_outputinput would be enabled by default and return filename paths escaping special characters like ;, ` (backtick), $, (), etc for bash environments.A safe recommendation of using environment variables to store unsafe outputs.
Resources
CVE-2025-30066
Summary
A supply chain attack compromised the tj-actions/changed-files GitHub Action, impacting over 23,000 repositories. Attackers retroactively modified multiple version tags to reference a malicious commit, exposing CI/CD secrets in workflow logs. The vulnerability existed between March 14 and March 15, 2025, and has since been mitigated. This poses a significant risk of unauthorized access to sensitive information.
This has been patched in v46.0.1.
Details
The attack involved modifying the tj-actions/changed-files GitHub Action to execute a malicious Python script. This script extracted secrets from the Runner Worker process memory and printed them in GitHub Actions logs, making them publicly accessible in repositories with public workflow logs.
Key Indicators of Compromise (IoC):
v1.0.0: 0e58ed8671d6b60d0890c21b07f8835ace038e67v35.7.7-sec: 0e58ed8671d6b60d0890c21b07f8835ace038e67v44.5.1: 0e58ed8671d6b60d0890c21b07f8835ace038e67Malicious Code Execution:
The malicious script downloaded and executed a Python script that scanned memory for secrets, base64-encoded them, and logged them in the build logs:
This script targeted the Runner Worker process, extracting and exfiltrating its memory contents.
Proof of Concept (PoC)
Steps to Reproduce:
Detection:
Analyze network traffic using Harden-Runner, which detects unauthorized outbound requests to:
gist.githubusercontent.comLive reproduction logs:
🔗 Harden-Runner Insights
This attack was detected by StepSecurity when anomaly detection flagged an unauthorized outbound network call to
gist.githubusercontent.com.Duration of Vulnerability
The vulnerability was active between March 14 and March 15, 2025.
Action Required
Review your workflows executed between March 14 and March 15:
Update workflows referencing the compromised commit:
Tagged versions:
v35,v44.5.1), no action is required as these tags have been updated and are now safe to use.Rotate potentially exposed secrets:
Impact
Release Notes
tj-actions/changed-files (tj-actions/changed-files)
v46Compare Source
🚀 Features
➖ Remove
🔄 Update
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> (3dbc1e1) - (github-actions[bot])
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> (b1ccff8) - (github-actions[bot])
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> (050a3d3) - (github-actions[bot])
📚 Documentation
🧪 Testing
⚙️ Miscellaneous Tasks
⬆️ Upgrades
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> (db731a1) - (github-actions[bot])
v45Compare Source
🐛 Bug Fixes
⚙️ Miscellaneous Tasks
Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.