Skip to content
NewA calmer, faster ZeroHour

CVE-2026-78497

Perl code injection in JQ::Lite before 2.51 via regex

CVSS 3.1
8.4 high
EPSS
—
Published
·
Modified
Analyze CVE-2026-78497 with Vani AIImpact, affected versions, exploitation status, mitigations and detection

JQ::Lite before 2.51 compiles a query regular expression with string eval, so a (?{ ... }) code block in a pattern passed to test(), match(), or select() match and =~ conditions runs as Perl without use re 'eval'. A local attacker who supplies the query, or text an application inserts into that pattern, can run arbitrary Perl in the calling process. No privileges or user interaction are required.

What to do: Upgrade JQ::Lite to 2.51. Do not pass untrusted queries or text into test(), match(), or select() patterns until then.

ProductAffectedFixed in
JQ::Lite for Perlbefore 2.512.51
Estimated exposure
No basis for an estimate.

Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.

Description · NVD

JQ::Lite versions before 2.51 for Perl execute Perl code embedded in a query's regular expression by compiling it with string eval. The pattern given to test(), match(), or the match and =~ conditions of select() is placed in a `qr'...'` literal and compiled as source text, so a `(?{ ... })` code block in it runs without `use re 'eval'`. Single quotes in the pattern are escaped, but a code block runs in place and needs none. An attacker who supplies a query, or text that an application inserts into the pattern of one, can execute arbitrary Perl code in the calling process.

Weakness
CWE-95
Vector
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

In the news

1 story