GitHub Security Advisories Verification Results #
This document summarizes sisakulint’s detection capability against all 38 GitHub Security Advisories for the GitHub Actions ecosystem.
Summary #
| Metric | Value |
|---|---|
| Total Advisories | 38 |
| Detected (Direct) | 28 |
| Detected (Category Match) | 31 |
| Not Detectable | 7 |
| Detection Rate | 81.6% |
Detection Categories #
| Rule | Detections |
|---|---|
| code-injection-critical | 21 |
| known-vulnerable-actions | 16 |
| dangerous-triggers-critical | 11 |
| untrusted-checkout | 10 |
| code-injection-medium | 5 |
| argument-injection-critical | 2 |
| deprecated-commands | 2 |
| artifact-poisoning-critical | 1 |
| artifact-poisoning-medium | 1 |
| cache-poisoning-poisonable-step | 1 |
| argument-injection-medium | 1 |
Detection Results #
Code Injection Vulnerabilities #
| GHSA ID | Action | Severity | Detected | Detection Rule |
|---|---|---|---|---|
| GHSA-pwf7-47c3-mfhx | j178/prek-action | Critical | Yes | KnownVulnerableActionsRule, UntrustedCheckoutRule |
| GHSA-65rg-554r-9j5x | lycheeverse/lychee-action | Moderate | Yes | KnownVulnerableActionsRule |
| GHSA-2487-9f55-2vg9 | OZI-Project/publish | Moderate | Yes | CodeInjectionMediumRule |
| GHSA-7x29-qqmq-v6qc | ultralytics/actions | High | Yes | CodeInjectionCriticalRule, ArgumentInjectionCriticalRule |
| GHSA-4xqx-pqpj-9fqw | atlassian/gajira-create | Critical | Yes | CodeInjectionCriticalRule |
| GHSA-rg3q-prf8-qxmp | embano1/wip | High | Yes | CodeInjectionMediumRule, ArgumentInjectionMediumRule |
Command Injection Vulnerabilities #
| GHSA ID | Action | Severity | Detected | Detection Rule |
|---|---|---|---|---|
| GHSA-gq52-6phf-x2r6 | tj-actions/branch-names | Critical | Yes | CodeInjectionCriticalRule |
| GHSA-8v8w-v8xg-79rf | tj-actions/branch-names | Critical | Yes | CodeInjectionCriticalRule |
| GHSA-ghm2-rq8q-wrhc | tj-actions/verify-changed-files | High | Yes | UntrustedCheckoutRule |
| GHSA-mcph-m25j-8j63 | tj-actions/changed-files | High | Yes | DangerousTriggersRule |
| GHSA-6q4m-7476-932w | rlespinasse/github-slug-action | High | Yes | CodeInjectionCriticalRule |
| GHSA-f9qj-7gh3-mhj4 | kartverket/github-workflows | High | Yes | CodeInjectionCriticalRule, UntrustedCheckoutRule |
Secret/Token Exposure Vulnerabilities #
| GHSA ID | Action | Severity | Detected | Detection Rule |
|---|---|---|---|---|
| GHSA-phf6-hm3h-x8qp | broadinstitute/cromwell | Critical | Yes | CodeInjectionCriticalRule |
| GHSA-c5qx-p38x-qf5w | RageAgainstThePixel/setup-steamcmd | High | Yes | KnownVulnerableActionsRule |
| GHSA-mj96-mh85-r574 | buildalon/setup-steamcmd | High | Yes | KnownVulnerableActionsRule |
| GHSA-26wh-cc3r-w6pj | canonical/get-workflow-version-action | High | Yes | KnownVulnerableActionsRule |
| GHSA-vqf5-2xx6-9wfm | github/codeql-action | High | Yes | KnownVulnerableActionsRule |
| GHSA-4mgv-m5cm-f9h7 | hashicorp/vault-action | High | Yes | KnownVulnerableActionsRule |
| GHSA-g86g-chm8-7r2p | check-spelling/check-spelling | Critical | Yes | KnownVulnerableActionsRule, DangerousTriggersRule |
Argument/Expression Injection Vulnerabilities #
| GHSA ID | Action | Severity | Detected | Detection Rule |
|---|---|---|---|---|
| GHSA-5xq9-5g24-4g6f | SonarSource/sonarqube-scan-action | High | Yes | DangerousTriggersRule, UntrustedCheckoutRule |
| GHSA-f79p-9c5r-xg88 | SonarSource/sonarqube-scan-action | High | Yes | DangerousTriggersRule, UntrustedCheckoutRule |
| GHSA-vxmw-7h4f-hqxh | pypa/gh-action-pypi-publish | Low | Yes | DangerousTriggersRule, UntrustedCheckoutRule |
| GHSA-xj87-mqvh-88w2 | fish-shop/syntax-check | Moderate | Yes | DangerousTriggersRule, UntrustedCheckoutRule |
| GHSA-hw6r-g8gj-2987 | pytorch/pytorch | Moderate | Yes | CodeInjectionCriticalRule, ArgumentInjectionCriticalRule |
| GHSA-7f32-hm4h-w77q | rlespinasse/github-slug-action | Moderate | Yes | DeprecatedCommandsRule, CodeInjectionCriticalRule |
Supply Chain / Artifact Poisoning Vulnerabilities #
| GHSA ID | Action | Severity | Detected | Detection Rule |
|---|---|---|---|---|
| GHSA-qmg3-hpqr-gqvc | reviewdog/action-setup | High | Partial | CommitShaRule (tag usage warning) |
| GHSA-mrrh-fwg8-r2c3 | tj-actions/changed-files | High | Yes | KnownVulnerableActionsRule |
| GHSA-5xr6-xhww-33m4 | dawidd6/action-download-artifact | High | Yes | ArtifactPoisoningMediumRule, KnownVulnerableActionsRule |
| GHSA-cxww-7g56-2vh6 | actions/download-artifact | High | Yes | ArtifactPoisoningCriticalRule, KnownVulnerableActionsRule |
| GHSA-h3qr-39j9-4r5v | gradle/gradle-build-action | High | Yes | CachePoisoningRule, UntrustedCheckoutRule |
| GHSA-x6gv-2rvh-qmp6 | BoldestDungeon/steam-workshop-deploy | Critical | Yes | KnownVulnerableActionsRule |
Miscellaneous Vulnerabilities #
| GHSA ID | Action | Severity | Detected | Detection Rule |
|---|---|---|---|---|
| GHSA-mxr3-8whj-j74r | step-security/harden-runner | Moderate | Partial | KnownVulnerableActionsRule |
| GHSA-m32f-fjw2-37v3 | bullfrogsec/bullfrog | Moderate | No | Not detectable (runtime) |
| GHSA-g85v-wf27-67xc | step-security/harden-runner | Low | Yes | KnownVulnerableActionsRule |
| GHSA-p756-rfxh-x63h | Azure/setup-kubectl | Low | No | Not detectable (action internal) |
| GHSA-2c6m-6gqh-6qg3 | actions/runner | High | Partial | DangerousTriggersRule |
| GHSA-634p-93h9-92vh | some-natalie/ghas-to-csv | Moderate | No | Not detectable (output format) |
| GHSA-99jg-r3f4-rpxj | afichet/openexr-viewer | Critical | No | Not detectable (not workflow) |
Non-Detection Categories #
| Reason | Count | Examples |
|---|---|---|
| Action internal implementation | 2 | GHSA-p756-rfxh-x63h (file permissions), GHSA-634p-93h9-92vh (CSV output) |
| Runtime behavior | 2 | GHSA-m32f-fjw2-37v3 (DNS filtering) |
| Not workflow related | 1 | GHSA-99jg-r3f4-rpxj (memory overflow in binary) |
| Time-bomb attacks (detected via KnownVulnerableActionsRule) | 2 | GHSA-qmg3-hpqr-gqvc, GHSA-mrrh-fwg8-r2c3 |
Key Findings #
High Detection Rate: sisakulint successfully detects 81.6% of all GitHub Actions advisories.
KnownVulnerableActionsRule Effectiveness: 16 advisories are detected via the KnownVulnerableActionsRule, which checks against a database of known vulnerable action versions.
Code Injection Detection: 26 code injection instances are detected across 21 critical and 5 medium severity findings.
Dangerous Triggers: 11 workflows with dangerous triggers (pull_request_target, workflow_run, issue_comment) are flagged.
Supply Chain Protection: Both artifact poisoning and cache poisoning patterns are detected.
Recommendations for sisakulint Improvement #
Container Environment Variables: Consider adding detection for untrusted input in
container.envcontext (GHSA-2c6m-6gqh-6qg3).CSV Injection: Consider adding output format validation rules for security-sensitive data exports.
Regular Database Updates: Keep the KnownVulnerableActionsRule database updated with new advisories.
Running Verification #
# Build sisakulint
go build ./cmd/sisakulint
# Run on all vulnerable patterns
sisakulint script/actions/advisory/*-vulnerable.yaml
# Run on safe patterns (should have minimal security warnings)
sisakulint script/actions/advisory/*-safe.yaml