Security Advisories (1)
CVE-2026-8376 (2026-05-25)

Perl versions through 5.43.10 have a heap buffer overflow when compiling regular expressions with a repeated fixed string on 32-bit builds. Perl_study_chunk in regcomp_study.c checked the size of the joined substring buffer in characters rather than bytes. For a quantified fixed substring with a large minimum count, the byte length mincount * l could overflow SSize_t, producing an undersized SvGROW allocation; the subsequent copy writes past the end of the buffer. A caller that compiles an attacker-controlled regular expression on a 32-bit perl build triggers a heap buffer overflow at compile time.

NAME

PerlIO::scalar - in-memory IO, scalar IO

SYNOPSIS

my $scalar = '';
...
open my $fh, "<",  \$scalar or die;
open my $fh, ">",  \$scalar or die;
open my $fh, ">>", \$scalar or die;

or

my $scalar = '';
...
open my $fh, "<:scalar",  \$scalar or die;
open my $fh, ">:scalar",  \$scalar or die;
open my $fh, ">>:scalar", \$scalar or die;

DESCRIPTION

A filehandle is opened but the file operations are performed "in-memory" on a scalar variable. All the normal file operations can be performed on the handle. The scalar is considered a stream of bytes. Currently fileno($fh) returns -1.

Attempting to open a read-only scalar for writing will fail, and if warnings are enabled, produce a warning.

IMPLEMENTATION NOTE

PerlIO::scalar only exists as a stub. One does not need to explicitly use PerlIO::scalar.