[GHSA-qh8g-58pp-2wxh] Eclipse Jetty URI parsing of invalid authority - #9697
levpachmanov wants to merge 1 commit into
Conversation
|
Hi there @joakime! A community member has suggested an improvement to your security advisory. If approved, this change will affect the global advisory listed at github.com/advisories. It will not affect the version listed in your project repository. This change will be reviewed by our Security Curation Team. If you have thoughts or feedback, please share them in a comment here! If this PR has already been closed, you can start a new community contribution for this advisory |
|
Reject. This is not fixed in the EOL releases of Jetty 9, Jetty 10, or Jetty 11. See past PRs on here for details.
|
|
Thanks for the detailed pointers @joakime — I read through #5210, #5222, #5475, #5496, #5507 and the Eclipse CNA thread before writing this. Two of your points I fully accept:
Neither of those is what this PR is about, though. A GHSA I'd also like to correct my own PR before anything else: I had the 10.x and 11.x numbers wrong. The fix landed in 10.0.25 / 11.0.25, not .26 — What the released artifacts actually doI took the
"accepts" = returns a host; "rejects" = On every vector that 12.0.12 hardened, 9.4.57 / 10.0.25 / 11.0.25 behave the same. On On "a narrowed subset"I looked specifically for what was narrowed, and the only two behavioural differences I could find run in the other direction:
If there's a concrete input that 12.0.12 rejects and 9.4.57/10.0.25/11.0.25 accept, I'd genuinely like to have it — that would settle this immediately and I'll close the PR myself. On the RFC argument
I think this is about the deprecation of And the backports are consistent with that reading: they keep Provenance
I understand the position that this was a sponsored backport for EOL lines and that the Jetty server was never the exposed surface here. But these are public Maven Central artifacts, and every scanner reading this advisory currently reports them as vulnerable — including releases where the code demonstrably rejects the malformed authorities. |
|
Your analysis is looking at a single commit and declaring it fixed. |
|
@joakime thanks for taking the time to go through this - genuinely appreciated. At Seal we aim to give our customers the most accurate picture we can of what's actually exploitable, so an example or PoC demonstrating the vulnerability on 9.4.57 / 10.0.25 / 11.0.25 but not on 12.0.12 would be very helpful for me to understand this vulnerability. |
Updates
Comments
The fix for this advisory (commit
db8bb7a8631aafc7897032b133a5b425854e5841, PR jetty/jetty.project#12532, "Fix CVE-2024-6763") was independently backported to each maintenance branch, not fixed only at12.0.12.Verified via
git tag --contains db8bb7a8631aafc7897032b133a5b425854e5841againstjetty/jetty.project, and independently by diffingHttpURI.javafrom each release's sources jar on Maven Central against the pre/post-fix code (presence ofViolation.USER_INFO/isUnreservedPctEncodedOrSubDelimand the hardened authority-state validation logic).Per-branch first-fixed versions
9.4.57.v202412199.4.51.v20230217,9.4.53.v20231009,9.4.56.v2024082610.0.2610.0.19,10.0.2211.0.2611.0.23,11.0.2412.0.12Suggested
vulnerable_version_rangeentriesReplace the single range with four, one per branch:
>= 7.0.0, < 9.4.57.v20241219→ patched9.4.57.v20241219>= 10.0.0, < 10.0.26→ patched10.0.26>= 11.0.0, < 11.0.26→ patched11.0.26>= 12.0.0, <= 12.0.11→ patched12.0.12Why this matters
The current single range
>= 7.0.0, <= 12.0.11implies every 9.4.x/10.0.x/11.0.x release up to that point remains vulnerable, but releases on those branches at or after the versions above already contain the fix. Recommend splitting into the four ranges above so scanners don't flag already-patched maintenance-branch releases.