---
id: "CVE-2026-126353"
page: "https://infrastack.ai/live/CVE-2026-126353"
kind: "vulnerability"
aliases: ["CVE-2026-126353"]
title: "Addressable: crafted URI templates can hang a Ruby thread indefinitely"
severity: "medium"
cvss: 5.9
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["addressable", "jruby", "package", "ruby", "truffleruby"]
not_affected_if: ["expand-only", "no-untrusted-template-match", "ruby-3.3-or-later"]
published_at: "2026-11-12T22:19:20+00:00"
first_seen_at: "2026-11-12T22:40:38+00:00"
updated_at: "2026-11-12T22:42:31+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-126353", "first_seen_at": "2026-11-12T22:40:38+00:00"}]
exploit_sources: []
---

# Addressable: crafted URI templates can hang a Ruby thread indefinitely

Link for people: https://infrastack.ai/live/CVE-2026-126353 (this .md is for agents)

Addressable is a Ruby library for parsing and expanding URIs and URI templates. Template#match and Template#extract on an attacker-supplied URI can take polynomial time, tying up a thread and causing denial of service.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the locked version in the Gemfile.lock: `addressable` below `2.9.1` is affected.
- Check whether the Ruby version is before `3.2`, or the app uses JRuby or TruffleRuby 40.0 (or `+` or `#` expressions on MRI Ruby 3.2), since those are the affected runtimes.
- Check whether the app calls Template#match or Template#extract on untrusted input.

## Fix

- `addressable` `2.9.1`

## Timeline

- 2026-11-12T22:40:38+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-126353

## Documents

- [advisory] Vendor advisory: github.com https://github.com/sporkmonger/addressable/security/advisories/GHSA-4w5q-wg7v-w6gp
- [fix] Patch: github.com https://github.com/sporkmonger/addressable/commit/49aecf97bf6f6675717f1078a0b45f95c428e103
- [fix] Release: github.com https://github.com/sporkmonger/addressable/releases/tag/addressable-2.9.1

## From the sources

Addressable is an alternative implementation to the URI implementation that is part of Ruby's standard library. From 2.3.0 until 2.9.1, URI template expressions containing several exploded variables generate ambiguous regular expressions that can divide a run of members among the variables in polynomially many ways. Template#match or Template#extract processing of an attacker-controlled URI can therefore consume a thread and cause denial of service. The flaw affects MRI Ruby before 3.2 and JRuby, TruffleRuby 40.0, and plus or number-sign expressions on MRI Ruby 3.2. MRI Ruby 3.3 and later, URI parsing, and Template#expand are unaffected. This issue is fixed in version 2.9.1.

---

_Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai_
