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

git-deltatool - Annotate commits for perldelta

SYNOPSIS

# annotate commits back to last 'git describe' tag

$ git-deltatool

# review annotations

$ git-deltatool --mode review

# review commits needing help

$ git-deltatool --mode review --type blocking

# summarize commits needing help

$ git-deltatool --mode summary --type blocking

# assemble annotations by section to STDOUT

$ git-deltatool --mode render

# Get a list of commits needing further review, e.g. for peer review

$ git-deltatool --mode summary --type blocking

# mark 'pending' annotations as 'done' (i.e. added to perldelta)

$ git-deltatool --mode update --type pending --status done

OPTIONS

--mode|-m MODE

Indicates the run mode for the program. The default is 'assign' which assigns categories and marks the notes as 'pending' (or 'ignored'). Other modes are 'review', 'render', 'summary' and 'update'.

--type|-t TYPE

Indicates what types of commits to process. The default for 'assign' mode is 'new', which processes commits without any perldelta notes. The default for 'review', 'summary' and 'render' modes is 'pending'. The options must be set explicitly for 'update' mode.

The type 'blocking' is reserved for commits needing further review.

--status|-s STATUS

For 'update' mode only, sets a new status. While there is no restriction, it should be one of 'new', 'pending', 'blocking', 'ignored' or 'done'.

--since REVISION

Defines the boundary for searching git commits. Defaults to the last major tag (as would be given by 'git describe').

--help

Shows the manual.

TODO

It would be nice to make some of the structured sections smarter -- e.g. look at changed files in pod/* for Documentation section entries. Likewise it would be nice to collate them during the render phase -- e.g. cluster all platform-specific things properly.

AUTHOR

David Golden <dagolden@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2010 by David Golden.

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