chore(deps): lock file maintenance by renovate[bot] · Pull Request #1803 · tj-actions/changed-files (original) (raw)
renovate Bot deleted the renovate/lock-file-maintenance branch
spiceratops referenced this pull request in spiceratops/k8s-gitops
kodiakhq Bot referenced this pull request in cloudquery/cloudquery
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| tj-actions/changed-files | action | major | v40 -> v41 |
[!WARNING] Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
GitHub Vulnerability Alerts
CVE-2023-51664
Summary
The tj-actions/changed-files workflow allows for command injection in changed filenames, allowing an attacker to execute arbitrary code and potentially leak secrets.
Details
The changed-files action returns a list of files changed in a commit or pull request which provides an escape_json input 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 a run block. By running custom commands an attacker may be able to steal **secrets** such as GITHUB_TOKEN if triggered on other events than pull_request. For example on push.
Proof of Concept
- Submit a pull request to a repository with a new file injecting a command. For example
$(whoami).txtwhich is a valid filename. - Upon approval of the workflow (triggered by the pull request), the action will get executed and the malicious pull request filename will flow into the
List all changed filesstep below.
- name: List all changed files
run: |
for file in $; do
echo "$file was changed"
doneExample output:
##[group]Run for file in $(whoami).txt; do
for file in $(whoami).txt; do
echo "$file was changed"
done
shell: /usr/bin/bash -e {0}
##[endgroup]
runner.txt was changedImpact
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.
- name: List all changed files
env:
ALL_CHANGED_FILES: $
run: |
for file in "$ALL_CHANGED_FILES"; do
echo "$file was changed"
doneResources
- Keeping your GitHub Actions and workflows secure Part 2: Untrusted input
- Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests
Release Notes
tj-actions/changed-files (tj-actions/changed-files)
v41
Changes in v41.0.1
What's Changed
- Upgraded to v41 by @​tj-actions-bot in https://github.com/tj-actions/changed-files/pull/1811
- chore(deps): update dependency eslint-plugin-prettier to v5.1.2 by @​renovate in https://github.com/tj-actions/changed-files/pull/1813
- fix: update characters escaped by safe output by @​jackton1 in https://github.com/tj-actions/changed-files/pull/1815
Full Changelog: tj-actions/changed-files@v41...v41.0.1
Changes in v41.0.0
🔥 🔥 BREAKING CHANGE 🔥 🔥
A new safe_output input is now available to prevent outputting unsafe filename characters (Enabled by default). This would escape characters in the filename that could be used for command injection.
[!NOTE] This can be disabled by setting the
safe_outputto false this comes with a recommendation to store all outputs generated in an environment variable first before using them.
Example
...
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v40
with:
safe_output: false # set to false because we are using an environment variable to store the output and avoid command injection.
- name: List all added files
env:
ADDED_FILES: ${{ steps.changed-files.outputs.added_files }}
run: |
for file in "$ADDED_FILES"; do
echo "$file was added"
done
...What's Changed
- chore(deps): update typescript-eslint monorepo to v6.15.0 by @​renovate in https://github.com/tj-actions/changed-files/pull/1801
- Upgraded to v40.2.3 by @​tj-actions-bot in https://github.com/tj-actions/changed-files/pull/1800
- chore(deps): update dependency eslint-plugin-prettier to v5.1.0 by @​renovate in https://github.com/tj-actions/changed-files/pull/1802
- chore(deps): lock file maintenance by @​renovate in https://github.com/tj-actions/changed-files/pull/1803
- chore(deps): update dependency eslint-plugin-prettier to v5.1.1 by @​renovate in https://github.com/tj-actions/changed-files/pull/1804
- fix: update safe output regex and the docs by @​tj-actions-bot in https://github.com/tj-actions/changed-files/pull/1805
- Revert "chore(deps): update actions/download-artifact action to v4" by @​jackton1 in https://github.com/tj-actions/changed-files/pull/1806
- Update README.md by @​jackton1 in https://github.com/tj-actions/changed-files/pull/1808
- chore(deps): lock file maintenance by @​renovate in https://github.com/tj-actions/changed-files/pull/1809
- Updated README.md by @​tj-actions-bot in https://github.com/tj-actions/changed-files/pull/1810
Full Changelog: tj-actions/changed-files@v40...v41.0.0
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), 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.
- If you want to rebase/retry this PR, check this box
This PR has been generated by Renovate Bot.
gfellerph referenced this pull request in swisspost/design-system
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| tj-actions/changed-files | |||
| action | major | v40 -> v41 |
GitHub Vulnerability Alerts
Summary
The tj-actions/changed-files workflow allows for command injection in
changed filenames, allowing an attacker to execute arbitrary code and
potentially leak secrets.
Details
The changed-files
action returns a list of files changed in a commit or pull request which
provides an escape_json input 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 a run block. By running custom
commands an attacker may be able to steal **secrets** such as
GITHUB_TOKEN if triggered on other events than pull_request. For
example on push.
Proof of Concept
- Submit a pull request to a repository with a new file injecting a
command. For example
$(whoami).txtwhich is a valid filename. - Upon approval of the workflow (triggered by the pull request), the
action will get executed and the malicious pull request filename will
flow into the
List all changed filesstep below.
- name: List all changed files
run: |
for file in $; do
echo "$file was changed"
doneExample output:
##[group]Run for file in $(whoami).txt; do
for file in $(whoami).txt; do
echo "$file was changed"
done
shell: /usr/bin/bash -e {0}
##[endgroup]
runner.txt was changedImpact
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.
- name: List all changed files
env:
ALL_CHANGED_FILES: $
run: |
for file in "$ALL_CHANGED_FILES"; do
echo "$file was changed"
doneResources
- Keeping your GitHub Actions and workflows secure Part 2: Untrusted input
- Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests
Release Notes
tj-actions/changed-files (tj-actions/changed-files)
Changes in v41.0.1
What's Changed
- Upgraded to v41 by @tj-actions-bot in https://github.com/tj-actions/changed-files/pull/1811
- chore(deps): update dependency eslint-plugin-prettier to v5.1.2 by @renovate in https://github.com/tj-actions/changed-files/pull/1813
- fix: update characters escaped by safe output by @jackton1 in https://github.com/tj-actions/changed-files/pull/1815
Full Changelog: tj-actions/changed-files@v41...v41.0.1
Changes in v41.0.0
🔥 🔥 BREAKING CHANGE 🔥 🔥
A new safe_output input is now available to prevent outputting unsafe
filename characters (Enabled by default). This would escape characters
in the filename that could be used for command injection.
[!NOTE] This can be disabled by setting the
safe_outputto false this comes with a recommendation to store all outputs generated in an environment variable first before using them.
Example
...
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v40
with:
safe_output: false # set to false because we are using an environment variable to store the output and avoid command injection.
- name: List all added files
env:
ADDED_FILES: ${{ steps.changed-files.outputs.added_files }}
run: |
for file in "$ADDED_FILES"; do
echo "$file was added"
done
...What's Changed
- chore(deps): update typescript-eslint monorepo to v6.15.0 by @renovate in https://github.com/tj-actions/changed-files/pull/1801
- Upgraded to v40.2.3 by @tj-actions-bot in https://github.com/tj-actions/changed-files/pull/1800
- chore(deps): update dependency eslint-plugin-prettier to v5.1.0 by @renovate in https://github.com/tj-actions/changed-files/pull/1802
- chore(deps): lock file maintenance by @renovate in https://github.com/tj-actions/changed-files/pull/1803
- chore(deps): update dependency eslint-plugin-prettier to v5.1.1 by @renovate in https://github.com/tj-actions/changed-files/pull/1804
- fix: update safe output regex and the docs by @tj-actions-bot in https://github.com/tj-actions/changed-files/pull/1805
- Revert "chore(deps): update actions/download-artifact action to v4" by @jackton1 in https://github.com/tj-actions/changed-files/pull/1806
- Update README.md by @jackton1 in https://github.com/tj-actions/changed-files/pull/1808
- chore(deps): lock file maintenance by @renovate in https://github.com/tj-actions/changed-files/pull/1809
- Updated README.md by @tj-actions-bot in https://github.com/tj-actions/changed-files/pull/1810
Full Changelog: tj-actions/changed-files@v40...v41.0.0
Configuration
📅 Schedule: Branch creation - "" in timezone Europe/Zurich, 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.
- If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
vbraun pushed a commit to vbraun/sage that referenced this pull request
vbraun pushed a commit to vbraun/sage that referenced this pull request
vbraun pushed a commit to vbraun/sage that referenced this pull request
vbraun pushed a commit to vbraun/sage that referenced this pull request
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
[ Show hidden characters]({{ revealButtonHref }})