ruby/uri · Security
URI allows for userinfo Leakage in URI#join, URI#merge, and URI#+
- GHSA ID
- GHSA-22h5-pq3x-2gf2
- CVE ID
- CVE-2025-27221
- Severity
- low
- Published
- Updated
- CVSS
- 3.2 · CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:L/I:N/A:N
- CVSS v3
- 3.2 · CVSS:3.1/AV:L/AC:H/PR:N/UI:N/S:C/C:L/I:N/A:N
- CVSS v4
- 2.1 · CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:L/SI:N/SA:N
Description
There is a possibility for userinfo leakage by in the uri gem. This vulnerability has been assigned the CVE identifier CVE-2025-27221. We recommend upgrading the uri gem.
Details
The methods URI#join, URI#merge, and URI#+ retained userinfo, such as user:password, even after the host is replaced. When generating a URL to a malicious host from a URL containing secret userinfo using these methods, and having someone access that URL, an unintended userinfo leak could occur.
Please update URI gem to version 0.11.3, 0.12.4, 0.13.2, 1.0.3 or later.
Affected versions
uri gem versions < 0.11.3, 0.12.0 to 0.12.3, 0.13.0, 0.13.1 and 1.0.0 to 1.0.2.
Credits
Thanks to Tsubasa Irisawa (lambdasawa) for discovering this issue. Also thanks to nobu for additional fixes of this vulnerability.
CWEs
- CWE-200 · Exposure of Sensitive Information to an Unauthorized Actor
- CWE-212 · Improper Removal of Sensitive Information Before Storage or Transfer
References
- https://github.com/ruby/uri/pull/154 ↗
- https://github.com/ruby/uri/pull/155 ↗
- https://github.com/ruby/uri/pull/156 ↗
- https://github.com/ruby/uri/pull/157 ↗
- https://github.com/rubysec/ruby-advisory-db/blob/master/gems/uri/CVE-2025-27221.yml ↗
- https://www.cve.org/CVERecord?id=CVE-2025-27221 ↗
- https://www.ruby-lang.org/en/news/2025/02/26/security-advisories ↗
- https://nvd.nist.gov/vuln/detail/CVE-2025-27221 ↗
- https://hackerone.com/reports/2957667 ↗
- https://lists.debian.org/debian-lts-announce/2025/05/msg00015.html ↗
- https://lists.debian.org/debian-lts-announce/2025/03/msg00008.html ↗
- https://github.com/advisories/GHSA-22h5-pq3x-2gf2 ↗