Skip to content
Heist/ feed
Back to feed
HighFix available

ruby-addressable — security advisory

Type: advisorySources: OSVAdvisory ID: UBUNTU-CVE-2026-35611

Addressable is an alternative implementation to the URI implementation that is part of Ruby's standard library. From 2.3.0 to before 2.9.0, within the URI template implementation in Addressable, two classes of URI template generate regular expressions vulnerable to catastrophic backtracking. Templates using the * (explode) modifier with any expansion operator (e.g., {foo*}, {+var*}, {#var*}, {/var*}, {.var*}, {;var*}, {?var*}, {&var*}) generate patterns with nested unbounded quantifiers that are O(2^n) when matched against a maliciously crafted URI. Templates using multiple variables with the + or # operators (e.g., {+v1,v2,v3}) generate patterns with O(n^k) complexity due to the comma separator being within the matched character class, causing ambiguous backtracking across k variables. When matched against a maliciously crafted URI, this can result in catastrophic backtracking and uncontrolled resource consumption, leading to denial of service. This vulnerability is fixed in 2.9.0.

Products
ruby-addressable
Affected versions
2.3.8-1, 2.5.1-2, 2.5.2-1, 2.7.0-1, 2.7.0-2, 2.8.0-3, 2.8.1-1, 2.8.5-1, 2.8.7-2, 2.9.0-1
Fixed versions
2.3.8-1ubuntu0.1~esm1, 2.5.2-1ubuntu0.1~esm1, 2.7.0-1ubuntu0.1~esm1, 2.8.0-3ubuntu0.1~esm1, 2.8.5-1ubuntu0.1~esm1, 2.8.7-2ubuntu0.26.04.1~esm1
CVEs
CVE-2026-35611
Confirmed fixed CVEs
Not specified
Updated in this feed
31 Oct 2026, 02:10 UTC · Revision 1

Source evidence

UBUNTU-CVE-2026-35611

core-osv · Original source

Published 7 Apr 2026, 17:16 UTC

Addressable is an alternative implementation to the URI implementation that is part of Ruby's standard library. From 2.3.0 to before 2.9.0, within the URI template implementation in Addressable, two classes of URI template generate regular expressions vulnerable to catastrophic backtracking. Templates using the * (explode) modifier with any expansion operator (e.g., {foo*}, {+var*}, {#var*}, {/var*}, {.var*}, {;var*}, {?var*}, {&var*}) generate patterns with nested unbounded quantifiers that are O(2^n) when matched against a maliciously crafted URI. Templates using multiple variables with the + or # operators (e.g., {+v1,v2,v3}) generate patterns with O(n^k) complexity due to the comma separator being within the matched character class, causing ambiguous backtracking across k variables. When matched against a maliciously crafted URI, this can result in catastrophic backtracking and uncontrolled resource consumption, leading to denial of service. This vulnerability is fixed in 2.9.0.

osv:UBUNTU-CVE-2026-35611

ruby-addressable

Fixed versions: 2.3.8-1ubuntu0.1~esm1

ruby-addressable

Fixed versions: 2.5.2-1ubuntu0.1~esm1

ruby-addressable

Fixed versions: 2.7.0-1ubuntu0.1~esm1

ruby-addressable

Fixed versions: 2.8.0-3ubuntu0.1~esm1

ruby-addressable

Fixed versions: 2.8.5-1ubuntu0.1~esm1

ruby-addressable

Fixed versions: Not specified

ruby-addressable

Fixed versions: Not specified

ruby-addressable

Fixed versions: 2.8.7-2ubuntu0.26.04.1~esm1

Complete source record
{
  "id": "7bf800005b97ed9e9b2fafbeecc2ed6c589a81ed282f66239ff01882a55066fb",
  "url": "https://osv.dev/vulnerability/UBUNTU-CVE-2026-35611",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "UBUNTU-CVE-2026-35611",
    "summary": "Addressable is an alternative implementation to the URI implementation that is part of Ruby's standard library. From 2.3.0 to before 2.9.0, within the URI template implementation in Addressable, two classes of URI template generate regular expressions vulnerable to catastrophic backtracking. Templates using the * (explode) modifier with any expansion operator (e.g., {foo*}, {+var*}, {#var*}, {/var*}, {.var*}, {;var*}, {?var*}, {&var*}) generate patterns with nested unbounded quantifiers that are O(2^n) when matched against a maliciously crafted URI. Templates using multiple variables with the + or # operators (e.g., {+v1,v2,v3}) generate patterns with O(n^k) complexity due to the comma separator being within the matched character class, causing ambiguous backtracking across k variables. When matched against a maliciously crafted URI, this can result in catastrophic backtracking and uncontrolled resource consumption, leading to denial of service. This vulnerability is fixed in 2.9.0.",
    "evidence": "osv:UBUNTU-CVE-2026-35611",
    "products": [
      {
        "name": {
          "value": "ruby-addressable",
          "evidence": "/affected/0/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "2.3.8-1ubuntu0.1~esm1",
            "evidence": "/affected/0/ranges"
          }
        ],
        "affected_versions": [
          {
            "value": "2.3.8-1",
            "evidence": "/affected/0/versions"
          }
        ]
      },
      {
        "name": {
          "value": "ruby-addressable",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "2.5.2-1ubuntu0.1~esm1",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": [
          {
            "value": "2.5.1-2",
            "evidence": "/affected/1/versions"
          },
          {
            "value": "2.5.2-1",
            "evidence": "/affected/1/versions"
          }
        ]
      },
      {
        "name": {
          "value": "ruby-addressable",
          "evidence": "/affected/2/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "2.7.0-1ubuntu0.1~esm1",
            "evidence": "/affected/2/ranges"
          }
        ],
        "affected_versions": [
          {
            "value": "2.5.2-1",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "2.7.0-1",
            "evidence": "/affected/2/versions"
          }
        ]
      },
      {
        "name": {
          "value": "ruby-addressable",
          "evidence": "/affected/3/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "2.8.0-3ubuntu0.1~esm1",
            "evidence": "/affected/3/ranges"
          }
        ],
        "affected_versions": [
          {
            "value": "2.7.0-2",
            "evidence": "/affected/3/versions"
          },
          {
            "value": "2.8.0-3",
            "evidence": "/affected/3/versions"
          }
        ]
      },
      {
        "name": {
          "value": "ruby-addressable",
          "evidence": "/affected/4/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "2.8.5-1ubuntu0.1~esm1",
            "evidence": "/affected/4/ranges"
          }
        ],
        "affected_versions": [
          {
            "value": "2.8.1-1",
            "evidence": "/affected/4/versions"
          },
          {
            "value": "2.8.5-1",
            "evidence": "/affected/4/versions"
          }
        ]
      },
      {
        "name": {
          "value": "ruby-addressable",
          "evidence": "/affected/5/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "2.8.5-1",
            "evidence": "/affected/5/versions"
          },
          {
            "value": "2.8.7-2",
            "evidence": "/affected/5/versions"
          }
        ]
      },
      {
        "name": {
          "value": "ruby-addressable",
          "evidence": "/affected/6/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "2.8.7-2",
            "evidence": "/affected/6/versions"
          },
          {
            "value": "2.9.0-1",
            "evidence": "/affected/6/versions"
          }
        ]
      },
      {
        "name": {
          "value": "ruby-addressable",
          "evidence": "/affected/7/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "2.8.7-2ubuntu0.26.04.1~esm1",
            "evidence": "/affected/7/ranges"
          }
        ],
        "affected_versions": [
          {
            "value": "2.8.7-2",
            "evidence": "/affected/7/versions"
          }
        ]
      }
    ],
    "severity": "high",
    "structured": {
      "id": "UBUNTU-CVE-2026-35611",
      "aliases": [
        "UBUNTU-CVE-2026-35611"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"
        },
        {
          "type": "Ubuntu",
          "score": "medium"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "2.3.8-1ubuntu0.1~esm1"
                }
              ]
            }
          ],
          "package": {
            "name": "ruby-addressable",
            "purl": "pkg:deb/ubuntu/ruby-addressable?arch=source&distro=esm-apps-legacy%2Fxenial",
            "ecosystem": "Ubuntu:Pro:16.04:LTS"
          },
          "versions": [
            "2.3.8-1"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-35611.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "ruby-addressable",
                "binary_version": "2.3.8-1ubuntu0.1~esm1"
              }
            ],
            "availability": "Available with Ubuntu Pro with Legacy support add-on: https://ubuntu.com/pro"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "2.5.2-1ubuntu0.1~esm1"
                }
              ]
            }
          ],
          "package": {
            "name": "ruby-addressable",
            "purl": "pkg:deb/ubuntu/ruby-addressable?arch=source&distro=esm-apps%2Fbionic",
            "ecosystem": "Ubuntu:Pro:18.04:LTS"
          },
          "versions": [
            "2.5.1-2",
            "2.5.2-1"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-35611.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "ruby-addressable",
                "binary_version": "2.5.2-1ubuntu0.1~esm1"
              }
            ],
            "availability": "Available with Ubuntu Pro: https://ubuntu.com/pro"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "2.7.0-1ubuntu0.1~esm1"
                }
              ]
            }
          ],
          "package": {
            "name": "ruby-addressable",
            "purl": "pkg:deb/ubuntu/ruby-addressable?arch=source&distro=esm-apps%2Ffocal",
            "ecosystem": "Ubuntu:Pro:20.04:LTS"
          },
          "versions": [
            "2.5.2-1",
            "2.7.0-1"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-35611.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "ruby-addressable",
                "binary_version": "2.7.0-1ubuntu0.1~esm1"
              }
            ],
            "availability": "Available with Ubuntu Pro: https://ubuntu.com/pro"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "2.8.0-3ubuntu0.1~esm1"
                }
              ]
            }
          ],
          "package": {
            "name": "ruby-addressable",
            "purl": "pkg:deb/ubuntu/ruby-addressable?arch=source&distro=esm-apps%2Fjammy",
            "ecosystem": "Ubuntu:Pro:22.04:LTS"
          },
          "versions": [
            "2.7.0-2",
            "2.8.0-3"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-35611.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "ruby-addressable",
                "binary_version": "2.8.0-3ubuntu0.1~esm1"
              }
            ],
            "availability": "Available with Ubuntu Pro: https://ubuntu.com/pro"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "2.8.5-1ubuntu0.1~esm1"
                }
              ]
            }
          ],
          "package": {
            "name": "ruby-addressable",
            "purl": "pkg:deb/ubuntu/ruby-addressable?arch=source&distro=esm-apps%2Fnoble",
            "ecosystem": "Ubuntu:Pro:24.04:LTS"
          },
          "versions": [
            "2.8.1-1",
            "2.8.5-1"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-35611.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "ruby-addressable",
                "binary_version": "2.8.5-1ubuntu0.1~esm1"
              }
            ],
            "availability": "Available with Ubuntu Pro: https://ubuntu.com/pro"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "ruby-addressable",
            "purl": "pkg:deb/ubuntu/ruby-addressable?arch=source&distro=questing",
            "ecosystem": "Ubuntu:25.10"
          },
          "versions": [
            "2.8.5-1",
            "2.8.7-2"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-35611.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "ruby-addressable",
                "binary_version": "2.8.7-2"
              }
            ]
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "ruby-addressable",
            "purl": "pkg:deb/ubuntu/ruby-addressable?arch=source&distro=stonking",
            "ecosystem": "Ubuntu:26.10"
          },
          "versions": [
            "2.8.7-2",
            "2.9.0-1"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-35611.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "ruby-addressable",
                "binary_version": "2.9.0-1"
              }
            ]
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "2.8.7-2ubuntu0.26.04.1~esm1"
                }
              ]
            }
          ],
          "package": {
            "name": "ruby-addressable",
            "purl": "pkg:deb/ubuntu/ruby-addressable?arch=source&distro=esm-apps%2Fresolute",
            "ecosystem": "Ubuntu:Pro:26.04:LTS"
          },
          "versions": [
            "2.8.7-2"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-35611.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "ruby-addressable",
                "binary_version": "2.8.7-2ubuntu0.26.04.1~esm1"
              }
            ],
            "availability": "Available with Ubuntu Pro: https://ubuntu.com/pro"
          }
        }
      ],
      "modified": "2026-10-17T12:58:13.508150094Z",
      "provider": "osv",
      "upstream": [
        "CVE-2026-35611"
      ],
      "references": [
        "https://ubuntu.com/security/CVE-2026-35611",
        "https://www.cve.org/CVERecord?id=CVE-2026-35611",
        "https://github.com/sporkmonger/addressable/security/advisories/GHSA-h27x-rffw-24p4",
        "https://github.com/sporkmonger/addressable/commit/c87f768f22ab00376ed2f8cb106f59c9d0652d3a",
        "https://github.com/sporkmonger/addressable/commit/0afcb0b9672bee301e5e96ed850fec05b2fcabb0",
        "https://github.com/sporkmonger/addressable/commit/91915c1f7aafa3e2c9f42e2f4e21d948c7a861b8",
        "https://ubuntu.com/security/notices/USN-8515-1"
      ]
    },
    "related_cves": [
      {
        "value": "CVE-2026-35611",
        "evidence": "/upstream"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 358384,
  "published_at": "2026-04-07T17:16:00+00:00"
}