CVE-2023-28628 is a medium-severity (CVSS 5.4) CWE-706 vulnerability in lambdaisland:uri. 1 public exploit or proof-of-concept reference is indexed, so weaponization risk is real. A fix is available for lambdaisland:uri — see the affected versions and patch details below.
`authority-regex` returns the wrong authority in lambdaisland/uri
Exploitation Status
Proof-of-concept exploit code exists
- CISA’s SSVC triage found public proof-of-concept exploit code for this CVE, though no confirmed active exploitation.
Exploitation and automatability from CISA’s SSVC triage for CVE-2023-28628.
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
Where this sits among everything scored
Real-World Exposure
lambdaisland:uriReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Maven packages — download data is not available via public APIs for these ecosystems.
Description
Summary
authority-regex allows an attacker to send malicious URLs to be parsed by the lambdaisland/uri and return the wrong authority. This issue is similar to CVE-2020-8910.
Details
This regex doesn't handle the backslash (\) character in the username correctly, leading to a wrong output.
Payload: https://example.com\\@google.com
The returned host is google.com, but the correct host should be example.com.
urllib3 (Python) and google-closure-library (Javascript) return example.com as the host. Here the correct (or current) regex used by google-closure-library:
PoC
(ns poc.core)
(require '[lambdaisland.uri :refer (uri)])
(def myurl "https://example.com\\@google.com")
(defn -main
[]
(println myurl)
(println (:host (uri myurl)))
)
Impact
The library returns the wrong authority, and it can be abused to bypass host restrictions.
Reference
WHATWG Living URL spec, section 4.4 URL Parsing, host state: https://url.spec.whatwg.org/#url-parsing
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| ☕Maven | lambdaisland:uri | all versions | 1.14.120lambdaisland:uri:1.14.120 |
Affected Products
urilambdaislandResearch use only. For defensive security, authorized penetration testing, and academic research only. Never execute exploit code against systems without explicit written authorization.
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for lambdaisland:uri, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update lambdaisland:uri to 1.14.120 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2023-28628 is resolved across your whole dependency graph.
Workarounds
Stop reflecting attacker-controlled destinations: resolve every redirect target against an allowlist of paths or hosts you own, prefer a server-side key over a full URL in the request, and reject absolute URLs entirely where the flow only ever needs a relative one.
Frequently Asked Questions
Is CVE-2023-28628 in your dependencies?
Find it across Maven, including transitive dependencies.