4.0.3.1
2026 Aug 3
- Fixed security vulnerability: seed buffer aliasing with caller-owned bytes objects.
compute_signing_public_key()andsignature_sign()(32-byte
compatibility paths) andelligator_key_pair()passed the caller's
immutable Python bytes object as Monocypher's mutable seed buffer.
Monocypher deliberately wipes that seed, so a successful call zeroed
the caller's object and all of its aliases. Reusing the same object
then silently derived keys or signed under the publicly reproducible
all-zero seed.- These functions now pass a private seed copy, which Monocypher wipes.
The caller's object is never modified. Callers who also want their
own seed object destroyed can explicitly callwipe(). - Thank you to @geostergiop who reported this issue.
- Fixed setup.py to indicate Python 3.10 was dropped.