---
id: CVE-2026-78497
title: >-
  JQ::Lite versions before 2.51 for Perl execute Perl code embedded in a query's
  regular expression by compiling it with string eval
summary: >-
  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'...'…
severity: none
cwe:
  - CWE-95
product: JQ-Lite
affected:
  - JQ-Lite < 2.51
published: '2026-10-18'
updated: '2026-10-18'
sourceUpdated: '2026-10-18T11:32:05.853Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-78497'
references:
  - url: >-
      https://github.com/kawamurashingo/JQ-Lite/commit/c461721ae3d5a90d6d94dbb234c1b8dfee5c1769.patch
  - url: 'https://metacpan.org/release/SHINGO/JQ-Lite-2.51/changes'
tags:
  - cve.org
ingestedAt: '2026-10-18T11:40:26.627Z'
---

## Overview

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.

## Affected

- `JQ-Lite < 2.51`

## Remediation

Upgrade to JQ-Lite 2.51 or later.
