Skip to content

ci: add Argus security scanning workflow#1

Draft
1blt wants to merge 15 commits intomasterfrom
add-argus-security-scanning
Draft

ci: add Argus security scanning workflow#1
1blt wants to merge 15 commits intomasterfrom
add-argus-security-scanning

Conversation

@1blt
Copy link
Copy Markdown

@1blt 1blt commented Apr 9, 2026

Keep your PR as a Draft until it's ready for Platform review. A PR is ready for Platform review when it has a teammate approval and tests, linting, and settings checks pass CI. See these tips on how to avoid common delays in getting your PR merged.

Summary

  • This work is behind a feature toggle (flipper): NO
  • Adds Argus security scanning via reusable workflow (28 lines)
  • Uses huntridge-labs/argus/.github/workflows/reusable-security-hardening.yml@0.6.8
  • Enables SAST and secrets scanning with automatic PR comments
  • Triggers on PRs, pushes to main/master, weekly on Sundays at 2 AM UTC, and manual dispatch
  • Concurrency: PR runs cancel outdated runs; main branch and scheduled runs complete fully
  • Team: Platform Security / DevSecOps

Related issue(s)

  • N/A - New security scanning infrastructure

Testing done

  • New code is covered by unit tests (N/A - workflow-only, no application code)
  • Old behavior: No automated security scanning workflow
  • Verification steps:
    1. Verify workflow triggers on this PR in Actions tab ✅
    2. Confirm Argus reusable workflow runs SAST and secrets scanners ✅
    3. Verify PR comment is posted with scan summary ✅
    4. After merge, verify scheduled scans run weekly and findings appear in Security tab
  • Not behind a flipper

Screenshots

N/A - CI/CD workflow addition. See Security Scan Summary comment for scan output.

What areas of the site does it impact?

This adds a new GitHub Actions workflow for security scanning. It does not impact any application code or site functionality.

Acceptance criteria

  • I fixed|updated|added unit tests and integration tests for each feature (N/A - workflow-only).
  • No error nor warning in the console.
  • Events are being sent to the appropriate logging solution
  • Documentation has been updated (N/A - workflow is self-documenting)
  • No sensitive information (i.e. PII/credentials/internal URLs/etc.) is captured in logging, hardcoded, or specs
  • Feature/bug has a monitor built into Datadog (N/A - GitHub Actions handles monitoring)
  • If app impacted requires authentication, did you login to a local build and verify all authenticated routes work as expected (N/A - no app impact)
  • I added a screenshot of the developed feature (N/A)

Requested Feedback

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1blt and others added 2 commits April 9, 2026 11:24
- Add buildability detection for Dockerfiles before attempting scan
- Skip if using private registries (ECR, GCR, ACR)
- Skip if requiring secret build args (TOKEN, KEY, PASSWORD, etc.)
- Show skip reason in job summary

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add summary job that runs after all scans complete
- Shows stack detection results (languages, container, IaC)
- Displays job status for each scanning category
- Posts consolidated PR comment via Argus security-summary action
- Links to Security tab for detailed findings

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Comment thread .github/workflows/argus-security.yml Fixed
Move GitHub context interpolation from run: scripts to env: blocks
to prevent potential shell injection attacks via crafted branch names
or other user-controlled inputs.

- Use env vars for detect outputs in summary job
- Use env var for image tag in container job
- Properly quote environment variables in shell commands

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@1blt 1blt marked this pull request as draft April 9, 2026 16:00
@1blt 1blt marked this pull request as draft April 9, 2026 16:00
1blt and others added 2 commits April 9, 2026 12:15
Remove duplicate summary logic (shell script + 100-line JavaScript) and
let Argus security-summary action handle PR commenting directly with
post_pr_comment: true. Reduces summary job from ~180 lines to 12 lines.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Change scheduled scans from daily to weekly (Sundays 2 AM UTC)
- Add concurrency group to cancel outdated PR scan runs
- Keep main branch and scheduled runs completing fully

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@huntridge-labs huntridge-labs deleted a comment from github-actions Bot Apr 9, 2026
@huntridge-labs huntridge-labs deleted a comment from github-actions Bot Apr 9, 2026
@1blt 1blt removed the danger-alert label Apr 9, 2026
@huntridge-labs huntridge-labs deleted a comment from github-actions Bot Apr 9, 2026
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 9, 2026

🔒 Security Scan Summary

Branch: add-argus-security-scanning
Commit: 5737f45

Workflow Run: 8
Branch: add-argus-security-scanning
Commit: 5737f45

Scanners Executed: 4

Scanner Results

🔍 Bandit Python Security

Status: ✅ Completed

📊 Findings Summary

🔴 High 🟠 Medium 🟢 Low 📦 Total
0 0 0 0

No security findings detected!

📁 Artifacts: Bandit Reports

🔬 CodeQL SAST ()

Status: Completed

Findings Summary

Critical High Medium Low Total
0 0 0 0 36
Finding Details
Severity Rule Location Message
Info rb/redos app/models/id_card_announcement_subscription.rb#L7 This part of the regular expression may cause expo
Info rb/redos app/swagger/swagger/schemas/form526/address.rb#L30 This part of the regular expression may cause expo
Info rb/redos app/swagger/swagger/schemas/form526/address.rb#L55 This part of the regular expression may cause expo
Info rb/redos app/swagger/swagger/schemas/form526/form0781.rb#L56 This part of the regular expression may cause expo
Info rb/redos app/swagger/swagger/schemas/form526/form0781.rb#L104 This part of the regular expression may cause expo
Info rb/redos app/swagger/swagger/schemas/form526/form526_submit_v2.rb#L10 This part of the regular expression may cause expo
Info rb/redos app/swagger/swagger/schemas/form526/form526_submit_v2.rb#L92 This part of the regular expression may cause expo
Info rb/redos app/swagger/swagger/schemas/form526/form526_submit_v2.rb#L230 This part of the regular expression may cause expo
Info rb/redos app/swagger/swagger/schemas/form526/form526_submit_v2.rb#L236 This part of the regular expression may cause expo
Info rb/redos app/swagger/swagger/schemas/form526/form526_submit_v2.rb#L242 This part of the regular expression may cause expo
Info rb/redos app/swagger/swagger/schemas/form526/form526_submit_v2.rb#L264 This part of the regular expression may cause expo
Info rb/redos app/swagger/swagger/schemas/form526/form526_submit_v2.rb#L358 This part of the regular expression may cause expo
Info rb/redos app/swagger/swagger/schemas/form526/form526_submit_v2.rb#L370 This part of the regular expression may cause expo
Info rb/redos app/swagger/swagger/schemas/form526/form526_submit_v2.rb#L409 This part of the regular expression may cause expo
Info rb/redos app/swagger/swagger/schemas/form526/form526_submit_v2.rb#L422 This part of the regular expression may cause expo
Info rb/redos modules/claims_api/app/controllers/concerns/claims_api/disability_compensation_validations.rb#L385 This part of the regular expression may cause expo
Info rb/csrf-protection-disabled app/controllers/application_controller.rb#L25 Potential CSRF vulnerability due to forgery protec
Info rb/csrf-protection-disabled app/controllers/v0/medical_copays_controller.rb#L11 Potential CSRF vulnerability due to forgery protec
Info rb/csrf-protection-disabled app/controllers/v0/onsite_notifications_controller.rb#L8 Potential CSRF vulnerability due to forgery protec
Info rb/csrf-protection-disabled app/controllers/v0/search_click_tracking_controller.rb#L11 Potential CSRF vulnerability due to forgery protec
Showing 20 of 36 findings. See artifacts for complete list.

Artifacts: CodeQL Reports ()

🔍 GitLeaks

Status: ✅ Completed

Secrets Found: 0

📁 Artifacts: GitLeaks Reports

🔍 OpenGrep SAST

Status: Completed

Findings Summary

Error Warning Info Total
394 141 0 535

ERROR: 394 error-severity findings need immediate attention

WARNING: 141 warning-severity findings should be reviewed

Finding Details
Severity Rule Location Message
WARNING ifs-tampering .github/scripts/check_codeowners.sh#L15 The special variable IFS affects how splitting takes place w
WARNING ifs-tampering .github/scripts/check_codeowners.sh#L57 The special variable IFS affects how splitting takes place w
WARNING workflow-run-target-code-checkout .github/workflows/build.yml#L37 This GitHub Actions workflow file uses workflow_run and ch
ERROR run-shell-injection .github/workflows/deploy-template.yml#L33 Using variable interpolation ${{...}} with github contex
ERROR run-shell-injection .github/workflows/deploy-template.yml#L93 Using variable interpolation ${{...}} with github contex
ERROR run-shell-injection .github/workflows/gh-env-cleanup.yml#L87 Using variable interpolation ${{...}} with github contex
WARNING avoid-redirect app/controllers/flipper_controller.rb#L9 When a redirect uses user input, a malicious user can spoof
WARNING check-redirect-to app/controllers/flipper_controller.rb#L9 Found potentially unsafe handling of redirect behavior "/fli
WARNING mass-assignment-vuln app/controllers/v0/apps_controller.rb#L19 Checks for calls to without_protection during mass assignmen
WARNING mass-assignment-vuln app/controllers/v0/apps_controller.rb#L25 Checks for calls to without_protection during mass assignmen
WARNING check-unscoped-find app/controllers/v0/education_benefits_claims_controller.rb#L42 Found an unscoped find(...) with user-controllable input.
WARNING avoid-tainted-file-access app/controllers/v0/education_benefits_claims_controller.rb#L51 Using user input when accessing files is potentially dangero
WARNING avoid-tainted-file-access app/controllers/v0/form210779_controller.rb#L43 Using user input when accessing files is potentially dangero
WARNING avoid-tainted-file-access app/controllers/v0/form212680_controller.rb#L43 Using user input when accessing files is potentially dangero
WARNING mass-assignment-vuln app/controllers/v0/forms_controller.rb#L13 Checks for calls to without_protection during mass assignmen
WARNING check-unscoped-find app/controllers/v0/gi_bill_feedbacks_controller.rb#L10 Found an unscoped find(...) with user-controllable input.
WARNING check-unscoped-find app/controllers/v0/health_care_applications_controller.rb#L38 Found an unscoped find(...) with user-controllable input.
WARNING check-unscoped-find app/controllers/v0/multi_party_forms/secondary_controller.rb#L24 Found an unscoped find(...) with user-controllable input.
WARNING avoid-redirect app/controllers/v0/sign_in_controller.rb#L206 When a redirect uses user input, a malicious user can spoof
WARNING check-unscoped-find app/controllers/v0/terms_of_use_agreements_controller.rb#L102 Found an unscoped find(...) with user-controllable input.

Showing 20 of 535 findings. See artifacts for complete list.

Artifacts: OpenGrep Reports


Generated by Argus


Generated by Argus

1blt and others added 8 commits April 9, 2026 15:41
Replace 225-line custom workflow with 27-line reusable workflow.
Argus handles language detection, scanner orchestration, and PR comments.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Move permissions under job (not workflow level)
- Pass secrets explicitly instead of inherit

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Reusable workflow requires actions:read, checks:write, id-token:write

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Includes packages:read needed by nested scanner jobs.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 9, 2026

🛡️ Security Hardening Pipeline Results

Repository: huntridge-labs/vets-api
Branch: 1/merge
Generated: Thu Apr 9 20:13:51 UTC 2026

🔬 CodeQL SAST (Ruby)

Status: Completed

Findings Summary

Critical High Medium Low Total
0 0 0 0 36
Finding Details
Severity Rule Location Message
Info rb/redos app/models/id_card_announcement_subscription.rb#L7 This part of the regular expression may cause expo
Info rb/redos app/swagger/swagger/schemas/form526/address.rb#L30 This part of the regular expression may cause expo
Info rb/redos app/swagger/swagger/schemas/form526/address.rb#L55 This part of the regular expression may cause expo
Info rb/redos app/swagger/swagger/schemas/form526/form0781.rb#L56 This part of the regular expression may cause expo
Info rb/redos app/swagger/swagger/schemas/form526/form0781.rb#L104 This part of the regular expression may cause expo
Info rb/redos app/swagger/swagger/schemas/form526/form526_submit_v2.rb#L10 This part of the regular expression may cause expo
Info rb/redos app/swagger/swagger/schemas/form526/form526_submit_v2.rb#L92 This part of the regular expression may cause expo
Info rb/redos app/swagger/swagger/schemas/form526/form526_submit_v2.rb#L230 This part of the regular expression may cause expo
Info rb/redos app/swagger/swagger/schemas/form526/form526_submit_v2.rb#L236 This part of the regular expression may cause expo
Info rb/redos app/swagger/swagger/schemas/form526/form526_submit_v2.rb#L242 This part of the regular expression may cause expo
Info rb/redos app/swagger/swagger/schemas/form526/form526_submit_v2.rb#L264 This part of the regular expression may cause expo
Info rb/redos app/swagger/swagger/schemas/form526/form526_submit_v2.rb#L358 This part of the regular expression may cause expo
Info rb/redos app/swagger/swagger/schemas/form526/form526_submit_v2.rb#L370 This part of the regular expression may cause expo
Info rb/redos app/swagger/swagger/schemas/form526/form526_submit_v2.rb#L409 This part of the regular expression may cause expo
Info rb/redos app/swagger/swagger/schemas/form526/form526_submit_v2.rb#L422 This part of the regular expression may cause expo
Info rb/redos modules/claims_api/app/controllers/concerns/claims_api/disability_compensation_validations.rb#L385 This part of the regular expression may cause expo
Info rb/csrf-protection-disabled app/controllers/application_controller.rb#L25 Potential CSRF vulnerability due to forgery protec
Info rb/csrf-protection-disabled app/controllers/v0/medical_copays_controller.rb#L11 Potential CSRF vulnerability due to forgery protec
Info rb/csrf-protection-disabled app/controllers/v0/onsite_notifications_controller.rb#L8 Potential CSRF vulnerability due to forgery protec
Info rb/csrf-protection-disabled app/controllers/v0/search_click_tracking_controller.rb#L11 Potential CSRF vulnerability due to forgery protec
Showing 20 of 36 findings. See artifacts for complete list.

Artifacts: CodeQL Reports (Ruby)

🔍 OpenGrep SAST

Status: Completed

Findings Summary

Error Warning Info Total
394 141 0 535

ERROR: 394 error-severity findings need immediate attention

WARNING: 141 warning-severity findings should be reviewed

Finding Details
Severity Rule Location Message
WARNING ifs-tampering .github/scripts/check_codeowners.sh#L15 The special variable IFS affects how splitting takes place w
WARNING ifs-tampering .github/scripts/check_codeowners.sh#L57 The special variable IFS affects how splitting takes place w
WARNING workflow-run-target-code-checkout .github/workflows/build.yml#L37 This GitHub Actions workflow file uses workflow_run and ch
ERROR run-shell-injection .github/workflows/deploy-template.yml#L33 Using variable interpolation ${{...}} with github contex
ERROR run-shell-injection .github/workflows/deploy-template.yml#L93 Using variable interpolation ${{...}} with github contex
ERROR run-shell-injection .github/workflows/gh-env-cleanup.yml#L87 Using variable interpolation ${{...}} with github contex
WARNING avoid-redirect app/controllers/flipper_controller.rb#L9 When a redirect uses user input, a malicious user can spoof
WARNING check-redirect-to app/controllers/flipper_controller.rb#L9 Found potentially unsafe handling of redirect behavior "/fli
WARNING mass-assignment-vuln app/controllers/v0/apps_controller.rb#L19 Checks for calls to without_protection during mass assignmen
WARNING mass-assignment-vuln app/controllers/v0/apps_controller.rb#L25 Checks for calls to without_protection during mass assignmen
WARNING check-unscoped-find app/controllers/v0/education_benefits_claims_controller.rb#L42 Found an unscoped find(...) with user-controllable input.
WARNING avoid-tainted-file-access app/controllers/v0/education_benefits_claims_controller.rb#L51 Using user input when accessing files is potentially dangero
WARNING avoid-tainted-file-access app/controllers/v0/form210779_controller.rb#L43 Using user input when accessing files is potentially dangero
WARNING avoid-tainted-file-access app/controllers/v0/form212680_controller.rb#L43 Using user input when accessing files is potentially dangero
WARNING mass-assignment-vuln app/controllers/v0/forms_controller.rb#L13 Checks for calls to without_protection during mass assignmen
WARNING check-unscoped-find app/controllers/v0/gi_bill_feedbacks_controller.rb#L10 Found an unscoped find(...) with user-controllable input.
WARNING check-unscoped-find app/controllers/v0/health_care_applications_controller.rb#L38 Found an unscoped find(...) with user-controllable input.
WARNING check-unscoped-find app/controllers/v0/multi_party_forms/secondary_controller.rb#L24 Found an unscoped find(...) with user-controllable input.
WARNING avoid-redirect app/controllers/v0/sign_in_controller.rb#L206 When a redirect uses user input, a malicious user can spoof
WARNING check-unscoped-find app/controllers/v0/terms_of_use_agreements_controller.rb#L102 Found an unscoped find(...) with user-controllable input.

Showing 20 of 535 findings. See artifacts for complete list.

Artifacts: OpenGrep Reports

🔍 Bandit Python Security

Status: ✅ Completed

📊 Findings Summary

🔴 High 🟠 Medium 🟢 Low 📦 Total
0 0 0 0

No security findings detected!

📁 Artifacts: Bandit Reports

🔍 GitLeaks

Status: ⏭️ Skipped

🛡️ ClamAV

Status: ✅ Completed

Files Scanned: 13482
Infected Files: 0
Scan Errors: 0

📁 Artifacts: ClamAV Reports

🐳 Container Security

Status: ✅ Completed

📊 Combined Findings Summary

🚨 Critical ⚠️ High 🟡 Medium 🔵 Low 📦 Total 🔢 Unique
3 66 44 16 129 125

Scanned: 1 containers | Build Failures: 0

🔍 Detailed Findings by Container

🚨 postman - 129 vulnerabilities (125 unique)

Image: hardening-test-postman:scan-f63a1a25
Digest: @sha256:67c612f16a00318adb0fe58b59257516fd5d897fb62ec35f0f89555c20627836

Combined (Deduplicated)

🚨 Critical ⚠️ High 🟡 Medium 🔵 Low Total Unique
3 66 44 16 129 125
🔷 Trivy Scanner (89 findings, 58 unique)
CVE Severity Package Version Fixed
CVE-2026-33937 🚨 CRITICAL handlebars 4.7.8 4.7.9
CVE-2023-5363 ⚠️ HIGH libcrypto3 3.1.2-r0 3.1.4-r0
CVE-2024-6119 ⚠️ HIGH libcrypto3 3.1.2-r0 3.1.7-r0
CVE-2023-5363 ⚠️ HIGH libssl3 3.1.2-r0 3.1.4-r0
CVE-2024-6119 ⚠️ HIGH libssl3 3.1.2-r0 3.1.7-r0
CVE-2025-26519 ⚠️ HIGH musl 1.2.4-r1 1.2.4-r3
CVE-2025-26519 ⚠️ HIGH musl-utils 1.2.4-r1 1.2.4-r3
CVE-2026-32141 ⚠️ HIGH flatted 3.2.6 3.4.0
CVE-2026-33228 ⚠️ HIGH flatted 3.2.6 3.4.2
CVE-2026-33938 ⚠️ HIGH handlebars 4.7.8 4.7.9
CVE-2026-33939 ⚠️ HIGH handlebars 4.7.8 4.7.9
CVE-2026-33940 ⚠️ HIGH handlebars 4.7.8 4.7.9
CVE-2026-33941 ⚠️ HIGH handlebars 4.7.8 4.7.9
CVE-2024-29415 ⚠️ HIGH ip 2.0.0 N/A
CVE-2026-4800 ⚠️ HIGH lodash 4.17.21 4.18.0
CVE-2026-26996 ⚠️ HIGH minimatch 3.1.2 10.2.1, 9.0.6, 8.0.5, 7.4.7, 6.2.1, 5.1.7, 4.2.4, 3.1.3
CVE-2026-26996 ⚠️ HIGH minimatch 3.1.2 10.2.1, 9.0.6, 8.0.5, 7.4.7, 6.2.1, 5.1.7, 4.2.4, 3.1.3
CVE-2026-27903 ⚠️ HIGH minimatch 3.1.2 10.2.3, 9.0.7, 8.0.6, 7.4.8, 6.2.2, 5.1.8, 4.2.5, 3.1.3
CVE-2026-27903 ⚠️ HIGH minimatch 3.1.2 10.2.3, 9.0.7, 8.0.6, 7.4.8, 6.2.2, 5.1.8, 4.2.5, 3.1.3
CVE-2026-27904 ⚠️ HIGH minimatch 3.1.2 10.2.3, 9.0.7, 8.0.6, 7.4.8, 6.2.2, 5.1.8, 4.2.5, 3.1.4
CVE-2026-27904 ⚠️ HIGH minimatch 3.1.2 10.2.3, 9.0.7, 8.0.6, 7.4.8, 6.2.2, 5.1.8, 4.2.5, 3.1.4
CVE-2026-26996 ⚠️ HIGH minimatch 5.1.0 10.2.1, 9.0.6, 8.0.5, 7.4.7, 6.2.1, 5.1.7, 4.2.4, 3.1.3
CVE-2026-27903 ⚠️ HIGH minimatch 5.1.0 10.2.3, 9.0.7, 8.0.6, 7.4.8, 6.2.2, 5.1.8, 4.2.5, 3.1.3
CVE-2026-27904 ⚠️ HIGH minimatch 5.1.0 10.2.3, 9.0.7, 8.0.6, 7.4.8, 6.2.2, 5.1.8, 4.2.5, 3.1.4
CVE-2025-12816 ⚠️ HIGH node-forge 1.3.1 1.3.2
CVE-2025-66031 ⚠️ HIGH node-forge 1.3.1 1.3.2
CVE-2026-33891 ⚠️ HIGH node-forge 1.3.1 1.4.0
CVE-2026-33894 ⚠️ HIGH node-forge 1.3.1 1.4.0
CVE-2026-33895 ⚠️ HIGH node-forge 1.3.1 1.4.0
CVE-2026-33896 ⚠️ HIGH node-forge 1.3.1 1.4.0
CVE-2022-25883 ⚠️ HIGH semver 7.3.7 7.5.2, 6.3.1, 5.7.2
CVE-2026-23745 ⚠️ HIGH tar 6.1.11 7.5.3
CVE-2026-23950 ⚠️ HIGH tar 6.1.11 7.5.4
CVE-2026-24842 ⚠️ HIGH tar 6.1.11 7.5.7
CVE-2026-26960 ⚠️ HIGH tar 6.1.11 7.5.8
CVE-2026-29786 ⚠️ HIGH tar 6.1.11 7.5.10
CVE-2026-31802 ⚠️ HIGH tar 6.1.11 7.5.11
CVE-2026-27601 ⚠️ HIGH underscore 1.12.1 1.13.8
CVE-2023-42363 🟡 MEDIUM busybox 1.36.1-r2 1.36.1-r7
CVE-2023-42364 🟡 MEDIUM busybox 1.36.1-r2 1.36.1-r7
CVE-2023-42365 🟡 MEDIUM busybox 1.36.1-r2 1.36.1-r7
CVE-2023-42366 🟡 MEDIUM busybox 1.36.1-r2 1.36.1-r6
CVE-2023-42363 🟡 MEDIUM busybox-binsh 1.36.1-r2 1.36.1-r7
CVE-2023-42364 🟡 MEDIUM busybox-binsh 1.36.1-r2 1.36.1-r7
CVE-2023-42365 🟡 MEDIUM busybox-binsh 1.36.1-r2 1.36.1-r7
CVE-2023-42366 🟡 MEDIUM busybox-binsh 1.36.1-r2 1.36.1-r6
CVE-2023-5678 🟡 MEDIUM libcrypto3 3.1.2-r0 3.1.4-r1
CVE-2023-6129 🟡 MEDIUM libcrypto3 3.1.2-r0 3.1.4-r3
CVE-2023-6237 🟡 MEDIUM libcrypto3 3.1.2-r0 3.1.4-r4
CVE-2024-0727 🟡 MEDIUM libcrypto3 3.1.2-r0 3.1.4-r5

...and 39 more

⚓ Grype Scanner (123 findings, 86 unique)
CVE Severity Package Version Fixed
CVE-2024-5535 🚨 CRITICAL libcrypto3 3.1.2-r0 3.1.6-r0
CVE-2024-5535 🚨 CRITICAL libssl3 3.1.2-r0 3.1.6-r0
GHSA-2w6w-674q-4c4q 🚨 CRITICAL handlebars 4.7.8 4.7.9
CVE-2023-44487 ⚠️ HIGH node 16.20.2 18.18.2
GHSA-2p57-rm9w-gvfp ⚠️ HIGH ip 2.0.0 N/A
CVE-2024-27983 ⚠️ HIGH node 16.20.2 18.20.1
CVE-2024-6119 ⚠️ HIGH libcrypto3 3.1.2-r0 3.1.7-r0
CVE-2024-6119 ⚠️ HIGH libssl3 3.1.2-r0 3.1.7-r0
CVE-2023-5363 ⚠️ HIGH libcrypto3 3.1.2-r0 3.1.4-r0
CVE-2023-5363 ⚠️ HIGH libssl3 3.1.2-r0 3.1.4-r0
CVE-2023-46809 ⚠️ HIGH node 16.20.2 18.19.1
GHSA-c2qf-rxjj-qqgw ⚠️ HIGH semver 7.3.7 7.5.2
CVE-2024-21892 ⚠️ HIGH node 16.20.2 18.19.1
CVE-2023-38552 ⚠️ HIGH node 16.20.2 18.18.2
CVE-2024-22019 ⚠️ HIGH node 16.20.2 18.19.1
CVE-2024-4741 ⚠️ HIGH libcrypto3 3.1.2-r0 3.1.6-r0
CVE-2024-4741 ⚠️ HIGH libssl3 3.1.2-r0 3.1.6-r0
CVE-2025-23166 ⚠️ HIGH node 16.20.2 20.19.2
GHSA-554w-wpv2-vw27 ⚠️ HIGH node-forge 1.3.1 1.3.2
GHSA-r5fr-rjxr-66jc ⚠️ HIGH lodash 4.17.21 4.18.0
GHSA-3mfm-83xf-c92r ⚠️ HIGH handlebars 4.7.8 4.7.9
GHSA-5gfm-wpxj-wjgq ⚠️ HIGH node-forge 1.3.1 1.3.2
CVE-2025-59465 ⚠️ HIGH node 16.20.2 20.20.0
GHSA-xhpv-hc6g-r9c6 ⚠️ HIGH handlebars 4.7.8 4.7.9
GHSA-5m6q-g25r-mvwx ⚠️ HIGH node-forge 1.3.1 1.4.0
GHSA-9cx6-37pm-9jff ⚠️ HIGH handlebars 4.7.8 4.7.9
CVE-2026-21637 ⚠️ HIGH node 16.20.2 20.20.0
GHSA-rf6f-7fwh-wjgh ⚠️ HIGH flatted 3.2.6 3.4.2
CVE-2025-55131 ⚠️ HIGH node 16.20.2 20.20.0
CVE-2025-26519 ⚠️ HIGH musl 1.2.4-r1 1.2.4-r3
CVE-2025-26519 ⚠️ HIGH musl-utils 1.2.4-r1 1.2.4-r3
CVE-2025-59466 ⚠️ HIGH node 16.20.2 20.20.0
GHSA-3ppc-4f35-3m26 ⚠️ HIGH minimatch 3.1.2 3.1.3
GHSA-3ppc-4f35-3m26 ⚠️ HIGH minimatch 3.1.2 3.1.3
GHSA-3ppc-4f35-3m26 ⚠️ HIGH minimatch 5.1.0 5.1.7
GHSA-q67f-28xg-22rw ⚠️ HIGH node-forge 1.3.1 1.4.0
GHSA-34x7-hfp2-rc4v ⚠️ HIGH tar 6.1.11 7.5.7
GHSA-2328-f5f3-gj25 ⚠️ HIGH node-forge 1.3.1 1.4.0
CVE-2026-21710 ⚠️ HIGH node 16.20.2 20.20.2
GHSA-ppp5-5v6c-4jwp ⚠️ HIGH node-forge 1.3.1 1.4.0
GHSA-7r86-cg39-jmmj ⚠️ HIGH minimatch 3.1.2 3.1.3
GHSA-7r86-cg39-jmmj ⚠️ HIGH minimatch 3.1.2 3.1.3
GHSA-7r86-cg39-jmmj ⚠️ HIGH minimatch 5.1.0 5.1.8
GHSA-xjpj-3mr7-gcpf ⚠️ HIGH handlebars 4.7.8 4.7.9
GHSA-23c5-xmqv-rm74 ⚠️ HIGH minimatch 3.1.2 3.1.4
GHSA-23c5-xmqv-rm74 ⚠️ HIGH minimatch 3.1.2 3.1.4
GHSA-23c5-xmqv-rm74 ⚠️ HIGH minimatch 5.1.0 5.1.8
GHSA-qpx9-hpmf-5gmw ⚠️ HIGH underscore 1.12.1 1.13.8
GHSA-25h7-pfq9-p65f ⚠️ HIGH flatted 3.2.6 3.4.0
GHSA-r6q2-hw4h-h46w ⚠️ HIGH tar 6.1.11 7.5.4

...and 73 more

📁 Artifacts: Container Scan Reports

🐳 Container Security (Parallel Scan)

Status: ✅ Completed

📊 Combined Findings Summary

🚨 Critical ⚠️ High 🟡 Medium 🔵 Low 📦 Total 🔢 Unique
3 66 44 16 129 125

Scanned: 1 containers | Build Failures: 0

🔍 Detailed Findings by Container

🚨 postman - 129 vulnerabilities (125 unique)

Image: hardening-test-postman:scan-f63a1a25
Digest: @sha256:67c612f16a00318adb0fe58b59257516fd5d897fb62ec35f0f89555c20627836

Combined (Deduplicated)

🚨 Critical ⚠️ High 🟡 Medium 🔵 Low Total Unique
3 66 44 16 129 125
🔷 Trivy Scanner (89 findings, 58 unique)
CVE Severity Package Version Fixed
CVE-2026-33937 🚨 CRITICAL handlebars 4.7.8 4.7.9
CVE-2023-5363 ⚠️ HIGH libcrypto3 3.1.2-r0 3.1.4-r0
CVE-2024-6119 ⚠️ HIGH libcrypto3 3.1.2-r0 3.1.7-r0
CVE-2023-5363 ⚠️ HIGH libssl3 3.1.2-r0 3.1.4-r0
CVE-2024-6119 ⚠️ HIGH libssl3 3.1.2-r0 3.1.7-r0
CVE-2025-26519 ⚠️ HIGH musl 1.2.4-r1 1.2.4-r3
CVE-2025-26519 ⚠️ HIGH musl-utils 1.2.4-r1 1.2.4-r3
CVE-2026-32141 ⚠️ HIGH flatted 3.2.6 3.4.0
CVE-2026-33228 ⚠️ HIGH flatted 3.2.6 3.4.2
CVE-2026-33938 ⚠️ HIGH handlebars 4.7.8 4.7.9
CVE-2026-33939 ⚠️ HIGH handlebars 4.7.8 4.7.9
CVE-2026-33940 ⚠️ HIGH handlebars 4.7.8 4.7.9
CVE-2026-33941 ⚠️ HIGH handlebars 4.7.8 4.7.9
CVE-2024-29415 ⚠️ HIGH ip 2.0.0 N/A
CVE-2026-4800 ⚠️ HIGH lodash 4.17.21 4.18.0
CVE-2026-26996 ⚠️ HIGH minimatch 3.1.2 10.2.1, 9.0.6, 8.0.5, 7.4.7, 6.2.1, 5.1.7, 4.2.4, 3.1.3
CVE-2026-26996 ⚠️ HIGH minimatch 3.1.2 10.2.1, 9.0.6, 8.0.5, 7.4.7, 6.2.1, 5.1.7, 4.2.4, 3.1.3
CVE-2026-27903 ⚠️ HIGH minimatch 3.1.2 10.2.3, 9.0.7, 8.0.6, 7.4.8, 6.2.2, 5.1.8, 4.2.5, 3.1.3
CVE-2026-27903 ⚠️ HIGH minimatch 3.1.2 10.2.3, 9.0.7, 8.0.6, 7.4.8, 6.2.2, 5.1.8, 4.2.5, 3.1.3
CVE-2026-27904 ⚠️ HIGH minimatch 3.1.2 10.2.3, 9.0.7, 8.0.6, 7.4.8, 6.2.2, 5.1.8, 4.2.5, 3.1.4
CVE-2026-27904 ⚠️ HIGH minimatch 3.1.2 10.2.3, 9.0.7, 8.0.6, 7.4.8, 6.2.2, 5.1.8, 4.2.5, 3.1.4
CVE-2026-26996 ⚠️ HIGH minimatch 5.1.0 10.2.1, 9.0.6, 8.0.5, 7.4.7, 6.2.1, 5.1.7, 4.2.4, 3.1.3
CVE-2026-27903 ⚠️ HIGH minimatch 5.1.0 10.2.3, 9.0.7, 8.0.6, 7.4.8, 6.2.2, 5.1.8, 4.2.5, 3.1.3
CVE-2026-27904 ⚠️ HIGH minimatch 5.1.0 10.2.3, 9.0.7, 8.0.6, 7.4.8, 6.2.2, 5.1.8, 4.2.5, 3.1.4
CVE-2025-12816 ⚠️ HIGH node-forge 1.3.1 1.3.2
CVE-2025-66031 ⚠️ HIGH node-forge 1.3.1 1.3.2
CVE-2026-33891 ⚠️ HIGH node-forge 1.3.1 1.4.0
CVE-2026-33894 ⚠️ HIGH node-forge 1.3.1 1.4.0
CVE-2026-33895 ⚠️ HIGH node-forge 1.3.1 1.4.0
CVE-2026-33896 ⚠️ HIGH node-forge 1.3.1 1.4.0
CVE-2022-25883 ⚠️ HIGH semver 7.3.7 7.5.2, 6.3.1, 5.7.2
CVE-2026-23745 ⚠️ HIGH tar 6.1.11 7.5.3
CVE-2026-23950 ⚠️ HIGH tar 6.1.11 7.5.4
CVE-2026-24842 ⚠️ HIGH tar 6.1.11 7.5.7
CVE-2026-26960 ⚠️ HIGH tar 6.1.11 7.5.8
CVE-2026-29786 ⚠️ HIGH tar 6.1.11 7.5.10
CVE-2026-31802 ⚠️ HIGH tar 6.1.11 7.5.11
CVE-2026-27601 ⚠️ HIGH underscore 1.12.1 1.13.8
CVE-2023-42363 🟡 MEDIUM busybox 1.36.1-r2 1.36.1-r7
CVE-2023-42364 🟡 MEDIUM busybox 1.36.1-r2 1.36.1-r7
CVE-2023-42365 🟡 MEDIUM busybox 1.36.1-r2 1.36.1-r7
CVE-2023-42366 🟡 MEDIUM busybox 1.36.1-r2 1.36.1-r6
CVE-2023-42363 🟡 MEDIUM busybox-binsh 1.36.1-r2 1.36.1-r7
CVE-2023-42364 🟡 MEDIUM busybox-binsh 1.36.1-r2 1.36.1-r7
CVE-2023-42365 🟡 MEDIUM busybox-binsh 1.36.1-r2 1.36.1-r7
CVE-2023-42366 🟡 MEDIUM busybox-binsh 1.36.1-r2 1.36.1-r6
CVE-2023-5678 🟡 MEDIUM libcrypto3 3.1.2-r0 3.1.4-r1
CVE-2023-6129 🟡 MEDIUM libcrypto3 3.1.2-r0 3.1.4-r3
CVE-2023-6237 🟡 MEDIUM libcrypto3 3.1.2-r0 3.1.4-r4
CVE-2024-0727 🟡 MEDIUM libcrypto3 3.1.2-r0 3.1.4-r5

...and 39 more

⚓ Grype Scanner (123 findings, 86 unique)
CVE Severity Package Version Fixed
CVE-2024-5535 🚨 CRITICAL libcrypto3 3.1.2-r0 3.1.6-r0
CVE-2024-5535 🚨 CRITICAL libssl3 3.1.2-r0 3.1.6-r0
GHSA-2w6w-674q-4c4q 🚨 CRITICAL handlebars 4.7.8 4.7.9
CVE-2023-44487 ⚠️ HIGH node 16.20.2 18.18.2
GHSA-2p57-rm9w-gvfp ⚠️ HIGH ip 2.0.0 N/A
CVE-2024-27983 ⚠️ HIGH node 16.20.2 18.20.1
CVE-2024-6119 ⚠️ HIGH libcrypto3 3.1.2-r0 3.1.7-r0
CVE-2024-6119 ⚠️ HIGH libssl3 3.1.2-r0 3.1.7-r0
CVE-2023-5363 ⚠️ HIGH libcrypto3 3.1.2-r0 3.1.4-r0
CVE-2023-5363 ⚠️ HIGH libssl3 3.1.2-r0 3.1.4-r0
CVE-2023-46809 ⚠️ HIGH node 16.20.2 18.19.1
GHSA-c2qf-rxjj-qqgw ⚠️ HIGH semver 7.3.7 7.5.2
CVE-2024-21892 ⚠️ HIGH node 16.20.2 18.19.1
CVE-2023-38552 ⚠️ HIGH node 16.20.2 18.18.2
CVE-2024-22019 ⚠️ HIGH node 16.20.2 18.19.1
CVE-2024-4741 ⚠️ HIGH libcrypto3 3.1.2-r0 3.1.6-r0
CVE-2024-4741 ⚠️ HIGH libssl3 3.1.2-r0 3.1.6-r0
CVE-2025-23166 ⚠️ HIGH node 16.20.2 20.19.2
GHSA-554w-wpv2-vw27 ⚠️ HIGH node-forge 1.3.1 1.3.2
GHSA-r5fr-rjxr-66jc ⚠️ HIGH lodash 4.17.21 4.18.0
GHSA-3mfm-83xf-c92r ⚠️ HIGH handlebars 4.7.8 4.7.9
GHSA-5gfm-wpxj-wjgq ⚠️ HIGH node-forge 1.3.1 1.3.2
CVE-2025-59465 ⚠️ HIGH node 16.20.2 20.20.0
GHSA-xhpv-hc6g-r9c6 ⚠️ HIGH handlebars 4.7.8 4.7.9
GHSA-5m6q-g25r-mvwx ⚠️ HIGH node-forge 1.3.1 1.4.0
GHSA-9cx6-37pm-9jff ⚠️ HIGH handlebars 4.7.8 4.7.9
CVE-2026-21637 ⚠️ HIGH node 16.20.2 20.20.0
GHSA-rf6f-7fwh-wjgh ⚠️ HIGH flatted 3.2.6 3.4.2
CVE-2025-55131 ⚠️ HIGH node 16.20.2 20.20.0
CVE-2025-26519 ⚠️ HIGH musl 1.2.4-r1 1.2.4-r3
CVE-2025-26519 ⚠️ HIGH musl-utils 1.2.4-r1 1.2.4-r3
CVE-2025-59466 ⚠️ HIGH node 16.20.2 20.20.0
GHSA-3ppc-4f35-3m26 ⚠️ HIGH minimatch 3.1.2 3.1.3
GHSA-3ppc-4f35-3m26 ⚠️ HIGH minimatch 3.1.2 3.1.3
GHSA-3ppc-4f35-3m26 ⚠️ HIGH minimatch 5.1.0 5.1.7
GHSA-q67f-28xg-22rw ⚠️ HIGH node-forge 1.3.1 1.4.0
GHSA-34x7-hfp2-rc4v ⚠️ HIGH tar 6.1.11 7.5.7
GHSA-2328-f5f3-gj25 ⚠️ HIGH node-forge 1.3.1 1.4.0
CVE-2026-21710 ⚠️ HIGH node 16.20.2 20.20.2
GHSA-ppp5-5v6c-4jwp ⚠️ HIGH node-forge 1.3.1 1.4.0
GHSA-7r86-cg39-jmmj ⚠️ HIGH minimatch 3.1.2 3.1.3
GHSA-7r86-cg39-jmmj ⚠️ HIGH minimatch 3.1.2 3.1.3
GHSA-7r86-cg39-jmmj ⚠️ HIGH minimatch 5.1.0 5.1.8
GHSA-xjpj-3mr7-gcpf ⚠️ HIGH handlebars 4.7.8 4.7.9
GHSA-23c5-xmqv-rm74 ⚠️ HIGH minimatch 3.1.2 3.1.4
GHSA-23c5-xmqv-rm74 ⚠️ HIGH minimatch 3.1.2 3.1.4
GHSA-23c5-xmqv-rm74 ⚠️ HIGH minimatch 5.1.0 5.1.8
GHSA-qpx9-hpmf-5gmw ⚠️ HIGH underscore 1.12.1 1.13.8
GHSA-25h7-pfq9-p65f ⚠️ HIGH flatted 3.2.6 3.4.0
GHSA-r6q2-hw4h-h46w ⚠️ HIGH tar 6.1.11 7.5.4

...and 73 more

📁 Artifacts: Container Scan Reports

🔍 Trivy IaC Scanner

Status: ⏭️ Skipped (no IaC directory found)

🏗️ Checkov IaC Security

Status: ⏭️ Skipped (no IaC directory found)

📦 OSV Dependency Scan

Status: ⚠️ Vulnerabilities found

📊 Severity Summary

🚨 Critical ⚠️ High 🟡 Medium 🔵 Low Total
2 8 9 2 21

🚨 CRITICAL: 2 critical severity vulnerabilities require immediate attention

🔍 Vulnerability Details (21)
🚨 CRITICAL Severity (2)
Package Version Fixed ID Summary
rack-session 2.1.1 2.1.2 GHSA-33qg-7wpp-89cq Rack::Session::Cookie secrets: decrypt failure fallback enables secretless sessi
jsrsasign 11.0.0 11.1.1 GHSA-5jx8-q4cp-rhh6 jsrsasign: Incomplete Comparison Allows DSA Private Key Recovery via Biased Nonc
⚠️ HIGH Severity (8)
Package Version Fixed ID Summary
addressable 2.8.9 2.9.0 GHSA-h27x-rffw-24p4 Addressable has a Regular Expression Denial of Service in Addressable templates
rack 3.2.5 2.2.23 GHSA-8vqr-qjwx-82mw Rack's multipart parsing without Content-Length header allows unbounded chunked
rack 3.2.5 2.2.23 GHSA-h2jq-g4cq-5ppq Rack::Static prefix matching can expose unintended files under the static root
rack 3.2.5 3.1.21 GHSA-v6x5-cg8r-vv6x Rack's multipart header parsing allows Denial of Service via escape-heavy quoted
jsrsasign 11.0.0 11.1.1 GHSA-8g7p-jf3g-gxcp jsrsasign is vulnerable to DoS through Infinite Loop when processing zero or neg
jsrsasign 11.0.0 11.1.1 GHSA-8qwj-4jxw-m8jw jsrsasign: Negative Exponent Handling Leads to Signature Verification Bypass
jsrsasign 11.0.0 11.1.1 GHSA-w8q8-93cx-6h7r jsrsasign: Missing cryptographic validation during DSA signing enables private k
jsrsasign 11.0.0 11.1.1 GHSA-wvqx-v3f6-w8rh jsrsasign: DSA signatures or X.509 certificates can be forged via DSA domain-par
🟡 MEDIUM Severity (9)
Package Version Fixed ID Summary
rack 3.2.5 2.2.23 GHSA-7mqq-6cf9-v2qp Rack has a root directory disclosure via unescaped regex interpolation in Rack::
rack 3.2.5 3.1.21 GHSA-g2pf-xv49-m2h5 Rack::Request accepts invalid Host characters, enabling host allowlist bypass
rack 3.2.5 2.2.23 GHSA-q2ww-5357-x388 Rack has Content-Length mismatch in Rack::Files error responses
rack 3.2.5 2.2.23 GHSA-q4qf-9j86-f5mh Rack:: Static header_rules bypass via URL-encoded paths
rack 3.2.5 3.1.21 GHSA-qfgr-crr9-7r49 Rack: Forwarded Header semicolon injection enables Host and Scheme spoofing
rack 3.2.5 2.2.23 GHSA-qv7j-4883-hwh7 Rack::Sendfile header-based X-Accel-Mapping regex injection enables unauthorized
rack 3.2.5 3.2.6 GHSA-rx22-g9mx-qrhv Rack's improper unfolding of folded multipart headers preserves CRLF in parsed p
rack 3.2.5 2.2.23 GHSA-v569-hp3g-36wr Rack has quadratic complexity in Rack::Utils.select_best_encoding via wildcard A
rack 3.2.5 2.2.23 GHSA-x8cg-fq8g-mxfx Rack's multipart byte range processing allows denial of service via excessive ov
🔵 LOW Severity (2)
Package Version Fixed ID Summary
rack 3.2.5 2.2.23 GHSA-vgpv-f759-9wx3 Rack's greedy multipart boundary parsing can cause parser differentials and WAF
jsrsasign 11.0.0 11.1.1 GHSA-464q-cqxq-xhgr jsrsasign: Division by Zero Allows Invalid JWK Modulus to Cause Deterministic Ze

📋 View full report

📊 Overall Security Score

Total Issues Found: 783

🔴 Attention Required - Multiple security issues found.

📋 Next Steps

  1. Review the detailed scanner results in the collapsible sections above
  2. Download and review security reports from workflow artifacts
  3. Address any critical or high-severity findings
  4. Consider enabling automated dependency updates

Last updated: 4/9/2026, 8:13:54 PM | Commit: f63a1a2 | View Run

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants