Security Advisories (2)
CVE-2026-2588 (2026-02-22)

Crypt::NaCl::Sodium versions through 2.001 for Perl has an integer overflow flaw on 32-bit systems. Sodium.xs casts a STRLEN (size_t) to unsigned long long when passing a length pointer to libsodium functions. On 32-bit systems size_t is typically 32-bits while an unsigned long long is at least 64-bits.

CVE-2026-30909 (2026-03-08)

Crypt::NaCl::Sodium versions through 2.002 for Perl has potential integer overflows. bin2hex, encrypt, aes256gcm_encrypt_afternm and seal functions do not check that output size will be less than SIZE_MAX, which could lead to integer wraparound causing an undersized output buffer. Encountering this issue is unlikely as the message length would need to be very large. For bin2hex() the bin_len would have to be > SIZE_MAX / 2 For encrypt() the msg_len would need to be > SIZE_MAX - 16U For aes256gcm_encrypt_afternm() the msg_len would need to be > SIZE_MAX - 16U For seal() the enc_len would need to be > SIZE_MAX - 64U

Changes for version 0.08 - 2015-07-17

  • Require Alien::Sodium v1.0.3.1

Documentation

Authenticated Encryption with Additional Data (ChaCha20/Poly1305 MAC)
Secret-key message authentication (HMAC-SHA256, HMAC-SHA512, HMAC-SHA512/256 )
Public-key authenticated encryption (Curve25519/XSalsa20/Poly1305 MAC)
Generic hashing (Blake2b)
SHA-2 hash functions (SHA-256, SHA-512)
One-time authentication (Poly1305)
Password hashing (yescrypt)
Diffie-Hellman (Curve25519)
Secret-key authenticated encryption (XSalsa20/Poly1305 MAC)
Short-input hashing (SipHash-2-4)
Public-key signatures (Ed25519)
Stream ciphers (XSalsa20, ChaCha20, Salsa20, AES-128-CTR)
Guarded storage for sensitive data

Modules

NaCl compatible modern, easy-to-use library for encryption, decryption, signatures, password hashing and more