Skip to content

fix(container): bump PowerShell to 7.5.11 in SDK and API - #12811

Merged
pedrooot merged 1 commit into
masterfrom
fix/container-powershell-dotnet-cve
Sep 15, 2026
Merged

pedrooot merged 1 commit into
masterfrom
fix/container-powershell-dotnet-cve

Conversation

@pedrooot

@pedrooot pedrooot commented Sep 15, 2026

Copy link
Copy Markdown
Member

Context

The SDK and API container checks fail at "Check for blocking vulnerabilities" with HIGH CVE-2026-62901 Microsoft.NETCore.App.Runtime.linux-x64 9.0.18, a denial of service in System.Net.WebSockets fixed in .NET 9.0.19. That runtime ships inside the PowerShell 7.5.9 tarball both images install. The finding was suppressed in .trivyignore.yaml because no PowerShell release carried the fix, with expired_at: 2026-09-15. The suppression expired today, so every PR that runs the container scan now fails, including backport/v5.41/pr-12717. PowerShell 7.5.10 and 7.5.11 have been released since then with the patched runtime.

Description

Bumps PowerShell from 7.5.9 to 7.5.11 in Dockerfile and api/Dockerfile. The 7.5.11 tarballs bundle .NET runtime 9.0.20 on both linux-x64 and linux-arm64, as declared in pwsh.deps.json, which is what Trivy reads. The bump stays on the 7.5 line the M365 PowerShell modules target (see #12698). The new SHA256 values were computed from the downloaded tarballs and match both the release notes and the GitHub asset digests.

The expired CVE-2026-62901 suppression is removed. The CVE-2026-71556 (go-git) suppression expired the same day and is also removed: Trivy 0.74.0, the version the images ship, already pins go-git 5.19.2, so the entry no longer matches anything.

A changelog fragment is added for each image (SDK and API).

Steps to review

Check the bundled runtime and scan the new tarball with the flags the container checks use:

curl -sSLO https://github.com/PowerShell/PowerShell/releases/download/v7.5.11/powershell-7.5.11-linux-x64.tar.gz
shasum -a 256 powershell-7.5.11-linux-x64.tar.gz   # 82a8b13d...ba9d8
mkdir pwsh && tar zxf powershell-7.5.11-linux-x64.tar.gz -C pwsh
grep -o 'runtimepack.Microsoft.NETCore.App.Runtime.linux-x64/[0-9.]*' pwsh/pwsh.deps.json   # 9.0.20
trivy rootfs --scanners vuln --severity CRITICAL,HIGH --ignore-unfixed --ignorefile .trivyignore.yaml pwsh

The scan reports no HIGH or CRITICAL findings. Running the same scan against the 7.5.9 tarball reproduces CVE-2026-62901, and the arm64 tarball gives the same clean result. sdk-container-checks and api-container-checks on this PR build both images and run the full scan.

Checklist

Community Checklist

SDK/CLI

  • Are there new checks included in this PR? No
    • If so, do we need to update permissions for the provider? Please review this carefully.

UI

  • All issue/task requirements work as expected on the UI
  • If this PR adds or updates npm dependencies, include package-health evidence (maintenance, popularity, known vulnerabilities, license, release age) and explain why existing/native alternatives are insufficient.
  • Screenshots/Video of the functionality flow (if applicable) - Mobile (X < 640px)
  • Screenshots/Video of the functionality flow (if applicable) - Table (640px > X < 1024px)
  • Screenshots/Video of the functionality flow (if applicable) - Desktop (X > 1024px)
  • Ensure a changelog fragment is added under ui/changelog.d/, if applicable.

API

  • All issue/task requirements work as expected on the API
  • Endpoint response output (if applicable)
  • EXPLAIN ANALYZE output for new/modified queries or indexes (if applicable)
  • Performance test results (if applicable)
  • Any other relevant evidence of the implementation (if applicable)
  • Verify if API specs need to be regenerated.
  • Check if version updates are required (e.g., specs, uv, etc.).
  • Ensure a changelog fragment is added under api/changelog.d/, if applicable.

MCP Server

  • All issue/task requirements work as expected on the MCP Server
  • Ensure a changelog fragment is added under mcp_server/changelog.d/, if applicable.

License

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Summary by CodeRabbit

  • Security

    • Updated container images to PowerShell 7.5.11, including .NET runtime 9.0.20.
    • Addressed CVE-2026-62901 in the API and SDK images.
    • Removed expired vulnerability suppressions, allowing affected findings to be reported again.
  • Maintenance

    • Updated AMD64 and ARM64 image integrity checks for the new PowerShell release.
    • Added release documentation for the container image security updates.

@pedrooot
pedrooot requested review from a team as code owners September 15, 2026 07:31
@github-actions

Copy link
Copy Markdown
Contributor

✅ All required changelog fragments are present.

@github-actions

Copy link
Copy Markdown
Contributor

No Conflicts

No conflict markers, and the branch merges cleanly into its base.

@coderabbitai

coderabbitai Bot commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Advanced

Run ID: b28ad16d-300a-4cb0-aa20-c0ecb3027cd8

📥 Commits

Reviewing files that changed from the base of the PR and between 3860cd3 and 28c72fe.

📒 Files selected for processing (5)
  • .trivyignore.yaml
  • Dockerfile
  • api/Dockerfile
  • api/changelog.d/api-image-powershell-dotnet-cve.security.md
  • prowler/changelog.d/sdk-image-powershell-dotnet-cve.security.md
💤 Files with no reviewable changes (1)
  • .trivyignore.yaml

Included review availability: Your plan provides up to 10 included reviews per hour; 7 remain after this review.


📝 Walkthrough

Walkthrough

The root and API Dockerfiles now use PowerShell 7.5.11 with matching checksums. Changelog entries record the update. Two expired Trivy suppressions were removed.

Changes

Security image maintenance

Layer / File(s) Summary
PowerShell image upgrade
Dockerfile, api/Dockerfile, api/changelog.d/..., prowler/changelog.d/...
Both Dockerfiles now use PowerShell 7.5.11 and matching AMD64 and ARM64 checksums. Changelogs record the .NET runtime 9.0.20 update and CVE-2026-62901 patch.
Expired suppression cleanup
.trivyignore.yaml
Removed expired suppressions for CVE-2026-62901 and CVE-2026-71556.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested reviewers: cesararroba

Merge Risk: ⚪ Minimal · up to 28c72

The PR updates both container images to PowerShell 7.5.11 with matching checksums and removes expired vulnerability suppressions; no merge-blocking risk is identified.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly and concisely describes the main change: updating PowerShell to 7.5.11 in the SDK and API container images.
Description check ✅ Passed The description is complete and relevant. It provides context, change details, review steps, validation commands, checklist status, and changelog information.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/container-powershell-dotnet-cve

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

🔒 Container Security Scan

Image: prowler-mcp:462b8c4
Last scan: 2026-09-15 07:33:16 UTC

✅ No Vulnerabilities Detected

The container image passed all security checks. No known CVEs were found.

📋 Resources:

@github-actions

Copy link
Copy Markdown
Contributor

🔎 Container Security Scan (Grype)

Image: prowler-mcp:462b8c4
Last scan: 2026-09-15 07:34:36 UTC

✅ Nothing Blocking

No findings at critical or high severity.

Not blocking at this cutoff — medium: 8, low: 4.

3 finding(s) excluded by .grype.yaml, each with a documented reason.


📋 Resources:

@github-actions

Copy link
Copy Markdown
Contributor

🔒 Container Security Scan

Image: prowler-ui:462b8c4
Last scan: 2026-09-15 07:36:29 UTC

✅ No Vulnerabilities Detected

The container image passed all security checks. No known CVEs were found.

📋 Resources:

@github-actions

Copy link
Copy Markdown
Contributor

🔎 Container Security Scan (Grype)

Image: prowler-ui:462b8c4
Last scan: 2026-09-15 07:36:51 UTC

✅ Nothing Blocking

No findings at critical or high severity.


📋 Resources:

@github-actions

Copy link
Copy Markdown
Contributor

🔒 Container Security Scan

Image: prowler-api:462b8c4
Last scan: 2026-09-15 07:36:55 UTC

✅ No Vulnerabilities Detected

The container image passed all security checks. No known CVEs were found.

📋 Resources:

@github-actions

Copy link
Copy Markdown
Contributor

🔎 Container Security Scan (Grype)

Image: prowler-api:462b8c4
Last scan: 2026-09-15 07:38:04 UTC

✅ Nothing Blocking

No findings at critical or high severity.

Not blocking at this cutoff — medium: 24, low: 9, negligible: 1.

65 finding(s) excluded by .grype.yaml, each with a documented reason.


📋 Resources:

@github-actions

Copy link
Copy Markdown
Contributor

🔒 Container Security Scan

Image: prowler:462b8c4
Last scan: 2026-09-15 07:38:47 UTC

✅ No Vulnerabilities Detected

The container image passed all security checks. No known CVEs were found.

📋 Resources:

@codecov

codecov Bot commented Sep 15, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.71%. Comparing base (3860cd3) to head (28c72fe).

Additional details and impacted files
@@             Coverage Diff             @@
##           master   #12811       +/-   ##
===========================================
+ Coverage   54.34%   94.71%   +40.36%     
===========================================
  Files        1337      272     -1065     
  Lines       82828    42322    -40506     
===========================================
- Hits        45017    40085     -4932     
+ Misses      37811     2237    -35574     
Flag Coverage Δ
api 94.71% <ø> (ø)
prowler-py3.10-aws ?
prowler-py3.10-config ?
prowler-py3.10-external ?
prowler-py3.11-aws ?
prowler-py3.11-config ?
prowler-py3.11-external ?
prowler-py3.12-aws ?
prowler-py3.12-config ?
prowler-py3.12-external ?
prowler-py3.13-aws ?
prowler-py3.13-config ?
prowler-py3.13-external ?

Flags with carried forward coverage won't be shown. Click here to find out more.

Components Coverage Δ
prowler ∅ <ø> (∅)
api 94.71% <ø> (ø)
mcp_server ∅ <ø> (∅)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

Copy link
Copy Markdown
Contributor

🔎 Container Security Scan (Grype)

Image: prowler:462b8c4
Last scan: 2026-09-15 07:41:08 UTC

✅ Nothing Blocking

No findings at critical or high severity.

Not blocking at this cutoff — medium: 20, low: 5, negligible: 1.

80 finding(s) excluded by .grype.yaml, each with a documented reason.


📋 Resources:

@pedrooot
pedrooot merged commit 682353e into master Sep 15, 2026
53 checks passed
@pedrooot
pedrooot deleted the fix/container-powershell-dotnet-cve branch September 15, 2026 07:44
@cesararroba cesararroba added the backport-to-v5.42 Backport PR to the v5.42 branch label Sep 16, 2026
@prowler-bot prowler-bot added the was-backported The PR was successfully backported to the target branch label Sep 16, 2026
@prowler-bot

Copy link
Copy Markdown
Collaborator

💚 All backports created successfully

Status Branch Result
v5.42

Questions ?

Please refer to the Backport tool documentation and see the Github Action logs for details

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

Labels

backport-to-v5.42 Backport PR to the v5.42 branch component/api was-backported The PR was successfully backported to the target branch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants