Description
App::Ack versions before 3.10.0 for Perl allow memory exhaustion via an unbounded context value in a project .ackrc. ack searches up the directory hierarchy from the current directory for a project .ackrc and loads its options. The -B and -C context options accepted any positive integer, and ack sized the before-context buffer to that value, so a project .ackrc setting --before-context=100000000 made ack allocate a buffer of 100 million elements. A project .ackrc committed to an untrusted repository can abort ack with an out-of-memory condition.
Problem types
CWE-770 Allocation of Resources Without Limits or Throttling
Product status
Any version before 3.10.0
Timeline
| 2026-06-07: | Version 3.10.0 released with fix. |
Credits
Michał Majchrowicz (AFINE)
Marcin Wyczechowski (AFINE)
References
github.com/...45ff5fe77dbd96f7332f31943102291f878f30b8.patch
metacpan.org/release/PETDANCE/ack-v3.10.0/source/Changes