CVE-2026-33671

Picomatch is a glob matcher written JavaScript. Versions prior to 4.0.4, 3.0.2, and 2.3.2 are vulnerable to Regular Expression Denial of Service (ReDoS) when processing crafted extglob patterns. Certain patterns using extglob quantifiers such as `+()` and `*()`, especially when combined with overlapping alternatives or nested extglobs, are compiled into regular expressions that can exhibit catastrophic backtracking on non-matching input. Applications are impacted when they allow untrusted users to supply glob patterns that are passed to `picomatch` for compilation or matching. In those cases, an attacker can cause excessive CPU consumption and block the Node.js event loop, resulting in a denial of service. Applications that only use trusted, developer-controlled glob patterns are much less likely to be exposed in a security-relevant way. This issue is fixed in picomatch 4.0.4, 3.0.2 and 2.3.2. Users should upgrade to one of these versions or later, depending on their supported release line. If upgrading is not immediately possible, avoid passing untrusted glob patterns to `picomatch`. Possible mitigations include disabling extglob support for untrusted patterns by using `noextglob: true`, rejecting or sanitizing patterns containing nested extglobs or extglob quantifiers such as `+()` and `*()`, enforcing strict allowlists for accepted pattern syntax, running matching in an isolated worker or separate process with time and resource limits, and applying application-level request throttling and input validation for any endpoint that accepts glob patterns.
Configurations

Configuration 1 (hide)

OR cpe:2.3:a:jonschlinkert:picomatch:*:*:*:*:*:node.js:*:*
cpe:2.3:a:jonschlinkert:picomatch:*:*:*:*:*:node.js:*:*
cpe:2.3:a:jonschlinkert:picomatch:*:*:*:*:*:node.js:*:*

History

01 Apr 2026, 13:45

Type Values Removed Values Added
References () https://github.com/micromatch/picomatch/commit/5eceecd27543b8e056b9307d69e105ea03618a7d - () https://github.com/micromatch/picomatch/commit/5eceecd27543b8e056b9307d69e105ea03618a7d - Patch
References () https://github.com/micromatch/picomatch/security/advisories/GHSA-c2c7-rcm5-vvqj - () https://github.com/micromatch/picomatch/security/advisories/GHSA-c2c7-rcm5-vvqj - Patch, Vendor Advisory
CPE cpe:2.3:a:jonschlinkert:picomatch:*:*:*:*:*:node.js:*:*
First Time Jonschlinkert picomatch
Jonschlinkert

30 Mar 2026, 13:26

Type Values Removed Values Added
Summary
  • (es) Picomatch es un comparador de globs escrito en JavaScript. Las versiones anteriores a 4.0.4, 3.0.2 y 2.3.2 son vulnerables a la denegación de servicio por expresión regular (ReDoS) al procesar patrones extglob manipulados. Ciertos patrones que utilizan cuantificadores extglob como '+()' y '*()', especialmente cuando se combinan con alternativas superpuestas o extglobs anidados, se compilan en expresiones regulares que pueden exhibir un retroceso catastrófico en entradas no coincidentes. Las aplicaciones se ven afectadas cuando permiten a usuarios no confiables suministrar patrones glob que se pasan a 'picomatch' para su compilación o coincidencia. En esos casos, un atacante puede causar un consumo excesivo de CPU y bloquear el bucle de eventos de Node.js, lo que resulta en una denegación de servicio. Las aplicaciones que solo utilizan patrones glob confiables y controlados por el desarrollador son mucho menos propensas a estar expuestas de una manera relevante para la seguridad. Este problema se corrige en picomatch 4.0.4, 3.0.2 y 2.3.2. Los usuarios deben actualizar a una de estas versiones o posteriores, dependiendo de su línea de lanzamiento compatible. Si la actualización no es posible de inmediato, evite pasar patrones glob no confiables a 'picomatch'. Las posibles mitigaciones incluyen deshabilitar el soporte de extglob para patrones no confiables usando 'noextglob: true', rechazar o sanear patrones que contengan extglobs anidados o cuantificadores extglob como '+()' y '*()', aplicar listas de permitidos estrictas para la sintaxis de patrones aceptada, ejecutar la coincidencia en un trabajador aislado o proceso separado con límites de tiempo y recursos, y aplicar la limitación de solicitudes a nivel de aplicación y la validación de entrada para cualquier punto final que acepte patrones glob.

26 Mar 2026, 22:16

Type Values Removed Values Added
New CVE

Information

Published : 2026-03-26 22:16

Updated : 2026-04-01 13:45


NVD link : CVE-2026-33671

Mitre link : CVE-2026-33671

CVE.ORG link : CVE-2026-33671


JSON object : View

Products Affected

jonschlinkert

  • picomatch
CWE
CWE-1333

Inefficient Regular Expression Complexity