Skip to content

.Net: Bump Snappier to 1.3.1 to fix NU1903 high-severity vulnerability (GHSA-pggp-6c3x-2xmx)#13960

Merged
rogerbarreto merged 2 commits intomainfrom
copilot/update-vulnerability-fix-version
May 7, 2026
Merged

.Net: Bump Snappier to 1.3.1 to fix NU1903 high-severity vulnerability (GHSA-pggp-6c3x-2xmx)#13960
rogerbarreto merged 2 commits intomainfrom
copilot/update-vulnerability-fix-version

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 7, 2026

Motivation and Context

MongoDB.Driver 3.5.2 transitively introduces Snappier 1.0.0, which carries a high-severity vulnerability (GHSA-pggp-6c3x-2xmx): infinite loop during SnappyStream decompression of malformed framed input. All Snappier versions ≤ 1.3.0 are affected; 1.3.1 is the first patched release. This was blocking the merge queue via NU1903.

Description

  • dotnet/Directory.Packages.props — Add PackageVersion entry pinning Snappier to 1.3.1.
  • dotnet/src/VectorData/MongoDB/MongoDB.csproj — Add explicit PackageReference for Snappier (versionless, resolved via CPM) so NuGet treats it as a direct dependency at 1.3.1, overriding the transitive 1.0.0 from MongoDB.Driver.
  • dotnet/src/VectorData/CosmosMongoDB/CosmosMongoDB.csproj — Same override for the CosmosMongoDB connector.

In NuGet's resolution algorithm, a direct reference at depth 1 wins over a transitive reference at depth 2, so this cleanly forces 1.3.1 without changing the MongoDB.Driver pin itself.

Contribution Checklist

Original prompt

Please investigate a solution to snappier vulnerability fix (update version) and propose a PR with the bump, ideally following the first immediate a non breaking version bump

**Chronological Review:** 1. User asked to analyze PR #13431 (Gemini multimodal tool results in microsoft/semantic-kernel) for gaps 2. Initial analysis identified ~11 gaps with broad scope including OpenAI Assistants, AzureAI, Responses API, MistralAI 3. User invoked ouroboros skill, asked to reassess scoping to Google package only 4. Reassessment: Google connector bypasses FunctionCallsProcessor; only validated regression is OpenAI Responses API 5. User invoked ouroboros to seed the observation; created seed file `pr-13431-followup.seed.yaml` 6. User asked to execute seed + identify pipeline error 7. Implemented 5 file changes; identified pipeline error CS8602 in GeminiRequestTests.cs:809 8. All builds/tests passed; user asked about string→object impact in plan mode 9. Investigation revealed `FunctionCallsProcessor` is `internal sealed`, source-distributed, so blast radius small 10. User confirmed all implemented; ran CI-parity dotnet format via WSL2+Docker (all pass) 11. User asked to commit and push - committed `de08bce99` and pushed to Cozmopolit fork 12. User asked to check PR comments - found 2 Copilot bot review comments 13. User said: add OpenAI test (item 1), reply out-of-scope (item 2) 14. Added OpenAI ChatCompletion test, committed `e9f27d21a`, pushed, replied to both bot comments 15. User asked PR number (13431) 16. User invoked /auto pr_task - PR was green, no action needed 17. User said merge queue failed, asked to investigate 18. Investigation found: NU1903 Snappier 1.0.0 vulnerability blocking merge queue; not caused by our PR 19. **Most recent: User asked "Do we have a fix in main for this already?"** 20. **Investigation confirmed: NO fix in main** - origin/main HEAD `1a5065e5c` unchanged, `MongoDB.Driver 3.5.2` still pinned, no Snappier override, no PRs/issues for Snappier or NU1903 in the repo recently 21. **Offered to open a small fix PR pinning Snappier to a patched version**

Intent Mapping:

Technical Inventory:

  • .NET 10.0, semantic-kernel repo
  • WSL2 + Docker (mcr.microsoft.com/dotnet/sdk:10.0) for CI parity
  • gh CLI for PR/CI operations
  • Git remotes: origin=microsoft, roger=rogerbarreto fork, cozmopolit=Cozmopolit fork (added)
  • Branch: fix/multimodal-tool-results
  • PR head fork: Cozmopolit, maintainerCanModify=true

Code Archaeology:
Files changed in commits de08bce99 + e9f27d21a:

  • dotnet/src/Agents/OpenAI/Internal/ResponseThreadActions.cs — added GetFunctionResultAsString helper
  • dotnet/src/Agents/UnitTests/OpenAI/Internal/ResponseThreadActionsTests.cs — new (3 tests)
  • dotnet/src/Connectors/Connectors.Google/Core/Gemini/Models/GeminiRequest.cs — extracted s_imageFunctionResponseEnvelope
  • dotnet/src/Connectors/Connectors.Google.UnitTests/Core/Gemini/GeminiRequestTests.cs — CS8602 fix
  • dotnet/src/InternalUtilities/connectors/AI/FunctionCalling/FunctionCallsProcessor.cs — XML-doc tightening
  • dotnet/src/Connectors/Connectors.OpenAI.UnitTests/Services/OpenAIChatCompletionServiceTests.cs — added ItSendsImageContentNotSupportedErrorWhenToolResultIsImageContentAsync

Identified vulnerable package: MongoDB.Driver 3.5.2 in dotnet/Directory.Packages.props:173 brings in transitive Snappier 1.0.0

Progress Assessment:

  • ✅ All planned implementation completed
  • ✅ Both bot review comments replied to
  • ✅ All 7 todos done
  • ⚠️ PR cannot merge due to environmental Snappier vulnerability (not our PR's fault)
  • 🔲 User considering whether to open a separate Snappier fix PR

Context Validation:

  • PR state: OPEN, MERGEABLE, CLEAN, APPROVED (markwallace-microsoft)
  • HEAD SHA: e9f27d21a85a8b97ee5f29619b23b82a03e313ff
  • All required CI checks pass on PR head
  • Merge queue attempt failed at 2026-05-07T10:01:31, removed by github-merge-queue[bot] at 10:08:05
  • Failed merge_group run: 25489152862

Recent Commands Analysis:
Most recent two tool batches:

  1. git fetch origin main; git log origin/main --since="2026-05-06T15:00:00Z" --oneline → only 1a5065e5c (yesterday's commit)
  2. git show origin/main:dotnet/Directory.Packages.props | grep Snappier|MongoDB.Driver → only MongoDB.Driver 3.5.2, no Snappier override
  3. gh search prs/issues --state all "Snappier" → command failed (invalid all state)
  4. gh api search/issues?q=Snappier+repo:microsoft/semantic-kernel → empty results
  5. gh api search/issues?q=NU1903+repo:microsoft/semantic-kernel → 3 historical results from 2024, all unrelated

Final response: confirmed NO fix in main, offered to open a small fix PR pinning Snappier.

1. Conversation Overview: - Primary Objectives: - Analyze SK PR #13431 (G...

Created from Copilot CLI via the copilot delegate command.

Copilot AI changed the title [WIP] Update version for snappier vulnerability fix .Net: Bump Snappier to 1.3.1 to fix NU1903 high-severity vulnerability (GHSA-pggp-6c3x-2xmx) May 7, 2026
Copilot AI requested a review from rogerbarreto May 7, 2026 10:33
@rogerbarreto rogerbarreto marked this pull request as ready for review May 7, 2026 10:42
@rogerbarreto rogerbarreto requested a review from a team as a code owner May 7, 2026 10:42
Copilot AI review requested due to automatic review settings May 7, 2026 10:42
@moonbox3 moonbox3 added the .NET Issue or Pull requests regarding .NET code label May 7, 2026
Copilot AI temporarily deployed to integration May 7, 2026 10:42 Inactive
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated Code Review

Reviewers: 4 | Confidence: 94% | Result: All clear

Reviewed: Correctness, Security Reliability, Test Coverage, Design Approach


Automated review by rogerbarreto's agents

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Pins the Snappier dependency to a patched version to address NU1903 / GHSA-pggp-6c3x-2xmx introduced transitively via MongoDB.Driver, ensuring affected VectorData MongoDB connectors restore a safe version without changing the MongoDB.Driver pin.

Changes:

  • Add a CPM PackageVersion entry for Snappier 1.3.1.
  • Add direct (versionless, CPM-resolved) PackageReference entries to Snappier in the MongoDB and CosmosMongoDB VectorData connector projects to override the vulnerable transitive version.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

File Description
dotnet/Directory.Packages.props Central package version pin for Snappier 1.3.1.
dotnet/src/VectorData/MongoDB/MongoDB.csproj Adds direct Snappier reference so NuGet resolves the patched version for this connector.
dotnet/src/VectorData/CosmosMongoDB/CosmosMongoDB.csproj Adds direct Snappier reference so NuGet resolves the patched version for this connector.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread dotnet/Directory.Packages.props
Comment thread dotnet/src/VectorData/MongoDB/MongoDB.csproj
Comment thread dotnet/src/VectorData/CosmosMongoDB/CosmosMongoDB.csproj
@rogerbarreto rogerbarreto enabled auto-merge May 7, 2026 11:02
@rogerbarreto rogerbarreto added this pull request to the merge queue May 7, 2026
@github-merge-queue github-merge-queue Bot removed this pull request from the merge queue due to failed status checks May 7, 2026
@rogerbarreto rogerbarreto added this pull request to the merge queue May 7, 2026
Merged via the queue into main with commit fb10d92 May 7, 2026
28 of 31 checks passed
@rogerbarreto rogerbarreto deleted the copilot/update-vulnerability-fix-version branch May 7, 2026 13:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

.NET Issue or Pull requests regarding .NET code

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

6 participants