{"id":"GHSA-mqw7-c5gg-xq97","summary":"Jervis Has a RSA PKCS#1 Padding Vulnerability","details":"### Vulnerability\n\nhttps://github.com/samrocketman/jervis/blob/157d2b63ffa5c4bb1d8ee2254950fd2231de2b05/src/main/groovy/net/gleske/jervis/tools/SecurityIO.groovy#L463-L465\n\nhttps://github.com/samrocketman/jervis/blob/157d2b63ffa5c4bb1d8ee2254950fd2231de2b05/src/main/groovy/net/gleske/jervis/tools/SecurityIO.groovy#L495-L497\n\nUses `PKCS1Encoding` which is vulnerable to Bleichenbacher padding oracle attacks. Modern systems should use OAEP (Optimal Asymmetric Encryption Padding).\n\n### Impact\n\nSeverity is considered low for internal uses of this library but if there's any consumer using these methods directly then this is considered critical.\n\nAn attacker with access to a decryption oracle (e.g., timing differences or error messages) could potentially decrypt ciphertext without knowing the private key.\n\nJervis uses RSA to encrypt AES keys in local-only storage inaccessible from the web.  The data stored is GitHub App authentication tokens which will expire within one hour or less.\n\n### Patches\n\nJervis patch will migrate from `PKCS1Encoding` to `OAEPEncoding`.\n\nUpgrade to Jervis 2.2.\n\n### Workarounds\n\nNone\n\n### References\n\n- [Bleichenbacher's Attack on PKCS#1](https://en.wikipedia.org/wiki/Adaptive_chosen-ciphertext_attack)","aliases":["CVE-2025-68698"],"modified":"2026-01-21T16:37:49.184739Z","published":"2026-01-13T14:28:57Z","database_specific":{"github_reviewed_at":"2026-01-13T14:28:57Z","nvd_published_at":"2026-01-13T20:16:07Z","cwe_ids":["CWE-327"],"severity":"HIGH","github_reviewed":true},"references":[{"type":"WEB","url":"https://github.com/samrocketman/jervis/security/advisories/GHSA-mqw7-c5gg-xq97"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2025-68698"},{"type":"WEB","url":"https://github.com/samrocketman/jervis/commit/c3981ff71de7b0f767dfe7b37a2372cb2a51974a"},{"type":"PACKAGE","url":"https://github.com/samrocketman/jervis"},{"type":"WEB","url":"https://github.com/samrocketman/jervis/blob/157d2b63ffa5c4bb1d8ee2254950fd2231de2b05/src/main/groovy/net/gleske/jervis/tools/SecurityIO.groovy#L463-L465"},{"type":"WEB","url":"https://github.com/samrocketman/jervis/blob/157d2b63ffa5c4bb1d8ee2254950fd2231de2b05/src/main/groovy/net/gleske/jervis/tools/SecurityIO.groovy#L495-L497"}],"affected":[{"package":{"name":"net.gleske:jervis","ecosystem":"Maven","purl":"pkg:maven/net.gleske/jervis"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"2.2"}]}],"versions":["0.1","0.10","0.11","0.12","0.13","0.2","0.3","0.4","0.5","0.5.1","0.5.2","0.6","0.7","0.8","0.9","1.0","1.1","1.2","1.3","1.4","1.5","1.6","1.7","2.0","2.0.1","2.1"],"database_specific":{"source":"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/01/GHSA-mqw7-c5gg-xq97/GHSA-mqw7-c5gg-xq97.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N"},{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N"}]}