Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions gems/datadog/GHSA-p7cx-x3jr-jj6w.yml
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.
51 changes: 51 additions & 0 deletions gems/mcp/GHSA-4m5j-jjfc-97gx.yml
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:
Comment thread
jasnow marked this conversation as resolved.
- ">= 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.
46 changes: 46 additions & 0 deletions gems/sanitize/GHSA-wgw9-qhqg-8hv5.yml
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.
39 changes: 39 additions & 0 deletions gems/savon/GHSA-x99v-rwvj-g9p5.yml
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."
Loading