Vulnerability · Published Apr 13, 2025 · Assigned by CPANSec
CVE-2024-56406Perl is vulnerable to a heap buffer overflow when transliterating non-ASCII bytes
High 8.4
In plain English
A high-severity heap buffer overflow in perl from perl. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.5% (higher than 45% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.
Official description
A heap buffer overflow vulnerability was discovered in Perl. Release branches 5.34, 5.36, 5.38 and 5.40 are affected, including development versions from 5.33.1 through 5.41.10. When there are non-ASCII bytes in the left-hand-side of the `tr` operator, `S_do_trans_invmap` can overflow the destination pointer `d`. $ perl -e '$_ = "\x{FF}" x 1000000; tr/\xFF/\x{100}/;' Segmentation fault (core dumped) It is believed that this vulnerability can enable Denial of Service and possibly Code Execution attacks on platforms that lack sufficient defenses.
Affected packages & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| AlmaLinux:10 | perl | 4:5.40.2-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Attribute-Handlers | 1.03-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-AutoLoader | 5.74-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-AutoSplit | 5.74-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-B | 1.89-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Benchmark | 1.25-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Class-Struct | 0.68-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Config-Extensions | 0.03-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-DBM_Filter | 0.06-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Devel-Peek | 1.34-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Devel-SelfStubber | 1.06-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-DirHandle | 1.05-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Dumpvalue | 2.27-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-DynaLoader | 1.56-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-English | 1.11-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Errno | 1.38-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-ExtUtils-Constant | 0.25-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-ExtUtils-Embed | 1.35-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-ExtUtils-Miniperl | 1.14-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Fcntl | 1.18-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-File-Basename | 2.86-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-File-Compare | 1.100.800-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-File-Copy | 2.41-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-File-DosGlob | 1.12-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-File-Find | 1.44-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-File-stat | 1.14-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-FileCache | 1.10-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-FileHandle | 2.05-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-FindBin | 1.54-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-GDBM_File | 1:1.24-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Getopt-Std | 1.14-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Hash-Util | 0.32-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Hash-Util-FieldHash | 1.27-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-I18N-Collate | 1.02-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-I18N-LangTags | 0.45-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-I18N-Langinfo | 0.24-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-IO | 1.55-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-IPC-Open3 | 1.22-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Locale-Maketext-Simple | 1:0.21-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Math-Complex | 1.62-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Memoize | 1.16-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Module-Loaded | 1:0.08-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-NDBM_File | 1.17-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-NEXT | 0.69-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Net | 1.04-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-ODBM_File | 1.18-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Opcode | 1.65-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-POSIX | 2.20-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Pod-Functions | 1.14-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Pod-Html | 1.35-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Safe | 2.46-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Search-Dict | 1.07-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-SelectSaver | 1.02-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-SelfLoader | 1.27-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Symbol | 1.09-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Sys-Hostname | 1.25-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Term-Complete | 1.403-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Term-ReadLine | 1.17-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Test | 1.31-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Text-Abbrev | 1.02-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Thread | 3.05-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Thread-Semaphore | 2.13-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Tie | 4.6-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Tie-File | 1.09-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Tie-Memoize | 1.1-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Time | 1.04-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Time-Piece | 1.3401-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-Unicode-UCD | 0.78-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-User-pwent | 1.05-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-autouse | 1.11-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-base | 2.27-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-blib | 1.07-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-debugger | 1.60-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-deprecate | 0.04-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-devel | 4:5.40.2-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-diagnostics | 1.40-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-doc | 5.40.2-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-encoding-warnings | 0.14-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-fields | 2.27-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-filetest | 1.03-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-if | 0.61.000-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-interpreter | 4:5.40.2-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-less | 0.03-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-lib | 0.65-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-libnetcfg | 4:5.40.2-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-libs | 4:5.40.2-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-locale | 1.12-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-macros | 4:5.40.2-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-meta-notation | 5.40.2-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-mro | 1.29-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-open | 1.13-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-overload | 1.37-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-overloading | 0.02-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-ph | 5.40.2-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-sigtrap | 1.10-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-sort | 2.05-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-subs | 1.04-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-utils | 5.40.2-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-vars | 1.05-512.1.el10_0 | ALSA-2025:7500 |
| AlmaLinux:10 | perl-vmsish | 1.04-512.1.el10_0 | ALSA-2025:7500 |
| Alpine:v3.20 | perl | 5.38.3-r1 | ALPINE-CVE-2024-56406 |
| Alpine:v3.21 | perl | 5.40.1-r1 | ALPINE-CVE-2024-56406 |
| Alpine:v3.22 | perl | 5.40.1-r1 | ALPINE-CVE-2024-56406 |
| Alpine:v3.23 | perl | 5.40.1-r1 | ALPINE-CVE-2024-56406 |
| Alpine:v3.24 | perl | 5.40.1-r1 | ALPINE-CVE-2024-56406 |
| Debian:12 | perl | 5.36.0-7+deb12u2 | DEBIAN-CVE-2024-56406 |
| Debian:12 | perl | 5.36.0-7+deb12u2 | DSA-5902-1 |
| Debian:13 | perl | 5.40.1-3 | DEBIAN-CVE-2024-56406 |
| Debian:14 | perl | 5.40.1-3 | DEBIAN-CVE-2024-56406 |
| Rocky Linux:10 | perl | 4:5.40.2-512.1.el10_0 | RLSA-2025:7500 |
| Ubuntu:22.04:LTS | perl | 5.34.0-3ubuntu1.4 | USN-7434-1 |
| Ubuntu:22.04:LTS | perl | 5.34.0-3ubuntu1.4 | UBUNTU-CVE-2024-56406 |
| Ubuntu:24.04:LTS | perl | 5.38.2-3.2ubuntu0.1 | USN-7434-1 |
| Ubuntu:24.04:LTS | perl | 5.38.2-3.2ubuntu0.1 | UBUNTU-CVE-2024-56406 |
Affected products (as reported)
Weakness: CWE-122, CWE-787 · Vector: CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
References
- https://github.com/Perl/perl5/commit/87f42aa0e0096e9a346c9672aa3a0bd3bef8c1dd.patch patch
- https://metacpan.org/release/SHAY/perl-5.38.4/changes release-notes
- https://metacpan.org/release/SHAY/perl-5.40.2/changes release-notes
- http://www.openwall.com/lists/oss-security/2025/04/13/3
- http://www.openwall.com/lists/oss-security/2025/04/13/4
- http://www.openwall.com/lists/oss-security/2025/04/13/5