Security Advisories (24)
CVE-2011-2728 (2012-12-21)

The bsd_glob function in the File::Glob module for Perl before 5.14.2 allows context-dependent attackers to cause a denial of service (crash) via a glob expression with the GLOB_ALTDIRFUNC flag, which triggers an uninitialized pointer dereference.

CVE-2020-12723 (2020-06-05)

regcomp.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 (2020-06-05)

Perl 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 (2020-06-05)

Perl 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-6913 (2018-04-17)

Heap-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-18314 (2018-12-07)

Perl before 5.26.3 has a buffer overflow via a crafted regular expression that triggers invalid write operations.

CVE-2018-18313 (2018-12-07)

Perl 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-18312 (2018-12-05)

Perl 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-18311 (2018-12-07)

Perl 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-2015-8853 (2016-05-25)

The (1) S_reghop3, (2) S_reghop4, and (3) S_reghopmaybe3 functions in regexec.c in Perl before 5.24.0 allow context-dependent attackers to cause a denial of service (infinite loop) via crafted utf-8 data, as demonstrated by "a\x80."

CVE-2013-1667 (2013-03-14)

The rehash mechanism in Perl 5.8.2 through 5.16.x allows context-dependent attackers to cause a denial of service (memory consumption and crash) via a crafted hash key.

CVE-2010-4777 (2014-02-10)

The Perl_reg_numbered_buff_fetch function in Perl 5.10.0, 5.12.0, 5.14.0, and other versions, when running with debugging enabled, allows context-dependent attackers to cause a denial of service (assertion failure and application exit) via crafted input that is not properly handled when using certain regular expressions, as demonstrated by causing SpamAssassin and OCSInventory to crash.

CVE-2010-1158 (2010-04-20)

Integer overflow in the regular expression engine in Perl 5.8.x allows context-dependent attackers to cause a denial of service (stack consumption and application crash) by matching a crafted regular expression against a long string.

CVE-2009-3626 (2009-10-29)

Perl 5.10.1 allows context-dependent attackers to cause a denial of service (application crash) via a UTF-8 character with a large, invalid codepoint, which is not properly handled during a regular-expression match.

CVE-2005-3962 (2005-12-01)

Integer overflow in the format string functionality (Perl_sv_vcatpvfn) in Perl 5.9.2 and 5.8.6 Perl allows attackers to overwrite arbitrary memory and possibly execute arbitrary code via format string specifiers with large values, which causes an integer wrap and leads to a buffer overflow, as demonstrated using format string vulnerabilities in Perl applications.

CVE-2012-5195 (2012-12-18)

Heap-based buffer overflow in the Perl_repeatcpy function in util.c in Perl 5.12.x before 5.12.5, 5.14.x before 5.14.3, and 5.15.x before 15.15.5 allows context-dependent attackers to cause a denial of service (memory consumption and crash) or possibly execute arbitrary code via the 'x' string repeat operator.

CVE-2016-2381 (2016-04-08)

Perl might allow context-dependent attackers to bypass the taint protection mechanism in a child process via duplicate environment variables in envp.

CVE-2013-7422 (2015-08-16)

Integer underflow in regcomp.c in Perl before 5.20, as used in Apple OS X before 10.10.5 and other products, allows context-dependent attackers to execute arbitrary code or cause a denial of service (application crash) via a long digit string associated with an invalid backreference within a regular expression.

CVE-2011-1487 (2011-04-11)

The (1) lc, (2) lcfirst, (3) uc, and (4) ucfirst functions in Perl 5.10.x, 5.11.x, and 5.12.x through 5.12.3, and 5.13.x through 5.13.11, do not apply the taint attribute to the return value upon processing tainted input, which might allow context-dependent attackers to bypass the taint protection mechanism via a crafted string.

CVE-2023-47100

In Perl before 5.38.2, S_parse_uniprop_string in regcomp.c can write to unallocated space because a property name associated with a \p{...} regular expression construct is mishandled. The earliest affected version is 5.30.0.

CVE-2024-56406 (2025-04-13)

A heap buffer overflow vulnerability was discovered in Perl. 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 (2023-10-30)

Perl for Windows relies on the system path environment variable to find the shell (cmd.exe). When running an executable which uses 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. An attacker with limited privileges can exploit this behavior by placing cmd.exe in locations with weak permissions, such as C:\ProgramData. By doing so, when an administrator attempts to use this executable from these compromised locations, arbitrary code can be executed.

CVE-2016-1238 (2016-08-02)

(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-2015-8608 (2017-02-07)

The 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.

NAME

CPANPLUS::Config

DESCRIPTION

This module contains defaults and heuristics for configuration information for CPANPLUS. To change any of these values, please see the documentation in CPANPLUS::Configure.

Below you'll find a list of configuration types and keys, and their meaning.

CONFIGURATION

Section 'conf'

hosts

An array ref containing hosts entries to be queried for packages.

An example entry would like this:

{   'scheme' => 'ftp',
    'path' => '/pub/CPAN/',
    'host' => 'ftp.cpan.org'
},
allow_build_interactivity

Boolean flag to indicate whether 'perl Makefile.PL' and similar are run interactively or not. Defaults to 'true'.

base

The directory CPANPLUS keeps all it's build and state information in. Defaults to ~/.cpanplus.

buildflags

Any flags to be passed to 'perl Build.PL'. See perldoc Module::Build for details. Defaults to an empty string.

cpantest

Boolean flag to indicate whether or not to mail test results of module installations to http://testers.cpan.org. Defaults to 'false'.

cpantest_mx

String holding an explicit mailserver to use when sending out emails for http://testers.cpan.org. An empty string will use your system settings. Defaults to an empty string.

debug

Boolean flag to enable or disable extensive debuggging information. Defaults to 'false'.

dist_type

Default distribution type to use when building packages. See cpan2dist or CPANPLUS::Dist for details. An empty string will not use any package building software. Defaults to an empty string.

email

Email address to use for anonymous ftp access and as from address when sending emails. Defaults to an example.com address.

extractdir

String containing the directory where fetched archives should be extracted. An empty string will use a directory under your base directory. Defaults to an empty string.

fetchdir

String containing the directory where fetched archives should be stored. An empty string will use a directory under your base directory. Defaults to an empty string.

flush

Boolean indicating whether build failures, cache dirs etc should be flushed after every operation or not. Defaults to 'true'.

force

Boolean indicating whether files should be forcefully overwritten if they exist, modules should be installed when they fail tests, etc. Defaults to 'false'.

lib

An array ref holding directories to be added to @INC when CPANPLUS starts up. Defaults to an empty array reference.

makeflags

A string holding flags that will be passed to the make program when invoked. Defaults to an empty string.

makemakerflags

A string holding flags that will be passed to perl Makefile.PL when invoked. Defaults to an empty string.

md5

A boolean indicating whether or not md5 checks should be done when an archive is fetched. Defaults to 'true' if you have Digest::MD5 installed, 'false' otherwise.

no_update

A boolean indicating whether or not CPANPLUS' source files should be updated or not. Defaults to 'false'.

passive

A boolean indicating whether or not to use passive ftp connections. Defaults to 'true'.

prefer_bin

A boolean indicating whether or not to prefer command line programs over perl modules. Defaults to 'false' unless you do not have Compress::Zlib installed (as that would mean we could not extract .tar.gz files)

prefer_makefile

A boolean indicating whether or not prefer a Makefile.PL over a Build.PL file if both are present. Defaults to 'true'.

prereqs

A digit indicating what to do when a package you are installing has a prerequisite. Options are:

0   Do not install
1   Install
2   Ask
3   Ignore  (dangerous, install will probably fail!)

The default is to ask.

shell

A string holding the shell class you wish to start up when starting CPANPLUS in interactive mode.

Defaults to CPANPLUS::Shell::Default, the default CPANPLUS shell.

show_startup_tip

A boolean indicating whether or not to show start up tips in the interactive shell. Defaults to 'true'.

signature

A boolean indicating whether or not check signatures if packages are signed. Defaults to 'true' if you have gpg or Crypt::OpenPGP installed, 'false' otherwise.

skiptest

A boolean indicating whether or not to skip tests when installing modules. Defaults to 'false'.

storable

A boolean indicating whether or not to use Storable to write compiled source file information to disk. This makes for faster startup and look up times, but takes extra diskspace. Defaults to 'true' if you have Storable installed and 'false' if you don't.

timeout

Digit indicating the time before a fetch request times out (in seconds). Defaults to 300.

verbose

A boolean indicating whether or not CPANPLUS runs in verbose mode. Defaults to 'true' if you have the environment variable PERL5_CPANPLUS_VERBOSE set to true, 'false' otherwise.

It is recommended you run with verbose enabled, but it is disabled for historical reasons.

write_install_log

A boolean indicating whether or not to write install logs after installing a module using the interactive shell. Defaults to 'true'.

Section 'program'

editor

A string holding the path to your editor of choice. Defaults to your $ENV{EDITOR}, $ENV{VISIUAL}, 'vi' or 'pico' programs, in that order.

make

A string holding the path to your make binary. Looks for the make program used to build perl or failing that, a make in your path.

pager

A string holding the path to your pager of choice. Defaults to your $ENV{PAGER}, 'less' or 'more' programs, in that order.

shell

A string holding the path to your login shell of choice. Defaults to your $ENV{SHELL} setting, or $ENV{COMSPEC} on Windows.

sudo

A string holding the path to your sudo binary if your install path requires super user permissions. Looks for sudo in your path, or remains empty if you do not require super user permissiosn to install.

perlwrapper

A string holding the path to the cpanp-run-perl utility bundled with CPANPLUS, which is used to enable autoflushing in spawned processes.

BUG REPORTS

Please report bugs or other issues to <bug-cpanplus@rt.cpan.org<gt>.

AUTHOR

This module by Jos Boumans <kane@cpan.org>.

COPYRIGHT

The CPAN++ interface (of which this module is a part of) is copyright (c) 2001 - 2007, Jos Boumans <kane@cpan.org>. All rights reserved.

This library is free software; you may redistribute and/or modify it under the same terms as Perl itself.

SEE ALSO

CPANPLUS::Backend, CPANPLUS::Configure::Setup, CPANPLUS::Configure