Repository navigation
New advisories for [datadog, mcp, sanitize, savon] gems #1274
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
13fe64c
New advisories for [datadog, mcp, sanitize, savon] gems
jasnow 71c60b0
Update gems/mcp/GHSA-4m5j-jjfc-97gx.yml
jasnow f95d425
Update vulnerability details in GHSA-p7cx-x3jr-jj6w.yml
jasnow b8d94e0
Update gems/mcp/GHSA-4m5j-jjfc-97gx.yml
jasnow f0bcab7
Removed duplicate unaffected_versions entry in YAML
jasnow File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,37 @@ | ||
| --- | ||
| gem: datadog | ||
| ghsa: p7cx-x3jr-jj6w | ||
| url: https://github.com/DataDog/dd-trace-rb/security/advisories/GHSA-p7cx-x3jr-jj6w | ||
| title: ReDOS in URL query string obfuscation | ||
| date: 2026-10-13 | ||
| description: | | ||
| ## SUMMARY | ||
|
|
||
| A regular expression used to obfuscate URL query strings can consume | ||
| excessive CPU when processing certain attacker-controlled input. | ||
| This can stall request processing and cause denial of service in | ||
| applications using affected HTTP tracing integrations. | ||
|
|
||
| ## Impact | ||
|
|
||
| Regular expression denial of service (ReDoS) affecting applications | ||
| that process attacker-controlled URL query strings through the | ||
| vulnerable obfuscation pattern. Successful exploitation can cause | ||
| excessive CPU consumption, prolonged request latency, and service | ||
| unavailability. | ||
|
|
||
| Only Ruby versions below 3.2 are affected, and the query obfuscation | ||
| feature is disabled by default. | ||
| cvss_v4: 8.7 | ||
| patched_versions: | ||
| - ">= 2.45.0" | ||
| related: | ||
| url: | ||
| - https://rubygems.org/gems/datadog/versions/2.45.0 | ||
| - https://github.com/DataDog/dd-trace-rb/releases/tag/v2.45.0 | ||
| - https://github.com/DataDog/dd-trace-rb/pull/6441 | ||
| - https://github.com/DataDog/dd-trace-rb/security/advisories/GHSA-p7cx-x3jr-jj6w | ||
| notes: | | ||
| - No CVE from GHSA URL. | ||
| - cvss_v4 from GHSA URL. | ||
| - date from rubygems.org URL. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,51 @@ | ||
| --- | ||
| gem: mcp | ||
| ghsa: 4m5j-jjfc-97gx | ||
| url: https://github.com/modelcontextprotocol/ruby-sdk/security/advisories/GHSA-4m5j-jjfc-97gx | ||
| title: OAuth discovery security check allows SSRF to private hosts over HTTPS | ||
| date: 2026-08-14 | ||
| description: | | ||
| ## SUMMARY | ||
|
|
||
| The OAuth client validates the server-controlled resource_metadata | ||
| URL before fetching it, but the check only requires HTTPS. It does | ||
| not block private, link-local, or cloud-metadata addresses. | ||
| A server can return 401 WWW-Authenticate: Bearer | ||
| resource_metadata="https://169.254.169.254/..." or an internal HTTPS | ||
| URL, and the client issues a GET to it during discovery. This is a | ||
| server-side request forgery against internal HTTPS services and | ||
| cloud metadata endpoints from the client's network position. | ||
|
|
||
| The check also reads only the dotted-decimal spelling of an address, | ||
| so the same destinations stay reachable through the numeric forms | ||
| the resolver accepts. | ||
|
|
||
| ## Impact | ||
|
|
||
| Server-side request forgery (CWE-918), limited to HTTPS targets. A | ||
| server the client connects to can make the client send GET requests | ||
| to internal HTTPS services and cloud metadata endpoints it can route | ||
| to but the attacker cannot. The request fires automatically during | ||
| OAuth discovery, before the user approves anything. The response | ||
| is schema-validated, so this is closer to a blind SSRF than a direct | ||
| read of the target's body, but it still allows reaching internal | ||
| HTTPS services, probing reachability, and triggering GET-based side | ||
| effects. HTTP to non-loopback hosts is already blocked, so the gap | ||
| is specifically HTTPS to private and metadata addresses. | ||
|
|
||
| A suggested fix is to extend the check so it also rejects URLs whose | ||
| host resolves to loopback, link-local, private, or cloud-metadata | ||
| ranges, and ideally require the URL to share an origin with the MCP | ||
| server. The scheme check alone does not prevent SSRF. | ||
| unaffected_versions: | ||
| - "< 0.17.0" | ||
| patched_versions: | ||
| - ">= 1.2.0" | ||
| related: | ||
| url: | ||
| - https://rubygems.org/gems/mcp/versions/1.2.0 | ||
| - https://github.com/modelcontextprotocol/ruby-sdk/releases/tag/v1.2.0 | ||
| - https://github.com/modelcontextprotocol/ruby-sdk/security/advisories/GHSA-4m5j-jjfc-97gx | ||
| notes: | | ||
| - No CVE from GHSA URL. | ||
| - "moderate" severity on GHSA URL, but no cvss numbers. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,46 @@ | ||
| --- | ||
| gem: sanitize | ||
| ghsa: wgw9-qhqg-8hv5 | ||
| url: https://github.com/rgrove/sanitize/security/advisories/GHSA-wgw9-qhqg-8hv5 | ||
| title: CSS property and URL allowlists can be bypassed via | ||
| CSS nesting in stylesheets | ||
| date: 2026-10-21 | ||
| description: | | ||
| ## SUMMARY | ||
|
|
||
| When Sanitize is configured to allow <style> elements, when | ||
| Sanitize::CSS#stylesheet or Sanitize::CSS#tree! is used to sanitize | ||
| a stylesheet directly, or when the output of Sanitize::CSS#properties | ||
| is embedded inside a style rule in a stylesheet, an attacker can | ||
| bypass Sanitize's CSS property allowlist and URL protocol allowlist. | ||
| This is possible because Sanitize doesn't parse stylesheets the way | ||
| browsers that implement CSS Nesting (current versions of all major | ||
| browsers) do. | ||
|
|
||
| ## Impact | ||
|
|
||
| Because the attacker also controls the selector that the smuggled | ||
| declarations apply to, an attacker could: | ||
|
|
||
| Apply arbitrary CSS properties to elements on the page, such as | ||
| overlaying content to mislead users into clicking something (UI redressing). | ||
|
|
||
| Cause the user's browser to load resources from URLs that the CSS | ||
| protocol allowlist was meant to block. Combined with attribute | ||
| selectors, this could be used to exfiltrate data from the page, | ||
| such as the values of form inputs. | ||
|
|
||
| This issue does not allow script execution. | ||
| cvss_v4: 5.3 | ||
| unaffected_versions: | ||
| - "< 3.0.0" | ||
| patched_versions: | ||
| - ">= 7.0.1" | ||
| related: | ||
| url: | ||
| - https://rubygems.org/gems/sanitize/versions/7.0.1 | ||
| - https://github.com/rgrove/sanitize/blob/main/CHANGELOG.md#701-2026-10-21 | ||
| - https://github.com/rgrove/sanitize/security/advisories/GHSA-wgw9-qhqg-8hv5 | ||
| notes: | | ||
| - No CVE from GHSA URL. | ||
| - cvss_v4 from GHSA URL. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,39 @@ | ||
| --- | ||
| gem: savon | ||
| ghsa: x99v-rwvj-g9p5 | ||
| url: https://github.com/savonrb/savon/security/advisories/GHSA-x99v-rwvj-g9p5 | ||
| title: WSDL operation named client overwrites Savon::Model internal | ||
| client accessor, causing unbounded recursion and SystemStackError | ||
| date: 2026-09-09 | ||
| description: | | ||
| ## SUMMARY | ||
|
|
||
| Savon::Model#all_operations generates a class-level method for every | ||
| operation named in the WSDL. A WSDL operation named client normalizes | ||
| to the Ruby method name :client, which overwrites Savon::Model's own | ||
| internal client accessor, and since the generated method body itself | ||
| calls client.call ..., the method now calls itself forever and the | ||
| Ruby process dies with an unhandled SystemStackError. | ||
|
|
||
| ## Impact | ||
|
|
||
| An application that builds a Savon::Model from a WSDL it does not | ||
| fully control, calls all_operations, and later touches model.client | ||
| crashes with an unhandled SystemStackError. SystemStackError is not | ||
| a StandardError, so ordinary rescue blocks do not catch it and the | ||
| failure usually takes the worker process down. Availability only; | ||
| no confidentiality or integrity effect. | ||
| patched_versions: | ||
| - ">= 2.17.5" | ||
| related: | ||
| url: | ||
| - https://rubygems.org/gems/savon/versions/2.17.5 | ||
| - https://github.com/savonrb/savon/releases/tag/v2.17.5 | ||
| - https://github.com/savonrb/savon/blob/main/CHANGELOG.md#2175---2026-09-09 | ||
| - https://github.com/savonrb/savon/security/advisories/GHSA-x99v-rwvj-g9p5 | ||
| notes: | | ||
| - No CVE from GHSA URL. | ||
| - GHSA URL has "Moderate" severity, but no cvss numbers. | ||
| - From GHSA URL: "Confirmed [vulnerability] in shipped releases | ||
| v2.17.1, v2.17.2 and v2.17.4, and on main HEAD | ||
| 544bcaacd5b635f5cc888e2b9acaf55ee40be4e3." |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.