Description
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, the pure-Ruby Addressable::IDNA.to_unicode implementation decodes invalid Punycode A-labels instead of returning them unchanged. Labels that decode to ASCII text or fail to convert back to the same A-label can therefore make Addressable::URI#display_uri show a trusted-looking host while host, normalized_host, and the connection target retain the attacker-controlled encoded host. A trusted-name comparison using Addressable::IDNA.to_unicode output can also treat two different hosts as the same without displaying the URI. The native libidn implementation, to_ascii, and normalized_host are unaffected. This issue is fixed in version 2.9.1.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| sporkmonger | addressable | >= 2.0.0, < 2.9.1 | — |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Wolfi
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Wolfi rolling | logstash-9.3 +1 | 9.3.8-r4 | — |
| Wolfi rolling | logstash-9.4 +4 | No fix yet | — |
| Wolfi rolling | logstash-9.4-iamguarded-compat | 9.4.9-r3 | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| RubyGems | addressable | >= 2.0.0, < 2.9.1 | 2.9.1 | GHSA-9crm-g4mf-wc5j |