Security Advisories (3)
CVE-2025-15444 (2026-01-06)

Crypt::Sodium::XS module versions prior to 0.000042, for Perl, include a vulnerable version of libsodium libsodium <= 1.0.20 or a version of libsodium released before December 30, 2025 contains a vulnerability documented as CVE-2025-69277  https://www.cve.org/CVERecord?id=CVE-2025-69277 . The libsodium vulnerability states: In atypical use cases involving certain custom cryptography or untrusted data to crypto_core_ed25519_is_valid_point, mishandles checks for whether an elliptic curve point is valid because it sometimes allows points that aren't in the main cryptographic group. 0.000042 includes a version of libsodium updated to 1.0.20-stable, released January 3, 2026, which includes a fix for the vulnerability.

CVE-2025-69277 (2025-12-31)

libsodium before ad3004e, in atypical use cases involving certain custom cryptography or untrusted data to crypto_core_ed25519_is_valid_point, mishandles checks for whether an elliptic curve point is valid because it sometimes allows points that aren't in the main cryptographic group.

CVE-2026-30910 (2026-03-08)

Crypt::Sodium::XS versions through 0.001000 for Perl has potential integer overflows. Combined aead encryption, combined signature creation, and bin2hex functions do not check that output size will be less than SIZE_MAX, which could lead to integer wraparound causing an undersized output buffer. This can cause a crash in bin2hex and encryption algorithms other than aes256gcm. For aes256gcm encryption and signatures, an undersized buffer could lead to buffer overflow. Encountering this issue is unlikely as the message length would need to be very large. For bin2hex the input size would have to be > SIZE_MAX / 2 For aegis encryption the input size would need to be > SIZE_MAX - 32U For other encryption the input size would need to be > SIZE_MAX - 16U For signatures the input size would need to be > SIZE_MAX - 64U

Changes for version 0.000028

  • add curve25519 packages implementing finite field functions crypto_core_ed25519|ristretto255_*
  • add ed25519 and ristretto255 primitives to scalarmult
  • update bundled libsodium to 1.0.20
  • minor bugfixes and improvements

Documentation

simple passphrase-based encryption and decryption
perl implementation of minisign

Modules

perl XS bindings for libsodium
libsodium low-level functions
Protected memory objects
Authenticated encryption with additional data
Secret key message authentication
Asymmetric (public/secret key) authenticated encryption
Low-level functions over Curve25519
Cryptographic hashing
SHA2 cryptographic hashing
HMAC-based Extract-and-Expand Key Derivation Function
Secret subkey derivation from a main secret key
Asymmetric (public/secret key) derivation from client/server asymmetric key pairs
Single-use secret key message authentication
Password hashing and verification
Point-scalar multiplication over the edwards25519 curve
Secret key authenticated encryption
Secret key authenticated encryption for multiple in-order messages
Short-input hashing
Asymmetric (public/secret key) signatures and verification
Authenticated encryption with additional data
Secret key message authentication
Asymmetric (public/secret key) authenticated encryption
Low-level functions over Curve25519
Cryptographic hashing
SHA2 cryptographic hashing
HMAC-based Extract-and-Expand Key Derivation Function
Secret subkey derivation from a main secret key
Asymmetric (public/secret key) derivation from client/server asymmetric key pairs
Single-use secret key message authentication
Password hashing and verification
Point-scalar multiplication on the Curve25519 curve.
Secret key authenticated encryption
Secret key authenticated encryption for multiple in-order messages
Short-input hashing
Asymmetric (public/secret key) signatures and verification
Stream ciphers

Provides

in lib/Crypt/Sodium/XS/Base64.pm
in lib/Crypt/Sodium/XS/OO/Base.pm
in lib/Crypt/Sodium/XS/ProtMem.pm
in lib/Crypt/Sodium/XS/Util.pm