Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated README.md #1810

Merged
merged 1 commit into from Dec 23, 2023
Merged

Updated README.md #1810

merged 1 commit into from Dec 23, 2023

Conversation

tj-actions-bot
Copy link
Contributor

Updated README.md

@tj-actions-bot tj-actions-bot added the merge when passing Merge the PR automatically once all status checks have passed label Dec 23, 2023
@jackton1 jackton1 merged commit 1864078 into main Dec 23, 2023
86 of 97 checks passed
@jackton1 jackton1 deleted the chore/update-readme branch December 23, 2023 11:39
spiceratops added a commit to spiceratops/k8s-gitops that referenced this pull request Dec 29, 2023
….1 (#491)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[tj-actions/changed-files](https://togithub.com/tj-actions/changed-files)
| action | major | `v40.2.3` -> `v41.0.1` |

---

> [!WARNING]
> Some dependencies could not be looked up. Check the Dependency
Dashboard for more information.

---

### Release Notes

<details>
<summary>tj-actions/changed-files (tj-actions/changed-files)</summary>

###
[`v41.0.1`](https://togithub.com/tj-actions/changed-files/releases/tag/v41.0.1)

[Compare
Source](https://togithub.com/tj-actions/changed-files/compare/v41.0.0...v41.0.1)

#### What's Changed

- Upgraded to v41 by
[@&#8203;tj-actions-bot](https://togithub.com/tj-actions-bot) in
[tj-actions/changed-files#1811
- chore(deps): update dependency eslint-plugin-prettier to v5.1.2 by
[@&#8203;renovate](https://togithub.com/renovate) in
[tj-actions/changed-files#1813
- fix: update characters escaped by safe output by
[@&#8203;jackton1](https://togithub.com/jackton1) in
[tj-actions/changed-files#1815

**Full Changelog**:
tj-actions/changed-files@v41...v41.0.1

###
[`v41.0.0`](https://togithub.com/tj-actions/changed-files/releases/tag/v41.0.0)

[Compare
Source](https://togithub.com/tj-actions/changed-files/compare/v40.2.3...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_output` to false this comes
with a recommendation to store all outputs generated in an environment
variable first before using them.

##### Example

```yaml
...
    - 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
[@&#8203;renovate](https://togithub.com/renovate) in
[tj-actions/changed-files#1801
- Upgraded to v40.2.3 by
[@&#8203;tj-actions-bot](https://togithub.com/tj-actions-bot) in
[tj-actions/changed-files#1800
- chore(deps): update dependency eslint-plugin-prettier to v5.1.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[tj-actions/changed-files#1802
- chore(deps): lock file maintenance by
[@&#8203;renovate](https://togithub.com/renovate) in
[tj-actions/changed-files#1803
- chore(deps): update dependency eslint-plugin-prettier to v5.1.1 by
[@&#8203;renovate](https://togithub.com/renovate) in
[tj-actions/changed-files#1804
- fix: update safe output regex and the docs by
[@&#8203;tj-actions-bot](https://togithub.com/tj-actions-bot) in
[tj-actions/changed-files#1805
- Revert "chore(deps): update actions/download-artifact action to v4" by
[@&#8203;jackton1](https://togithub.com/jackton1) in
[tj-actions/changed-files#1806
- Update README.md by [@&#8203;jackton1](https://togithub.com/jackton1)
in
[tj-actions/changed-files#1808
- chore(deps): lock file maintenance by
[@&#8203;renovate](https://togithub.com/renovate) in
[tj-actions/changed-files#1809
- Updated README.md by
[@&#8203;tj-actions-bot](https://togithub.com/tj-actions-bot) in
[tj-actions/changed-files#1810

**Full Changelog**:
tj-actions/changed-files@v40...v41.0.0

</details>

---

### 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.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Renovate
Bot](https://togithub.com/renovatebot/renovate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
kodiakhq bot pushed a commit to cloudquery/cloudquery that referenced this pull request Jan 2, 2024
…15997)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [tj-actions/changed-files](https://togithub.com/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](https://togithub.com/tj-actions/changed-files/security/advisories/GHSA-mcph-m25j-8j63)

### 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`](https://togithub.com/tj-actions/changed-files) action returns a list of files changed in a commit or pull request which provides an `escape_json` input [enabled by default](https://togithub.com/tj-actions/changed-files/blob/94549999469dbfa032becf298d95c87a14c34394/action.yml#L136), 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](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners) 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

1. Submit a pull request to a repository with a new file injecting a command. For example `$(whoami).txt` which is a valid filename.
2. 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 files` step below.

```yaml
      - name: List all changed files
        run: |
          for file in $; do
            echo "$file was changed"
          done
```

Example output:

```yaml

##[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 changed
```

### Impact

This issue may lead to arbitrary command execution in the GitHub Runner.

### Resolution
- A new `safe_output` input 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.

```yaml
- name: List all changed files
  env:
    ALL_CHANGED_FILES: $
  run: |
    for file in "$ALL_CHANGED_FILES"; do
      echo "$file was changed"
    done
```

### Resources

* [Keeping your GitHub Actions and workflows secure Part 2: Untrusted input](https://securitylab.github.com/research/github-actions-untrusted-input/)
* [Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/)

---

### Release Notes

<details>
<summary>tj-actions/changed-files (tj-actions/changed-files)</summary>

### [`v41`](https://togithub.com/tj-actions/changed-files/releases/tag/v41)

[Compare Source](https://togithub.com/tj-actions/changed-files/compare/v40...v41)

### Changes in v41.0.1

#### What's Changed

-   Upgraded to v41 by [@&#8203;tj-actions-bot](https://togithub.com/tj-actions-bot) in [tj-actions/changed-files#1811
-   chore(deps): update dependency eslint-plugin-prettier to v5.1.2 by [@&#8203;renovate](https://togithub.com/renovate) in [tj-actions/changed-files#1813
-   fix: update characters escaped by safe output by [@&#8203;jackton1](https://togithub.com/jackton1) in [tj-actions/changed-files#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_output` to false this comes with a recommendation to store all outputs generated in an environment variable first before using them.

##### Example

```yaml
...
    - 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 [@&#8203;renovate](https://togithub.com/renovate) in [tj-actions/changed-files#1801
-   Upgraded to v40.2.3 by [@&#8203;tj-actions-bot](https://togithub.com/tj-actions-bot) in [tj-actions/changed-files#1800
-   chore(deps): update dependency eslint-plugin-prettier to v5.1.0 by [@&#8203;renovate](https://togithub.com/renovate) in [tj-actions/changed-files#1802
-   chore(deps): lock file maintenance by [@&#8203;renovate](https://togithub.com/renovate) in [tj-actions/changed-files#1803
-   chore(deps): update dependency eslint-plugin-prettier to v5.1.1 by [@&#8203;renovate](https://togithub.com/renovate) in [tj-actions/changed-files#1804
-   fix: update safe output regex and the docs by [@&#8203;tj-actions-bot](https://togithub.com/tj-actions-bot) in [tj-actions/changed-files#1805
-   Revert "chore(deps): update actions/download-artifact action to v4" by [@&#8203;jackton1](https://togithub.com/jackton1) in [tj-actions/changed-files#1806
-   Update README.md by [@&#8203;jackton1](https://togithub.com/jackton1) in [tj-actions/changed-files#1808
-   chore(deps): lock file maintenance by [@&#8203;renovate](https://togithub.com/renovate) in [tj-actions/changed-files#1809
-   Updated README.md by [@&#8203;tj-actions-bot](https://togithub.com/tj-actions-bot) in [tj-actions/changed-files#1810

**Full Changelog**: tj-actions/changed-files@v40...v41.0.0

***

</details>

---

### 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.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://togithub.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMTYuMCIsInVwZGF0ZWRJblZlciI6IjM3LjExNi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->
gfellerph pushed a commit to swisspost/design-system that referenced this pull request Jan 3, 2024
…#2433)

[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[tj-actions/changed-files](https://togithub.com/tj-actions/changed-files)
| action | major | `v40` -> `v41` |

### GitHub Vulnerability Alerts

####
[CVE-2023-51664](https://togithub.com/tj-actions/changed-files/security/advisories/GHSA-mcph-m25j-8j63)

### 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`](https://togithub.com/tj-actions/changed-files)
action returns a list of files changed in a commit or pull request which
provides an `escape_json` input [enabled by
default](https://togithub.com/tj-actions/changed-files/blob/94549999469dbfa032becf298d95c87a14c34394/action.yml#L136),
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](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners)
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

1. Submit a pull request to a repository with a new file injecting a
command. For example `$(whoami).txt` which is a valid filename.
2. 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 files` step below.

```yaml
      - name: List all changed files
        run: |
          for file in $; do
            echo "$file was changed"
          done
```

Example output:

```yaml

##[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 changed
```

### Impact

This issue may lead to arbitrary command execution in the GitHub Runner.

### Resolution
- A new `safe_output` input 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.

```yaml
- name: List all changed files
  env:
    ALL_CHANGED_FILES: $
  run: |
    for file in "$ALL_CHANGED_FILES"; do
      echo "$file was changed"
    done
```

### Resources

* [Keeping your GitHub Actions and workflows secure Part 2: Untrusted
input](https://securitylab.github.com/research/github-actions-untrusted-input/)
* [Keeping your GitHub Actions and workflows secure Part 1: Preventing
pwn
requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/)

---

### Release Notes

<details>
<summary>tj-actions/changed-files (tj-actions/changed-files)</summary>

###
[`v41`](https://togithub.com/tj-actions/changed-files/releases/tag/v41)

[Compare
Source](https://togithub.com/tj-actions/changed-files/compare/v40...v41)

##### Changes in v41.0.1

##### What's Changed

- Upgraded to v41 by
[@&#8203;tj-actions-bot](https://togithub.com/tj-actions-bot) in
[tj-actions/changed-files#1811
- chore(deps): update dependency eslint-plugin-prettier to v5.1.2 by
[@&#8203;renovate](https://togithub.com/renovate) in
[tj-actions/changed-files#1813
- fix: update characters escaped by safe output by
[@&#8203;jackton1](https://togithub.com/jackton1) in
[tj-actions/changed-files#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_output` to false this comes
with a recommendation to store all outputs generated in an environment
variable first before using them.

##### Example

```yaml
...
    - 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
[@&#8203;renovate](https://togithub.com/renovate) in
[tj-actions/changed-files#1801
- Upgraded to v40.2.3 by
[@&#8203;tj-actions-bot](https://togithub.com/tj-actions-bot) in
[tj-actions/changed-files#1800
- chore(deps): update dependency eslint-plugin-prettier to v5.1.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[tj-actions/changed-files#1802
- chore(deps): lock file maintenance by
[@&#8203;renovate](https://togithub.com/renovate) in
[tj-actions/changed-files#1803
- chore(deps): update dependency eslint-plugin-prettier to v5.1.1 by
[@&#8203;renovate](https://togithub.com/renovate) in
[tj-actions/changed-files#1804
- fix: update safe output regex and the docs by
[@&#8203;tj-actions-bot](https://togithub.com/tj-actions-bot) in
[tj-actions/changed-files#1805
- Revert "chore(deps): update actions/download-artifact action to v4" by
[@&#8203;jackton1](https://togithub.com/jackton1) in
[tj-actions/changed-files#1806
- Update README.md by [@&#8203;jackton1](https://togithub.com/jackton1)
in
[tj-actions/changed-files#1808
- chore(deps): lock file maintenance by
[@&#8203;renovate](https://togithub.com/renovate) in
[tj-actions/changed-files#1809
- Updated README.md by
[@&#8203;tj-actions-bot](https://togithub.com/tj-actions-bot) in
[tj-actions/changed-files#1810

**Full Changelog**:
tj-actions/changed-files@v40...v41.0.0

***

</details>

---

### 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.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/swisspost/design-system).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
merge when passing Merge the PR automatically once all status checks have passed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants