{"id":"JLSEC-2026-801","summary":"Native TLS accepts undersized or malformed RSA certificate public keys","details":"Reseau 1.1.0 through 1.3.1 enforce an upper bound on RSA certificate keys but no\nminimum modulus size and no sanity checks on the public exponent. A certificate\nchain containing a factorable RSA key can therefore pass Reseau's key-strength\nchecks.\n\n### Impact\n\nExploitation requires a weak RSA key to exist in a certificate chain the\nendpoint already trusts. An attacker who factors that key can forge certificate\nor TLS-handshake signatures, depending on where the weak key appears, and\nimpersonate a peer. Exposure is primarily in private certificate authorities\nand legacy or misconfigured deployments; modern public certificate authorities\ndo not normally issue sub-1024-bit RSA keys.\n\n### Technical details\n\nThe native X.509 parser rejected RSA moduli larger than 8192 bits, but accepted\narbitrarily small moduli and public exponents smaller than three or divisible\nby two. Those keys could then be used for certificate-chain and TLS-handshake\nsignature verification.\n\nThis validation path was introduced with Reseau's native TLS stack in version\n1.1.0. Releases 1.0.x used the previous OpenSSL TLS engine and are not affected.\n\n### Patches\n\nUpgrade to Reseau 1.3.2 or later. The fixed parser rejects RSA certificate keys\nsmaller than 1024 bits and rejects public exponents that are smaller than three\nor even.\n\nApplications with stronger policy requirements should independently require\nat least 2048-bit RSA keys; the package's patched 1024-bit floor is a\ncompatibility baseline, not a modern key-size recommendation.\n\n### Workarounds\n\nValidate every RSA public key in the deployed certificate and trust chains\nout-of-band for an adequate modulus size and a valid odd exponent, or restrict\nthe trust store to certificate authorities that enforce such a policy.\nAffected Reseau releases do not expose a configuration callback for performing\nthis validation during a handshake. Deployments using only non-RSA certificate\nchains avoid this issue.\n\nReported to the JuliaLang security team through Anthropic's Coordinated\nVulnerability Disclosure program.","aliases":["ANT-2026-23T10288"],"modified":"2026-07-28T14:00:05.222543300Z","published":"2026-07-28T13:54:29.705Z","database_specific":{"license":"CC-BY-4.0"},"references":[{"type":"WEB","url":"https://github.com/JuliaServices/Reseau.jl/commit/ea95f091baaf7386267fd633742768121dfe20ff"},{"type":"WEB","url":"https://github.com/JuliaServices/Reseau.jl/pull/132"},{"type":"WEB","url":"https://github.com/JuliaServices/Reseau.jl/releases/tag/v1.3.2"}],"affected":[{"package":{"name":"Reseau","ecosystem":"Julia","purl":"pkg:julia/Reseau?uuid=802f3686-a58f-41ce-bb0c-3c43c75bba36"},"ranges":[{"type":"SEMVER","events":[{"introduced":"1.1.0"},{"fixed":"1.3.2"}]}],"database_specific":{"source":"https://github.com/JuliaLang/SecurityAdvisories.jl/tree/generated/osv/2026/JLSEC-2026-801.json"}}],"schema_version":"1.7.5","credits":[{"name":"Julia Security Team in collaboration with Claude and Anthropic Research","type":"FINDER"}]}