CVE-2026-49145: App::Ack versions through 3.10.0 for Perl read arbitrary files via --files-from in a project .ackrc Stig Palmquist 08 Jul 2026 14:57 UTC

========================================================================
CVE-2026-49145                                       CPAN Security Group
========================================================================

        CVE ID:  CVE-2026-49145
  Distribution:  ack
      Versions:  through 3.10.0

      MetaCPAN:  https://metacpan.org/dist/ack
      VCS Repo:  https://github.com/beyondgrep/ack3

App::Ack versions through 3.10.0 for Perl read arbitrary files via
--files-from in a project .ackrc

Description
-----------
App::Ack versions through 3.10.0 for Perl read arbitrary files via
--files-from in a project .ackrc.

ack searches up the directory hierarchy from the current directory for
a project .ackrc and loads its options. The project-source option
blocklist in App::Ack::ConfigLoader does not include --files-from, so a
project .ackrc can set it to a path whose listed files ack then reads
and searches. Version 3.10.0 added --follow to the blocklist;
--files-from remains accepted.

A project .ackrc committed to an untrusted repository can make ack read
files outside the project and print their matching lines.

Problem types
-------------
- CWE-73 External Control of File Name or Path
- CWE-426 Untrusted Search Path

Workarounds
-----------
Run ack with --noenv, or avoid running ack in a directory tree that
contains an untrusted .ackrc.

Solutions
---------
Upgrade to a future ack release.

References
----------
https://metacpan.org/release/PETDANCE/ack-v3.10.0/source/Changes

Timeline
--------
- 2026-06-07: Version 3.10.0 released with partial fix for the --follow
  option.

Credits
-------
MichaƂ Majchrowicz (AFINE), finder
Marcin Wyczechowski (AFINE), finder