CVE-2026-2474
Crypt::URandom versions from 0.41 before 0.55 for Perl is vulnerable to a heap buffer overflow in the XS function crypt_urandom_getrandom()
Crypt::URandom versions from 0.41 before 0.55 for Perl is vulnerable to a heap buffer overflow in the XS function crypt_urandom_getrandom().
The function does not validate that the length parameter is non-negative. If a negative value (e.g. -1) is supplied, the expression length + 1u causes an integer wraparound, resulting in a zero-byte allocation. The subsequent call to getrandom(data, length, GRND_NONBLOCK) passes the original negative value, which is implicitly converted to a large unsigned value (typically SIZE_MAX). This can result in writes beyond the allocated buffer, leading to heap memory corruption and application crash (denial of service).
In common usage, the length argument is typically hardcoded by the caller, which reduces the likelihood of attacker-controlled exploitation. Applications that pass untrusted input to this parameter may be affected.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
7.5
Crypt::URandom versions from 0.41 before 0.55 for Perl is vulnerable to a heap buffer overflow in the XS function crypt_urandom_getrandom()
Crypt::URandom versions from 0.41 before 0.55 for Perl is vulnerable to a heap buffer overflow in the XS function crypt_urandom_getrandom().
The function does not validate that the length parameter is non-negative. If a negative value (e.g. -1) is supplied, the expression length + 1u causes an integer wraparound, resulting in a zero-byte allocation. The subsequent call to getrandom(data, length, GRND_NONBLOCK) passes the original negative value, which is implicitly converted to a large unsigned value (typically SIZE_MAX). This can result in writes beyond the allocated buffer, leading to heap memory corruption and application crash (denial of service).
In common usage, the length argument is typically hardcoded by the caller, which reduces the likelihood of attacker-controlled exploitation. Applications that pass untrusted input to this parameter may be affected.
- Record
CVE-2026-2474- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-122, CWE-1284
- Updated
- 2026-11-02
EUVDEUVD-2026-7825
7.5
Crypt::URandom versions from 0.41 before 0.55 for Perl is vulnerable to a heap buffer overflow in the XS function crypt_urandom_getrandom().
The function does not validate that the length parameter is non-negative. If a negative value (e.g. -1) is supplied, the expression length + 1u causes an integer wraparound, resulting in a zero-byte allocation. The subsequent call to getrandom(data, length, GRND_NONBLOCK) passes the original negative value, which is implicitly converted to a large unsigned value (typically SIZE_MAX). This can result in writes beyond the allocated buffer, leading to heap memory corruption and application crash (denial of service).
In common usage, the length argument is typically hardcoded by the caller, which reduces the likelihood of attacker-controlled exploitation. Applications that pass untrusted input to this parameter may be affected.
- Record
EUVD-2026-7825- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-mwq4-j679-7frp
7.5
Crypt::URandom versions from 0.41 before 0.55 for Perl is vulnerable to a heap buffer overflow in...
Crypt::URandom versions from 0.41 before 0.55 for Perl is vulnerable to a heap buffer overflow in the XS function crypt_urandom_getrandom().
The function does not validate that the length parameter is non-negative. If a negative value (e.g. -1) is supplied, the expression length + 1u causes an integer wraparound, resulting in a zero-byte allocation. The subsequent call to getrandom(data, length, GRND_NONBLOCK) passes the original negative value, which is implicitly converted to a large unsigned value (typically SIZE_MAX). This can result in writes beyond the allocated buffer, leading to heap memory corruption and application crash (denial of service).
In common usage, the length argument is typically hardcoded by the caller, which reduces the likelihood of attacker-controlled exploitation. Applications that pass untrusted input to this parameter may be affected.
- Record
GHSA-mwq4-j679-7frp- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-122
- Updated
- 2026-11-02
NVD
7.5
Crypt::URandom versions from 0.41 before 0.55 for Perl is vulnerable to a heap buffer overflow in the XS function crypt_urandom_getrandom().
The function does not validate that the length parameter is non-negative. If a negative value (e.g. -1) is supplied, the expression length + 1u causes an integer wraparound, resulting in a zero-byte allocation. The subsequent call to getrandom(data, length, GRND_NONBLOCK) passes the original negative value, which is implicitly converted to a large unsigned value (typically SIZE_MAX). This can result in writes beyond the allocated buffer, leading to heap memory corruption and application crash (denial of service).
In common usage, the length argument is typically hardcoded by the caller, which reduces the likelihood of attacker-controlled exploitation. Applications that pass untrusted input to this parameter may be affected.
- Record
CVE-2026-2474- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-122, CWE-1284
- Updated
- 2026-11-02
OSVALPINE-CVE-2026-2474
7.5
Crypt::URandom versions from 0.41 before 0.55 for Perl is vulnerable to a heap buffer overflow in the XS function crypt_urandom_getrandom().
The function does not validate that the length parameter is non-negative. If a negative value (e.g. -1) is supplied, the expression length + 1u causes an integer wraparound, resulting in a zero-byte allocation. The subsequent call to getrandom(data, length, GRND_NONBLOCK) passes the original negative value, which is implicitly converted to a large unsigned value (typically SIZE_MAX). This can result in writes beyond the allocated buffer, leading to heap memory corruption and application crash (denial of service).
In common usage, the length argument is typically hardcoded by the caller, which reduces the likelihood of attacker-controlled exploitation. Applications that pass untrusted input to this parameter may be affected.
- Record
ALPINE-CVE-2026-2474- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVBELL-CVE-2026-2474
7.5
- Record
BELL-CVE-2026-2474- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
Show 6 moreShow less
OSV
7.5
Crypt::URandom versions from 0.41 before 0.55 for Perl is vulnerable to a heap buffer overflow in the XS function crypt_urandom_getrandom().
The function does not validate that the length parameter is non-negative. If a negative value (e.g. -1) is supplied, the expression length + 1u causes an integer wraparound, resulting in a zero-byte allocation. The subsequent call to getrandom(data, length, GRND_NONBLOCK) passes the original negative value, which is implicitly converted to a large unsigned value (typically SIZE_MAX). This can result in writes beyond the allocated buffer, leading to heap memory corruption and application crash (denial of service).
In common usage, the length argument is typically hardcoded by the caller, which reduces the likelihood of attacker-controlled exploitation. Applications that pass untrusted input to this parameter may be affected.
- Record
CVE-2026-2474- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-2474
7.5
Crypt::URandom versions from 0.41 before 0.55 for Perl is vulnerable to a heap buffer overflow in the XS function crypt_urandom_getrandom(). The function does not validate that the length parameter is non-negative. If a negative value (e.g. -1) is supplied, the expression length + 1u causes an integer wraparound, resulting in a zero-byte allocation. The subsequent call to getrandom(data, length, GRND_NONBLOCK) passes the original negative value, which is implicitly converted to a large unsigned value (typically SIZE_MAX). This can result in writes beyond the allocated buffer, leading to heap memory corruption and application crash (denial of service). In common usage, the length argument is typically hardcoded by the caller, which reduces the likelihood of attacker-controlled exploitation. Applications that pass untrusted input to this parameter may be affected.
- Record
DEBIAN-CVE-2026-2474- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-2474
7.5
Crypt::URandom versions from 0.41 before 0.55 for Perl is vulnerable to a heap buffer overflow in the XS function crypt_urandom_getrandom(). The function does not validate that the length parameter is non-negative. If a negative value (e.g. -1) is supplied, the expression length + 1u causes an integer wraparound, resulting in a zero-byte allocation. The subsequent call to getrandom(data, length, GRND_NONBLOCK) passes the original negative value, which is implicitly converted to a large unsigned value (typically SIZE_MAX). This can result in writes beyond the allocated buffer, leading to heap memory corruption and application crash (denial of service). In common usage, the length argument is typically hardcoded by the caller, which reduces the likelihood of attacker-controlled exploitation. Applications that pass untrusted input to this parameter may be affected.
- Record
UBUNTU-CVE-2026-2474- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVopenSUSE-SU-2026:10414-1 No score
perl-Crypt-URandom-0.550.0-1.1 on GA media
These are all security issues fixed in the perl-Crypt-URandom-0.550.0-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:10414-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:1170-1 No score
Security update for perl-Crypt-URandom
This update for perl-Crypt-URandom fixes the following issue:
Update to 0.550.0 (0.55):
- CVE-2026-2474: heap buffer overflow in the XS function
crypt_urandom_getrandom()(bsc#1258266).
Changelog:
- Fix for sysread/read failures. Thanks to Miha Purg for GH#20.
- Fix for test suite failures on STDOUT encoding. Thanks to Lukas Mai for GH#19.
For full changelog see /usr/share/doc/packages/perl-Crypt-URandom/Changes.
- Record
SUSE-SU-2026:1170-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:1954-1 No score
Security update for perl-Crypt-URandom
This update for perl-Crypt-URandom fixes the following issue:
- CVE-2026-2474: negative length parameter in the XS function can lead to a heap-based buffer overflow (bsc#1258266).
Changes for perl-Crypt-URandom:
-
updated to 0.550.0 (0.55)
-
Fix for sysread/read failures. Thanks to Miha Purg for GH#20
-
Fix for test suite failures on STDOUT encoding. Thanks to Lukas Mai for GH#19
- Record
SUSE-SU-2026:1954-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
perl-crypt-urandomAlpine:v3.24 |
0.41 up to 0.55-r0 | 0.55-r0 |
perl-crypt-urandomAlpaquita:stream |
0.54-r1 up to 0.55-r0 | 0.55-r0 |
libcrypt-urandom-perlDebian:13 |
before 0.54-1+deb13u1, plus listed versions 0.54-1 |
0.54-1+deb13u1 |
libcrypt-urandom-perlDebian:14 |
before 0.55-1, plus listed versions 0.54-1 |
0.55-1 |
perl-Crypt-URandomSUSE:Linux Enterprise Server 12 SP5-LTSS |
before 0.550.0-1.6.1 | 0.550.0-1.6.1 |
perl-Crypt-URandomSUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 |
before 0.550.0-1.6.1 | 0.550.0-1.6.1 |
libcrypt-urandom-perlUbuntu:25.10 |
All versions, plus listed versions 0.54-1 |
None known |
perl-Crypt-URandomopenSUSE:Tumbleweed |
before 0.550.0-1.1 | 0.550.0-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-2474 is a high vulnerability (CVSS 7.5) in Ddick Crypt::urandom, published February 16, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.34%, the 28th percentile. Fixed in perl-crypt-urandom 0.55-r0.
References
metacpan.org/release/DDICK/Crypt-URandom-0.55/source/Changes
metacpan.org/release/DDICK/Crypt-URandom-0.54/source/URandom.xs
nvd.nist.gov/vuln/detail/CVE-2026-2474
github.com/advisories/GHSA-mwq4-j679-7frp
security.alpinelinux.org/vuln/CVE-2026-2474
docs.bell-sw.com/security/cves/CVE-2026-2474
Show 8 moreShow less
security-tracker.debian.org/tracker/CVE-2026-2474
suse.com/support/update/announcement/2026/suse-su-20261170-1
bugzilla.suse.com/1258266
suse.com/security/cve/CVE-2026-2474
suse.com/support/update/announcement/2026/suse-su-20261954-1
ubuntu.com/security/CVE-2026-2474
cve.org/CVERecord?id=CVE-2026-2474
lists.security.metacpan.org/cve-announce/msg/37085458