Security Advisories (1)
CVE-2026-15534 (2026-08-09)

Perl versions through 5.45.1 have out-of-bounds heap reads and writes during regular expression matching via an undersized superlinear cache in S_regmatch. The regex engine's superlinear cache holds one bit per subject position for each participating WHILEM node, so the bit count is the subject length plus one times the number of nodes. Nothing checks that product for positive overflow of the signed 32-bit count: a 286331153 byte subject matched against a pattern with 15 participating nodes stores the count as 14, leaving a two byte cache. The cache is then indexed from the real match position and node number, so reads go past the end of the allocation, and on failure CACHEsayNO sets a bit past it. A caller that matches an attacker controlled subject of this size against a pattern of this shape can crash the process or corrupt heap memory.

NAME

IPC::Msg - SysV Msg IPC object class

SYNOPSIS

use IPC::SysV qw(IPC_PRIVATE S_IRUSR S_IWUSR);
use IPC::Msg;

$msg = IPC::Msg->new(IPC_PRIVATE, S_IRUSR | S_IWUSR);

$msg->snd($msgtype, $msgdata);

$msg->rcv($buf, 256);

$ds = $msg->stat;

$msg->remove;

DESCRIPTION

A class providing an object based interface to SysV IPC message queues.

METHODS

new ( KEY , FLAGS )

Creates a new message queue associated with KEY. A new queue is created if

  • KEY is equal to IPC_PRIVATE

  • KEY does not already have a message queue associated with it, and FLAGS & IPC_CREAT is true.

On creation of a new message queue FLAGS is used to set the permissions. Be careful not to set any flags that the Sys V IPC implementation does not allow: in some systems setting execute bits makes the operations fail.

id

Returns the system message queue identifier.

rcv ( BUF, LEN [, TYPE [, FLAGS ]] )

Read a message from the queue. Returns the type of the message read. See msgrcv(2). The BUF becomes tainted.

remove

Remove and destroy the message queue from the system.

set ( STAT )
set ( NAME => VALUE [, NAME => VALUE ...] )

set will set the following values of the stat structure associated with the message queue.

uid
gid
mode (oly the permission bits)
qbytes

set accepts either a stat object, as returned by the stat method, or a list of name-value pairs.

snd ( TYPE, MSG [, FLAGS ] )

Place a message on the queue with the data from MSG and with type TYPE. See msgsnd(2).

stat

Returns an object of type IPC::Msg::stat which is a sub-class of Class::Struct. It provides the following fields. For a description of these fields see you system documentation.

uid
gid
cuid
cgid
mode
qnum
qbytes
lspid
lrpid
stime
rtime
ctime

SEE ALSO

IPC::SysV, Class::Struct

AUTHORS

Graham Barr <gbarr@pobox.com>, Marcus Holland-Moritz <mhx@cpan.org>

COPYRIGHT

Version 2.x, Copyright (C) 2007-2013, Marcus Holland-Moritz.

Version 1.x, Copyright (c) 1997, Graham Barr.

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