Description
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
Published: 2026-03-08
Score: 9.8 Critical
EPSS: < 1% Very Low
KEV: No
Impact: Potential for memory corruption leading to arbitrary code execution
Action: Immediate Patch
AI Analysis

Impact

The vulnerability originates in Crypt::NaCl::Sodium version 2.002 where functions bin2hex, encrypt, aes256gcm_encrypt_afternm and seal do not enforce that the output buffer size remains below the maximum representable value SIZE_MAX. As a result, when the input message length exceeds a very large threshold, the internal integer calculation wraps around, producing an undersized output buffer. This size mismatch can corrupt memory, potentially allowing an attacker to trigger a buffer overflow and execute arbitrary code. The weakness is classified as CWE‑190: Integer Overflow.

Affected Systems

PERL modules from TIMLEGGE:Crypt::NaCl::Sodium through version 2.002 are affected. This includes all distributions using Crypt::NaCl::Sodium 2.002 or earlier. Versions 2.003 and later contain the fix and are not vulnerable.

Risk and Exploitability

With a CVSS score of 9.8 the severity is high, but the EPSS score of less than 1 % indicates that widespread exploitation is currently unlikely. The vulnerability is not listed in CISA’s KEV catalog. Attacking requires creating a message whose length approaches the size limits of SIZE_MAX, which is impractical under normal circumstances. However, if an attacker can supply such an extreme payload, the potential for remote code execution exists. The importance of the issue remains high due to the severity rating.

Generated by OpenCVE AI on April 16, 2026 at 10:43 UTC.

Remediation

Vendor Solution

Upgrade to version 2.003


OpenCVE Recommended Actions

  • Upgrade Crypt::NaCl::Sodium to version 2.003 or later.
  • Validate or cap input message lengths before invoking the vulnerable functions to ensure the size stays well below SIZE_MAX.
  • Apply any Perl framework or application‑specific security controls that prevent malicious large inputs from reaching the library.
  • Monitor logs for abnormal activity or crashes that could indicate exploitation attempts.

Generated by OpenCVE AI on April 16, 2026 at 10:43 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Wed, 18 Mar 2026 13:15:00 +0000

Type Values Removed Values Added
First Time appeared Timlegge crypt\
CPEs cpe:2.3:a:timlegge:crypt\:\:nacl\:\:sodium:*:*:*:*:*:perl:*:*
Vendors & Products Timlegge crypt\

Tue, 10 Mar 2026 14:15:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}

ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Mon, 09 Mar 2026 10:15:00 +0000

Type Values Removed Values Added
First Time appeared Timlegge
Timlegge crypt::nacl::sodium
Vendors & Products Timlegge
Timlegge crypt::nacl::sodium

Sun, 08 Mar 2026 05:30:00 +0000

Type Values Removed Values Added
References

Sun, 08 Mar 2026 01:00:00 +0000

Type Values Removed Values Added
Description 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
Title Crypt::NaCl::Sodium versions through 2.002 for Perl has potential integer overflows
Weaknesses CWE-190
References

Subscriptions

Timlegge Crypt::nacl::sodium Crypt\
cve-icon MITRE

Status: PUBLISHED

Assigner: CPANSec

Published:

Updated: 2026-03-10T13:41:14.273Z

Reserved: 2026-03-07T13:09:20.640Z

Link: CVE-2026-30909

cve-icon Vulnrichment

Updated: 2026-03-08T04:33:14.855Z

cve-icon NVD

Status : Analyzed

Published: 2026-03-08T01:15:49.387

Modified: 2026-03-18T13:02:17.657

Link: CVE-2026-30909

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-04-16T10:45:26Z

Weaknesses