# CVE-2026-126349: Addressable display_uri can show misleading hosts containing bidi and invisible characters

Source: https://junglewise.ai/threats/cve-2026-126349-addressable-is-an-alternative-implementation-to-the-uri  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-11-12  
License: CC BY 4.0 with a link back

CVE-2026-126349 · Severity: low · CVSS 3.1 · Published 2026-11-12

Addressable is an alternative implementation to the URI implementation that is part of Ruby's standard library. From 2.0.0 until 2.9.1, Addressable::IDNA.to_unicode can decode Punycode labels that contain bidirectional controls, zero-width characters, control characters, or other default-ignorable format characters. Addressable::URI#display_uri can consequently show a reordered or visually indistinguishable hostname even though host, normalized_host, and network connections use the original encoded hostname. The pure-Ruby backend accepts the full prohibited set, while the native libidn backend is affected from 2.5.2 for characters added after Unicode 3.2. This issue is fixed in version 2.9.1.

Technologies: [addressable (RubyGems)](https://junglewise.ai/threats/technologies/addressable). Vendors: [RubyGems](https://junglewise.ai/threats/vendors/rubygems).

## Quick answers

**Is CVE-2026-126349 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-126349 being exploited in the wild.

**How severe is CVE-2026-126349?** Low severity, with a CVSS score of 3.1, published 12 November 2026.

**Which products and versions are affected?** addressable (RubyGems) >= 2.0.0, < 2.9.1.

**Is there a fix for CVE-2026-126349?** No fixed version is recorded yet. Check the vendor's advisory in the references below. If you run it, Junglewise drafts a mitigation that fits your setup and applies it once you approve, with senior security engineers behind it.

**Am I affected by CVE-2026-126349?** Check whether you run addressable (RubyGems) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## Affected products

- addressable (RubyGems) >= 2.0.0, < 2.9.1

## Identifiers

- CVE-2026-126349
- GHSA-539f-xcgw-2gjg

## Related threats

- [Addressable URI.normalize_path path traversal and bypass](https://junglewise.ai/threats/cve-2026-126354-addressable-uri-normalization-resolves-some-dotted-path-segments)
- [Addressable URI template ReDoS denial of service](https://junglewise.ai/threats/cve-2026-126352-addressable-is-an-alternative-implementation-to-the-uri)
- [Addressable URI path normalization denial of service](https://junglewise.ai/threats/cve-2026-126351-addressable-is-an-alternative-implementation-to-the-uri)
- [Addressable regular expression denial of service in URI template matching](https://junglewise.ai/threats/cve-2026-126350-addressable-is-an-alternative-implementation-to-the-uri)
- [Addressable punycode decoding host spoofing](https://junglewise.ai/threats/cve-2026-126348-addressable-is-an-alternative-implementation-to-the-uri)
