Digest authentication lossy encoding
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 9.4.63, 10.0.31, 11.0.31, 12.0.36, 12.1.10
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: poc
- Automatable: yes
- Technical impact: partial
Summary
In Eclipse Jetty, the Digest authentication server-side component uses ISO-8859-1 to encode the password as bytes. This was done because the initial specification for HTTP did not specify explicitly a charset, and it was assumed to be ISO-8859-1 for historical reasons. If the password contains characters that cannot be represented in ISO-8859-1, they are silently replaced by `?`. This happens with passwords that contain Chinese, Cyrillic or Greek characters, for example: `αβ123` converts to `??123`. An attacker can send a request with a digest `Authorization` header crafted with a password made of only `?` characters; the server would match any password of the same length that contains non-ISO-8859-1 characters. Recent HTTP Digest RFC-7616 supports a `charset` parameters that defaults to UTF-8 that allows for correct encoding/decoding of passwords.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: poc · Automatable: yes · Technical impact: partial
- Record last updated
Affected versions
- org.eclipse.jetty.ee8:jetty-ee8-security
From 12.0.0 · through 12.0.35; From 12.1.0 · through 12.1.9
- org.eclipse.jetty.ee9:jetty-ee9-security
From 12.0.0 · through 12.0.35; From 12.1.0 · through 12.1.9
- org.eclipse.jetty:jetty-security
From 9.4.0 · through 9.4.62; From 10.0.0 · through 10.0.30; From 11.0.0 · through 11.0.30; From 12.0.0 · through 12.0.35; From 12.1.0 · through 12.1.9
- org.eclipse.jetty:jetty-securityMaven
From 9.4.0.v20161208 · fixed in 9.4.63
- org.eclipse.jetty:jetty-securityMaven
From 10.0.0 · fixed in 10.0.31
- org.eclipse.jetty:jetty-securityMaven
From 11.0.0 · fixed in 11.0.31
- org.eclipse.jetty:jetty-securityMaven
From 12.0.0 · fixed in 12.0.36
- org.eclipse.jetty.ee8:jetty-ee8-securityMaven
From 12.0.0 · fixed in 12.0.36
- org.eclipse.jetty.ee9:jetty-ee9-securityMaven
From 12.0.0 · fixed in 12.0.36
- org.eclipse.jetty:jetty-securityMaven
From 12.1.0 · fixed in 12.1.10
- org.eclipse.jetty.ee8:jetty-ee8-securityMaven
From 12.1.0 · fixed in 12.1.10
- org.eclipse.jetty.ee9:jetty-ee9-securityMaven
From 12.1.0 · fixed in 12.1.10