Perl
Don't miss out!
Thousands of developers use stack.watch to stay informed.Get an email whenever new security vulnerabilities are reported in any Perl product.
RSS Feeds for Perl security vulnerabilities
Create a CVE RSS feed including security vulnerabilities found in Perl products with stack.watch. Just hit watch, then grab your custom RSS feed url.
Products by Perl Sorted by Most Security Vulnerabilities since 2018
Known Exploited Perl Vulnerabilities
The following Perl vulnerabilities have been marked by CISA as Known to be Exploited by threat actors.
| Title | Description | Added |
|---|---|---|
| ExifTool Remote Code Execution Vulnerability |
Improper neutralization of user data in the DjVu file format in Exiftool versions 7.44 and up allows arbitrary code execution when parsing the malicious image CVE-2021-22204 Exploit Probability: 92.7% |
November 17, 2021 |
The vulnerability CVE-2021-22204: ExifTool Remote Code Execution Vulnerability is in the top 1% of the currently known exploitable vulnerabilities.
By the Year
In 2025 there have been 2 vulnerabilities in Perl with an average score of 7.2 out of ten. Last year, in 2024 Perl had 1 security vulnerability published. That is, 1 more vulnerability have already been reported in 2025 as compared to last year. Last year, the average CVE base score was greater by 0.65
| Year | Vulnerabilities | Average Score |
|---|---|---|
| 2025 | 2 | 7.15 |
| 2024 | 1 | 7.80 |
| 2023 | 5 | 8.25 |
| 2022 | 0 | 0.00 |
| 2021 | 1 | 0.00 |
| 2020 | 8 | 6.63 |
| 2019 | 0 | 0.00 |
| 2018 | 8 | 9.14 |
It may take a day or so for new Perl vulnerabilities to show up in the stats or in the list of recent security vulnerabilities. Additionally vulnerabilities may be tagged under a different product or component name.
Recent Perl Security Vulnerabilities
| CVE | Date | Vulnerability | Products |
|---|---|---|---|
| CVE-2025-40909 | May 30, 2025 |
Perl 5.13.6 Threads CWD Race Allows Local Path ManipulationPerl threads have a working directory race condition where file operations may target unintended paths. If a directory handle is open at thread creation, the process-wide current working directory is temporarily changed in order to clone that handle for the new thread, which is visible from any third (or more) thread already running. This may lead to unintended operations such as loading code or accessing files from unexpected locations, which a local attacker may be able to exploit. The bug was introduced in commit 11a11ecf4bea72b17d250cfb43c897be1341861e and released in Perl version 5.13.6 |
|
| CVE-2024-56406 | Apr 13, 2025 |
Heap Buffer Overflow: Perl 5.34-5.40 tr Operator (CVE-2024-56406)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. |
|
| CVE-2023-47039 | Jan 02, 2024 |
Perl Windows cmd.exe Path Traversal Allows RCEA vulnerability was found in Perl. This security issue occurs while Perl for Windows relies on the system path environment variable to find the shell (`cmd.exe`). When running an executable that uses the Windows Perl interpreter, Perl attempts to find and execute `cmd.exe` within the operating system. However, due to path search order issues, Perl initially looks for cmd.exe in the current working directory. This flaw allows an attacker with limited privileges to place`cmd.exe` in locations with weak permissions, such as `C:\ProgramData`. By doing so, arbitrary code can be executed when an administrator attempts to use this executable from these compromised locations. |
|
| CVE-2023-47038 | Dec 18, 2023 |
Heap Buffer Overflow in Perl 5.30.0 5.38.0 RegExp CompileA vulnerability was found in perl 5.30.0 through 5.38.0. This issue occurs when a crafted regular expression is compiled by perl, which can allow an attacker controlled byte buffer overflow in a heap allocated buffer. |
|
| CVE-2023-47100 | Dec 02, 2023 |
Unknown: RCE in Unspecified Component |
|
| CVE-2022-48522 | Aug 22, 2023 |
In Perl 5.34.0, function S_find_uninit_var in sv.c has a stack-based crashIn Perl 5.34.0, function S_find_uninit_var in sv.c has a stack-based crash that can lead to remote code execution or local privilege escalation. |
|
| CVE-2023-31484 | Apr 29, 2023 |
CPAN.pm before 2.35 does not verify TLS certificates when downloading distributions over HTTPS.CPAN.pm before 2.35 does not verify TLS certificates when downloading distributions over HTTPS. |
|
| CVE-2023-31486 | Apr 29, 2023 |
HTTP::Tiny before 0.083HTTP::Tiny before 0.083, a Perl core module since 5.13.9 and available standalone on CPAN, has an insecure default TLS configuration where users must opt in to verify certificates. |
|
| CVE-2020-16156 | Dec 13, 2021 |
CPAN 2.28 allows Signature Verification Bypass.CPAN 2.28 allows Signature Verification Bypass. |
|
| CVE-2019-20919 | Sep 17, 2020 |
An issue was discovered in the DBI module before 1.643 for PerlAn issue was discovered in the DBI module before 1.643 for Perl. The hv_fetch() documentation requires checking for NULL and the code does that. But, shortly thereafter, it calls SvOK(profile), causing a NULL pointer dereference. |
|
| CVE-2014-10402 | Sep 16, 2020 |
An issue was discovered in the DBI module through 1.643 for PerlAn issue was discovered in the DBI module through 1.643 for Perl. DBD::File drivers can open files from folders other than those specifically passed via the f_dir attribute in the data source name (DSN). NOTE: this issue exists because of an incomplete fix for CVE-2014-10401. |
|
| CVE-2020-14393 | Sep 16, 2020 |
A buffer overflow was found in perl-DBI < 1.643 in DBI.xsA buffer overflow was found in perl-DBI < 1.643 in DBI.xs. A local attacker who is able to supply a string longer than 300 characters could cause an out-of-bounds write, affecting the availability of the service or integrity of data. |
|
| CVE-2020-14392 | Sep 16, 2020 |
An untrusted pointer dereference flaw was found in Perl-DBI < 1.643An untrusted pointer dereference flaw was found in Perl-DBI < 1.643. A local attacker who is able to manipulate calls to dbd_db_login6_sv() could cause memory corruption, affecting the service's availability. |
|
| CVE-2013-7490 | Sep 11, 2020 |
An issue was discovered in the DBI module before 1.632 for PerlAn issue was discovered in the DBI module before 1.632 for Perl. Using many arguments to methods for Callbacks may lead to memory corruption. |
|
| CVE-2020-12723 | Jun 05, 2020 |
regcomp.c in Perl before 5.30.3regcomp.c in Perl before 5.30.3 allows a buffer overflow via a crafted regular expression because of recursive S_study_chunk calls. |
|
| CVE-2020-10878 | Jun 05, 2020 |
Perl before 5.30.3 has an integer overflow related to mishandling of a "PL_regkind[OP(n)] == NOTHING" situationPerl before 5.30.3 has an integer overflow related to mishandling of a "PL_regkind[OP(n)] == NOTHING" situation. A crafted regular expression could lead to malformed bytecode with a possibility of instruction injection. |
|
| CVE-2020-10543 | Jun 05, 2020 |
Perl before 5.30.3 on 32-bit platformsPerl before 5.30.3 on 32-bit platforms allows a heap-based buffer overflow because nested regular expression quantifiers have an integer overflow. |
|
| CVE-2018-18314 | Dec 07, 2018 |
Perl before 5.26.3 has a buffer overflow via a crafted regular expressionPerl before 5.26.3 has a buffer overflow via a crafted regular expression that triggers invalid write operations. |
|
| CVE-2018-18313 | Dec 07, 2018 |
Perl before 5.26.3 has a buffer over-read via a crafted regular expressionPerl before 5.26.3 has a buffer over-read via a crafted regular expression that triggers disclosure of sensitive information from process memory. |
|
| CVE-2018-18311 | Dec 07, 2018 |
Perl before 5.26.3 and 5.28.x before 5.28.1 has a buffer overflow via a crafted regular expressionPerl before 5.26.3 and 5.28.x before 5.28.1 has a buffer overflow via a crafted regular expression that triggers invalid write operations. |
|
| CVE-2018-18312 | Dec 05, 2018 |
Perl before 5.26.3 and 5.28.0 before 5.28.1 has a buffer overflow via a crafted regular expressionPerl before 5.26.3 and 5.28.0 before 5.28.1 has a buffer overflow via a crafted regular expression that triggers invalid write operations. |
|
| CVE-2018-12015 | Jun 07, 2018 |
In Perl through 5.26.2, the Archive::Tar moduleIn Perl through 5.26.2, the Archive::Tar module allows remote attackers to bypass a directory-traversal protection mechanism, and overwrite arbitrary files, via an archive file containing a symlink and a regular file with the same name. |
|
| CVE-2018-6797 | Apr 17, 2018 |
An issue was discovered in Perl 5.18 through 5.26An issue was discovered in Perl 5.18 through 5.26. A crafted regular expression can cause a heap-based buffer overflow, with control over the bytes written. |
|
| CVE-2018-6913 | Apr 17, 2018 |
Heap-based buffer overflow in the pack function in Perl before 5.26.2Heap-based buffer overflow in the pack function in Perl before 5.26.2 allows context-dependent attackers to execute arbitrary code via a large item count. |
|
| CVE-2018-6798 | Apr 17, 2018 |
An issue was discovered in Perl 5.22 through 5.26An issue was discovered in Perl 5.22 through 5.26. Matching a crafted locale dependent regular expression can cause a heap-based buffer over-read and potentially information disclosure. |
|
| CVE-2017-12883 | Sep 19, 2017 |
Buffer overflow in the S_grok_bslash_N function in regcomp.c in Perl 5 before 5.24.3-RC1 and 5.26.x before 5.26.1-RC1Buffer overflow in the S_grok_bslash_N function in regcomp.c in Perl 5 before 5.24.3-RC1 and 5.26.x before 5.26.1-RC1 allows remote attackers to disclose sensitive information or cause a denial of service (application crash) via a crafted regular expression with an invalid '\N{U+...}' escape. |
|
| CVE-2017-12837 | Sep 19, 2017 |
Heap-based buffer overflow in the S_regatom function in regcomp.c in Perl 5 before 5.24.3-RC1 and 5.26.x before 5.26.1-RC1Heap-based buffer overflow in the S_regatom function in regcomp.c in Perl 5 before 5.24.3-RC1 and 5.26.x before 5.26.1-RC1 allows remote attackers to cause a denial of service (out-of-bounds write) via a regular expression with a '\N{}' escape and the case-insensitive modifier. |
|
| CVE-2015-8608 | Feb 07, 2017 |
The VDir::MapPathA and VDir::MapPathW functions in Perl 5.22The VDir::MapPathA and VDir::MapPathW functions in Perl 5.22 allow remote attackers to cause a denial of service (out-of-bounds read) and possibly execute arbitrary code via a crafted (1) drive letter or (2) pInName argument. |
|
| CVE-2016-1238 | Aug 02, 2016 |
(1) cpan/Archive-Tar/bin/ptar(1) cpan/Archive-Tar/bin/ptar, (2) cpan/Archive-Tar/bin/ptardiff, (3) cpan/Archive-Tar/bin/ptargrep, (4) cpan/CPAN/scripts/cpan, (5) cpan/Digest-SHA/shasum, (6) cpan/Encode/bin/enc2xs, (7) cpan/Encode/bin/encguess, (8) cpan/Encode/bin/piconv, (9) cpan/Encode/bin/ucmlint, (10) cpan/Encode/bin/unidump, (11) cpan/ExtUtils-MakeMaker/bin/instmodsh, (12) cpan/IO-Compress/bin/zipdetails, (13) cpan/JSON-PP/bin/json_pp, (14) cpan/Test-Harness/bin/prove, (15) dist/ExtUtils-ParseXS/lib/ExtUtils/xsubpp, (16) dist/Module-CoreList/corelist, (17) ext/Pod-Html/bin/pod2html, (18) utils/c2ph.PL, (19) utils/h2ph.PL, (20) utils/h2xs.PL, (21) utils/libnetcfg.PL, (22) utils/perlbug.PL, (23) utils/perldoc.PL, (24) utils/perlivp.PL, and (25) utils/splain.PL in Perl 5.x before 5.22.3-RC2 and 5.24 before 5.24.1-RC2 do not properly remove . (period) characters from the end of the includes directory array, which might allow local users to gain privileges via a Trojan horse module under the current working directory. |
|
| CVE-2016-6185 | Aug 02, 2016 |
The XSLoader::load method in XSLoader in Perl does not properly locate .so files when called in a string eval, which mightThe XSLoader::load method in XSLoader in Perl does not properly locate .so files when called in a string eval, which might allow local users to execute arbitrary code via a Trojan horse library under the current working directory. |
|
| CVE-2016-2381 | Apr 08, 2016 |
Perl might allow context-dependent attackers to bypass the taint protection mechanism in a child processPerl might allow context-dependent attackers to bypass the taint protection mechanism in a child process via duplicate environment variables in envp. |
|
| CVE-2015-8607 | Jan 13, 2016 |
The canonpath function in the File::Spec module in PathTools before 3.62, as used in Perl, does not properly preserve the taint attribute of data, which mightThe canonpath function in the File::Spec module in PathTools before 3.62, as used in Perl, does not properly preserve the taint attribute of data, which might allow context-dependent attackers to bypass the taint protection mechanism via a crafted string. |
|
| CVE-2011-2939 | Jan 13, 2012 |
Off-by-one error in the decode_xs function in Unicode/Unicode.xs in the Encode module before 2.44, as used in Perl before 5.15.6, mightOff-by-one error in the decode_xs function in Unicode/Unicode.xs in the Encode module before 2.44, as used in Perl before 5.15.6, might allow context-dependent attackers to cause a denial of service (memory corruption) via a crafted Unicode string, which triggers a heap-based buffer overflow. |
|
| CVE-1999-1386 | Dec 31, 1999 |
Perl 5.004_04 and earlier follows symbolic links when running with the -e option, whichPerl 5.004_04 and earlier follows symbolic links when running with the -e option, which allows local users to overwrite arbitrary files via a symlink attack on the /tmp/perl-eaXXXXX file. |
|