dagecko opened a new pull request, #38893:
URL: https://github.com/apache/superset/pull/38893

   > This is a re-submission of #38891, which was closed due to a branch issue 
on my end. Same fixes, apologies for the noise.
   
   ## Security: Harden GitHub Actions workflows
   
   Hey, I found some CI/CD security issues in this repo's GitHub Actions 
workflows. These are the same vulnerability classes that were exploited in the 
tj-actions/changed-files supply chain attack. I've been reviewing repos that 
are affected and submitting fixes where I can.
   
   This PR applies mechanical fixes and flags anything else that needs a manual 
look. Happy to answer any questions.
   
   ### Fixes applied
   
   | Rule | Severity | File | Description |
   |------|----------|------|-------------|
   | RGS-002 | high | `.github/workflows/bump-python-package.yml` | Extracted 4 
unsafe expression(s) to env vars |
   | RGS-002 | high | `.github/workflows/embedded-sdk-release.yml` | Extracted 
1 unsafe expression(s) to env vars |
   | RGS-007 | high | `.github/workflows/ephemeral-env-pr-close.yml` | Pinned 2 
third-party action(s) to commit SHA |
   | RGS-002 | high | `.github/workflows/ephemeral-env-pr-close.yml` | 
Extracted 1 unsafe expression(s) to env vars |
   | RGS-002 | high | `.github/workflows/ephemeral-env.yml` | Extracted 3 
unsafe expression(s) to env vars |
   | RGS-002 | high | `.github/workflows/generate-FOSSA-report.yml` | Extracted 
1 unsafe expression(s) to env vars |
   | RGS-002 | high | `.github/workflows/release.yml` | Extracted 1 unsafe 
expression(s) to env vars |
   | RGS-002 | high | `.github/workflows/showtime-trigger.yml` | Extracted 3 
unsafe expression(s) to env vars |
   | RGS-002 | high | `.github/workflows/superset-docs-deploy.yml` | Extracted 
1 unsafe expression(s) to env vars |
   | RGS-002 | high | `.github/workflows/tag-release.yml` | Extracted 5 unsafe 
expression(s) to env vars |
   | RGS-002 | high | `.github/workflows/tech-debt.yml` | Extracted 1 unsafe 
expression(s) to env vars |
   
   
   ### Additional findings (manual review recommended)
   
   | Rule | Severity | File | Description |
   | RGS-016 | critical | `.github/workflows/check_db_migration_confict.yml` | 
Unicode Steganography in Workflow File |
   | RGS-004 | high | `.github/workflows/claude.yml` | Comment-Triggered 
Workflow Without Author Authorization Check |
   | RGS-004 | high | `.github/workflows/claude.yml` | Comment-Triggered 
Workflow Without Author Authorization Check |
   | RGS-003 | high | `.github/workflows/pre-commit.yml` | Filename Injection 
via Git Diff or File Listing |
   | RGS-004 | high | `.github/workflows/superset-docs-deploy.yml` | 
Comment-Triggered Workflow Without Author Authorization Check |
   | RGS-004 | high | `.github/workflows/superset-docs-deploy.yml` | 
Comment-Triggered Workflow Without Author Authorization Check |
   | RGS-004 | high | `.github/workflows/superset-docs-deploy.yml` | 
Comment-Triggered Workflow Without Author Authorization Check |
   | RGS-004 | high | `.github/workflows/superset-docs-deploy.yml` | 
Comment-Triggered Workflow Without Author Authorization Check |
   | RGS-004 | high | `.github/workflows/superset-docs-deploy.yml` | 
Comment-Triggered Workflow Without Author Authorization Check |
   | RGS-004 | high | `.github/workflows/superset-docs-deploy.yml` | 
Comment-Triggered Workflow Without Author Authorization Check |
   | RGS-012 | high | `.github/workflows/superset-docs-deploy.yml` | Secret 
Exfiltration via Outbound HTTP Request |
   | RGS-004 | high | `.github/workflows/superset-docs-deploy.yml` | 
Comment-Triggered Workflow Without Author Authorization Check |
   | RGS-004 | high | `.github/workflows/superset-docs-deploy.yml` | 
Comment-Triggered Workflow Without Author Authorization Check |
   | RGS-004 | high | `.github/workflows/superset-docs-deploy.yml` | 
Comment-Triggered Workflow Without Author Authorization Check |
   | RGS-004 | high | `.github/workflows/superset-docs-deploy.yml` | 
Comment-Triggered Workflow Without Author Authorization Check |
   | RGS-004 | high | `.github/workflows/superset-docs-deploy.yml` | 
Comment-Triggered Workflow Without Author Authorization Check |
   | RGS-004 | high | `.github/workflows/superset-docs-deploy.yml` | 
Comment-Triggered Workflow Without Author Authorization Check |
   | RGS-004 | high | `.github/workflows/superset-docs-deploy.yml` | 
Comment-Triggered Workflow Without Author Authorization Check |
   | RGS-004 | high | `.github/workflows/supersetbot.yml` | Comment-Triggered 
Workflow Without Author Authorization Check |
   | RGS-004 | high | `.github/workflows/supersetbot.yml` | Comment-Triggered 
Workflow Without Author Authorization Check |
   | RGS-004 | high | `.github/workflows/supersetbot.yml` | Comment-Triggered 
Workflow Without Author Authorization Check |
   | RGS-004 | high | `.github/workflows/supersetbot.yml` | Comment-Triggered 
Workflow Without Author Authorization Check |
   | RGS-005 | medium | `.github/workflows/claude.yml` | Excessive Permissions 
on Untrusted Trigger |
   | RGS-005 | medium | `.github/workflows/claude.yml` | Excessive Permissions 
on Untrusted Trigger |
   | RGS-005 | medium | `.github/workflows/ephemeral-env-pr-close.yml` | 
Excessive Permissions on Untrusted Trigger |
   | RGS-005 | medium | `.github/workflows/ephemeral-env.yml` | Excessive 
Permissions on Untrusted Trigger |
   | RGS-005 | medium | `.github/workflows/ephemeral-env.yml` | Excessive 
Permissions on Untrusted Trigger |
   | RGS-005 | medium | `.github/workflows/labeler.yml` | Excessive Permissions 
on Untrusted Trigger |
   | RGS-005 | medium | `.github/workflows/showtime-trigger.yml` | Excessive 
Permissions on Untrusted Trigger |
   | RGS-005 | medium | `.github/workflows/supersetbot.yml` | Excessive 
Permissions on Untrusted Trigger |
   | RGS-005 | medium | `.github/workflows/welcome-new-users.yml` | Excessive 
Permissions on Untrusted Trigger |
   
   
   ### Why this matters
   
   GitHub Actions workflows that use untrusted input in `run:` blocks or 
reference unpinned third-party actions are vulnerable to code injection and 
supply chain attacks. These are the same vulnerability classes exploited in the 
[tj-actions/changed-files 
incident](https://www.stepsecurity.io/blog/harden-runner-detection-tj-actions-changed-files-attack-and-its-impact)
 which compromised CI secrets across thousands of repositories.
   
   ### How to verify
   
   Review the diff, each change is mechanical and preserves workflow behavior:
   - **Expression extraction**: Moves `${{ }}` expressions from `run:` blocks 
into `env:` mappings, preventing shell injection
   - **SHA pinning**: Pins third-party actions to immutable commit SHAs 
(original version tag preserved as comment)
   
   
   ---
   
   If this PR is not welcome, just close it and I won't send another.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to