CVE-2026-33672
Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching
Picomatch is a glob matcher written JavaScript. Versions prior to 4.0.4, 3.0.2, and 2.3.2 are vulnerable to a method injection vulnerability affecting the POSIX_REGEX_SOURCE object. Because the object inherits from Object.prototype, specially crafted POSIX bracket expressions (e.g., [[:constructor:]]) can reference inherited method names. These methods are implicitly converted to strings and injected into the generated regular expression. This leads to incorrect glob matching behavior (integrity impact), where patterns may match unintended filenames. The issue does not enable remote code execution, but it can cause security-relevant logic errors in applications that rely on glob matching for filtering, validation, or access control. All users of affected picomatch versions that process untrusted or user-controlled glob patterns are potentially impacted. 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 sanitizing or rejecting untrusted glob patterns, especially those containing POSIX character classes like [[:...:]]; avoiding the use of POSIX bracket expressions if user input is involved; and manually patching the library by modifying POSIX_REGEX_SOURCE to use a null prototype.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- Low
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
5.3
Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching
Picomatch is a glob matcher written JavaScript. Versions prior to 4.0.4, 3.0.2, and 2.3.2 are vulnerable to a method injection vulnerability affecting the POSIX_REGEX_SOURCE object. Because the object inherits from Object.prototype, specially crafted POSIX bracket expressions (e.g., [[:constructor:]]) can reference inherited method names. These methods are implicitly converted to strings and injected into the generated regular expression. This leads to incorrect glob matching behavior (integrity impact), where patterns may match unintended filenames. The issue does not enable remote code execution, but it can cause security-relevant logic errors in applications that rely on glob matching for filtering, validation, or access control. All users of affected picomatch versions that process untrusted or user-controlled glob patterns are potentially impacted. 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 sanitizing or rejecting untrusted glob patterns, especially those containing POSIX character classes like [[:...:]]; avoiding the use of POSIX bracket expressions if user input is involved; and manually patching the library by modifying POSIX_REGEX_SOURCE to use a null prototype.
- Record
CVE-2026-33672- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N - Weakness
- CWE-1321
- Updated
- 2026-11-02
EUVDEUVD-2026-16438
5.3
Picomatch is a glob matcher written JavaScript. Versions prior to 4.0.4, 3.0.2, and 2.3.2 are vulnerable to a method injection vulnerability affecting the POSIX_REGEX_SOURCE object. Because the object inherits from Object.prototype, specially crafted POSIX bracket expressions (e.g., [[:constructor:]]) can reference inherited method names. These methods are implicitly converted to strings and injected into the generated regular expression. This leads to incorrect glob matching behavior (integrity impact), where patterns may match unintended filenames. The issue does not enable remote code execution, but it can cause security-relevant logic errors in applications that rely on glob matching for filtering, validation, or access control. All users of affected picomatch versions that process untrusted or user-controlled glob patterns are potentially impacted. 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 sanitizing or rejecting untrusted glob patterns, especially those containing POSIX character classes like [[:...:]]; avoiding the use of POSIX bracket expressions if user input is involved; and manually patching the library by modifying POSIX_REGEX_SOURCE to use a null prototype.
- Record
EUVD-2026-16438- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-3v7f-55p6-f55p
5.3
Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching
Impact
picomatch is vulnerable to a method injection vulnerability (CWE-1321) affecting the POSIX_REGEX_SOURCE object. Because the object inherits from Object.prototype, specially crafted POSIX bracket expressions (e.g., [[:constructor:]]) can reference inherited method names. These methods are implicitly converted to strings and injected into the generated regular expression.
This leads to incorrect glob matching behavior (integrity impact), where patterns may match unintended filenames. The issue does not enable remote code execution, but it can cause security-relevant logic errors in applications that rely on glob matching for filtering, validation, or access control.
All users of affected picomatch versions that process untrusted or user-controlled glob patterns are potentially impacted.
Patches
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.
Workarounds
If upgrading is not immediately possible, avoid passing untrusted glob patterns to picomatch.
Possible mitigations include:
-
Sanitizing or rejecting untrusted glob patterns, especially those containing POSIX character classes like
[[:...:]]. -
Avoiding the use of POSIX bracket expressions if user input is involved.
-
Manually patching the library by modifying
POSIX_REGEX_SOURCEto use a null prototype:const POSIX_REGEX_SOURCE = { __proto__: null, alnum: 'a-zA-Z0-9', alpha: 'a-zA-Z', // ... rest unchanged };
Resources
- fix for similar issue: https://github.com/micromatch/picomatch/pull/144
- picomatch repository https://github.com/micromatch/picomatch
- Record
GHSA-3v7f-55p6-f55p- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N - Weakness
- CWE-1321
- Updated
- 2026-11-02
NVD
5.3
Picomatch is a glob matcher written JavaScript. Versions prior to 4.0.4, 3.0.2, and 2.3.2 are vulnerable to a method injection vulnerability affecting the POSIX_REGEX_SOURCE object. Because the object inherits from Object.prototype, specially crafted POSIX bracket expressions (e.g., [[:constructor:]]) can reference inherited method names. These methods are implicitly converted to strings and injected into the generated regular expression. This leads to incorrect glob matching behavior (integrity impact), where patterns may match unintended filenames. The issue does not enable remote code execution, but it can cause security-relevant logic errors in applications that rely on glob matching for filtering, validation, or access control. All users of affected picomatch versions that process untrusted or user-controlled glob patterns are potentially impacted. 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 sanitizing or rejecting untrusted glob patterns, especially those containing POSIX character classes like [[:...:]]; avoiding the use of POSIX bracket expressions if user input is involved; and manually patching the library by modifying POSIX_REGEX_SOURCE to use a null prototype.
- Record
CVE-2026-33672- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N - Weakness
- CWE-1321
- Updated
- 2026-11-02
OSV
5.3
Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching
Picomatch is a glob matcher written JavaScript. Versions prior to 4.0.4, 3.0.2, and 2.3.2 are vulnerable to a method injection vulnerability affecting the POSIX_REGEX_SOURCE object. Because the object inherits from Object.prototype, specially crafted POSIX bracket expressions (e.g., [[:constructor:]]) can reference inherited method names. These methods are implicitly converted to strings and injected into the generated regular expression. This leads to incorrect glob matching behavior (integrity impact), where patterns may match unintended filenames. The issue does not enable remote code execution, but it can cause security-relevant logic errors in applications that rely on glob matching for filtering, validation, or access control. All users of affected picomatch versions that process untrusted or user-controlled glob patterns are potentially impacted. 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 sanitizing or rejecting untrusted glob patterns, especially those containing POSIX character classes like [[:...:]]; avoiding the use of POSIX bracket expressions if user input is involved; and manually patching the library by modifying POSIX_REGEX_SOURCE to use a null prototype.
- Record
CVE-2026-33672- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N - Weakness
- CWE-1321
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-33672
5.3
Picomatch is a glob matcher written JavaScript. Versions prior to 4.0.4, 3.0.2, and 2.3.2 are vulnerable to a method injection vulnerability affecting the POSIX_REGEX_SOURCE object. Because the object inherits from Object.prototype, specially crafted POSIX bracket expressions (e.g., [[:constructor:]]) can reference inherited method names. These methods are implicitly converted to strings and injected into the generated regular expression. This leads to incorrect glob matching behavior (integrity impact), where patterns may match unintended filenames. The issue does not enable remote code execution, but it can cause security-relevant logic errors in applications that rely on glob matching for filtering, validation, or access control. All users of affected picomatch versions that process untrusted or user-controlled glob patterns are potentially impacted. 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 sanitizing or rejecting untrusted glob patterns, especially those containing POSIX character classes like [[:...:]]; avoiding the use of POSIX bracket expressions if user input is involved; and manually patching the library by modifying POSIX_REGEX_SOURCE to use a null prototype.
- Record
DEBIAN-CVE-2026-33672- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N - Updated
- 2026-11-02
Show 8 moreShow less
OSVGHSA-3v7f-55p6-f55p
5.3
Picomatch: Method Injection in POSIX Character Classes causes incorrect Glob Matching
Impact
picomatch is vulnerable to a method injection vulnerability (CWE-1321) affecting the POSIX_REGEX_SOURCE object. Because the object inherits from Object.prototype, specially crafted POSIX bracket expressions (e.g., [[:constructor:]]) can reference inherited method names. These methods are implicitly converted to strings and injected into the generated regular expression.
This leads to incorrect glob matching behavior (integrity impact), where patterns may match unintended filenames. The issue does not enable remote code execution, but it can cause security-relevant logic errors in applications that rely on glob matching for filtering, validation, or access control.
All users of affected picomatch versions that process untrusted or user-controlled glob patterns are potentially impacted.
Patches
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.
Workarounds
If upgrading is not immediately possible, avoid passing untrusted glob patterns to picomatch.
Possible mitigations include:
-
Sanitizing or rejecting untrusted glob patterns, especially those containing POSIX character classes like
[[:...:]]. -
Avoiding the use of POSIX bracket expressions if user input is involved.
-
Manually patching the library by modifying
POSIX_REGEX_SOURCEto use a null prototype:const POSIX_REGEX_SOURCE = { __proto__: null, alnum: 'a-zA-Z0-9', alpha: 'a-zA-Z', // ... rest unchanged };
Resources
- fix for similar issue: https://github.com/micromatch/picomatch/pull/144
- picomatch repository https://github.com/micromatch/picomatch
- Record
GHSA-3v7f-55p6-f55p- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N - Weakness
- CWE-1321
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-33672
5.3
Picomatch is a glob matcher written JavaScript. Versions prior to 4.0.4, 3.0.2, and 2.3.2 are vulnerable to a method injection vulnerability affecting the POSIX_REGEX_SOURCE object. Because the object inherits from Object.prototype, specially crafted POSIX bracket expressions (e.g., [[:constructor:]]) can reference inherited method names. These methods are implicitly converted to strings and injected into the generated regular expression. This leads to incorrect glob matching behavior (integrity impact), where patterns may match unintended filenames. The issue does not enable remote code execution, but it can cause security-relevant logic errors in applications that rely on glob matching for filtering, validation, or access control. All users of affected picomatch versions that process untrusted or user-controlled glob patterns are potentially impacted. 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 sanitizing or rejecting untrusted glob patterns, especially those containing POSIX character classes like [[:...:]]; avoiding the use of POSIX bracket expressions if user input is involved; and manually patching the library by modifying POSIX_REGEX_SOURCE to use a null prototype.
- Record
UBUNTU-CVE-2026-33672- CVSS 3.1
- 5.3 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N - Updated
- 2026-11-02
OSVAZL-81023 No score
CVE-2026-33672 affecting package nodejs-nodemon 2.0.3-5
Picomatch is a glob matcher written JavaScript. Versions prior to 4.0.4, 3.0.2, and 2.3.2 are vulnerable to a method injection vulnerability affecting the POSIX_REGEX_SOURCE object. Because the object inherits from Object.prototype, specially crafted POSIX bracket expressions (e.g., [[:constructor:]]) can reference inherited method names. These methods are implicitly converted to strings and injected into the generated regular expression. This leads to incorrect glob matching behavior (integrity impact), where patterns may match unintended filenames. The issue does not enable remote code execution, but it can cause security-relevant logic errors in applications that rely on glob matching for filtering, validation, or access control. All users of affected picomatch versions that process untrusted or user-controlled glob patterns are potentially impacted. 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 sanitizing or rejecting untrusted glob patterns, especially those containing POSIX character classes like [[:...:]]; avoiding the use of POSIX bracket expressions if user input is involved; and manually patching the library by modifying POSIX_REGEX_SOURCE to use a null prototype.
- Record
AZL-81023- Updated
- 2026-11-05
OSVAZL-81038 No score
CVE-2026-33672 affecting package nodejs24 for versions less than 24.14.1-2
Picomatch is a glob matcher written JavaScript. Versions prior to 4.0.4, 3.0.2, and 2.3.2 are vulnerable to a method injection vulnerability affecting the POSIX_REGEX_SOURCE object. Because the object inherits from Object.prototype, specially crafted POSIX bracket expressions (e.g., [[:constructor:]]) can reference inherited method names. These methods are implicitly converted to strings and injected into the generated regular expression. This leads to incorrect glob matching behavior (integrity impact), where patterns may match unintended filenames. The issue does not enable remote code execution, but it can cause security-relevant logic errors in applications that rely on glob matching for filtering, validation, or access control. All users of affected picomatch versions that process untrusted or user-controlled glob patterns are potentially impacted. 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 sanitizing or rejecting untrusted glob patterns, especially those containing POSIX character classes like [[:...:]]; avoiding the use of POSIX bracket expressions if user input is involved; and manually patching the library by modifying POSIX_REGEX_SOURCE to use a null prototype.
- Record
AZL-81038- Updated
- 2026-11-02
OSVCLSA-2026-1778805972 No score
TuxCare security update for picomatch (2 CVEs)
TuxCare rebuilt picomatch to address 2 CVEs. Fixed in 4.0.2-tuxcare.1.
- Record
CLSA-2026-1778805972- Updated
- 2026-11-02
OSVCLSA-2026-1778805973 No score
TuxCare security update for picomatch (2 CVEs)
TuxCare rebuilt picomatch to address 2 CVEs. Fixed in 2.3.1-tuxcare.1.
- Record
CLSA-2026-1778805973- Updated
- 2026-11-02
OSVCLSA-2026-1784596322 No score
TuxCare security update for picomatch (2 CVEs)
TuxCare rebuilt picomatch to address 2 CVEs. Fixed in 4.0.1-tuxcare.1.
- Record
CLSA-2026-1784596322- Updated
- 2026-11-02
OSVCLSA-2026-1793205291 No score
TuxCare security update for picomatch (2 CVEs)
TuxCare rebuilt picomatch to address 2 CVEs. Fixed in 4.0.3-tuxcare.1.
- Record
CLSA-2026-1793205291- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
picomatchnpm |
4.0.0 up to 4.0.4 | 4.0.4 |
picomatchnpm |
3.0.0 up to 3.0.2 | 3.0.2 |
picomatchnpm |
before 2.3.2 | 2.3.2 |
nodejs-nodemonAzure Linux:3 |
through 2.0.3-5 | None known |
nodejs24Azure Linux:3 |
before 24.14.1-2 | 24.14.1-2 |
picomatchTuxCare:npm From an advisory covering 2 CVEs |
4.0.2-tuxcare.0 up to 4.0.2-tuxcare.1, plus listed versions 4.0.2 |
4.0.2-tuxcare.1 |
picomatchTuxCare:npm From an advisory covering 2 CVEs |
2.3.1-tuxcare.0 up to 2.3.1-tuxcare.1, plus listed versions 2.3.1 |
2.3.1-tuxcare.1 |
picomatchTuxCare:npm From an advisory covering 2 CVEs |
4.0.1-tuxcare.0 up to 4.0.1-tuxcare.1, plus listed versions 4.0.1 |
4.0.1-tuxcare.1 |
picomatchTuxCare:npm From an advisory covering 2 CVEs |
4.0.3-tuxcare.0 up to 4.0.3-tuxcare.1, plus listed versions 4.0.3 |
4.0.3-tuxcare.1 |
node-anymatchDebian:12 |
All versions, plus listed versions 3.1.3+~cs4.6.1-23.1.3+~cs8.0.5-13.1.3+~cs8.0.6-1 |
None known |
Show 8 moreShow less
| Package | Affected | Fixed |
|---|---|---|
node-anymatchDebian:13 |
All versions, plus listed versions 3.1.3+~cs4.6.1-23.1.3+~cs8.0.5-13.1.3+~cs8.0.6-1 |
None known |
node-anymatchDebian:14 |
before 3.1.3+~cs8.0.6-1, plus listed versions 3.1.3+~cs4.6.1-23.1.3+~cs8.0.5-1 |
3.1.3+~cs8.0.6-1 |
node-anymatchUbuntu:18.04:LTS |
All versions, plus listed versions 1.3.0-1 |
None known |
node-anymatchUbuntu:20.04:LTS |
All versions, plus listed versions 3.0.3+~2.0.7-33.1.1+~2.1.1-1 |
None known |
node-anymatchUbuntu:22.04:LTS |
All versions, plus listed versions 3.1.1+~2.2.2-13.1.2+~cs4.5.6-1 |
None known |
node-anymatchUbuntu:24.04:LTS |
All versions, plus listed versions 3.1.3+~cs4.6.1-2 |
None known |
node-anymatchUbuntu:25.10 |
All versions, plus listed versions 3.1.3+~cs4.6.1-2 |
None known |
node-anymatchUbuntu:26.04:LTS |
All versions, plus listed versions 3.1.3+~cs4.6.1-23.1.3+~cs8.0.6-1 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, aliases | ||
| affected | OSV | |
| facts | OSV | |
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-33672 is a medium vulnerability (CVSS 5.3) in Jonschlinkert Picomatch, published March 25, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.43%, the 37th percentile. Fixed in picomatch 4.0.4.
References
github.com/micromatch/picomatch/security/advisories/GHSA-3v7f-55p6-f55p
github.com/micromatch/picomatch/commit/4516eb521f13a46b2fe1a1d2c9ef6b20ddc0e903
nvd.nist.gov/vuln/detail/CVE-2026-33672
github.com/advisories/GHSA-3v7f-55p6-f55p
github.com/CVEProject/cvelistV5/tree/main/cves/2026/33xxx/CVE-2026-33672.json
security-tracker.debian.org/tracker/CVE-2026-33672
github.com/micromatch/picomatch
ubuntu.com/security/CVE-2026-33672
cve.org/CVERecord?id=CVE-2026-33672