| Title | mwiede jsch 2.28.4 Cert Revocation Type String Bypass |
|---|
| Description | Because JSch's parser cannot recognize certificate key types (e.g., [email protected]), it marks such entries as HostKey.UNKNOWN.
The method responsible for building the revocation list, getRevokedKeys(), explicitly skips all entries marked as HostKey.UNKNOWN.
Consequently, when an administrator adds a revocation directive to known_hosts using a certificate's full type string, the directive is silently ignored during parsing. This results in a complete failure of the revocation mechanism, as a host presenting that exact revoked certificate will never be checked against the intended revocation.
The root cause is a parser flaw, not a logic error in the comparison itself. The parser fails to normalize certificate types to their base types (e.g., ssh-ed25519), and the documentation does not specify that revocations must use the base type. |
|---|
| Source | ⚠️ https://github.com/mwiede/jsch/issues/1091 |
|---|
| User | Yu Bao from PayPal Cyber Security Team (UID 99838) |
|---|
| Submission | 07/21/2026 10:33 (2 months ago) |
|---|
| Moderation | 09/06/2026 10:04 (2 months later) |
|---|
| Status | Accepted |
|---|
| VulDB entry | 399388 [mwiede jsch up to 2.28.5 KnownHosts.java getRevokedKeys known_hosts improper check for certificate revocation] |
|---|
| Points | 20 |
|---|