sjcl is missing point-on-curve validation in sjcl.ecc.basicKey.publicKey
High severity
GitHub Reviewed
Published
Mar 17, 2026
to the GitHub Advisory Database
•
Updated Mar 25, 2026
Description
Published by the National Vulnerability Database
Mar 17, 2026
Published to the GitHub Advisory Database
Mar 17, 2026
Reviewed
Mar 18, 2026
Last updated
Mar 25, 2026
All versions of the package sjcl are vulnerable to Improper Verification of Cryptographic Signature due to missing point-on-curve validation in sjcl.ecc.basicKey.publicKey(). An attacker can recover a victim's ECDH private key by sending crafted off-curve public keys and observing ECDH outputs. The dhJavaEc() function directly returns the raw x-coordinate of the scalar multiplication result (no hashing), providing a plaintext oracle without requiring any decryption feedback.
References