Security Advisories (1)
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.000042

  • IMPORTANT SECURITY UPDATE: bundled libsodium updated to 1.0.20-stable. fixes CVE-2025-15444 (upstream CVE-2025-69277). libsodium version 1.0.20-stable is both a vulnerable and not-vulnerable version for this CVE. the included copy of this "stable release" (daily snapshot) is the version of 1.0.20-stable released January 3, 2026 which includes a fix for the vulnerability.
  • vulnerability notes:
  • C::S::XS::curve25519::core_ed25519_is_valid_point could have improperly reported invalid curve points as valid. only users of this low-level function (e.g., for implementing custom crypto) are affected.
  • this update only affects users of the bundled version of libsodium. users of an externally-provided libsodium (e.g., software packaged by operating system distribution) must update that library to a not-vulnerable version. for those external library users, this Crypt::Sodium::XS update is not necessary and will not remediate the vulnerability.

Documentation

simple passphrase-based encryption and decryption
perl implementation of minisign

Modules

perl XS bindings for libsodium
libsodium base64 functions and constants
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
Shared 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
Memory protection functions and constants
libsodium utilities
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
Shared 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/OO/Base.pm