cve.bz

CVE-2026-126367

@grpc/grpc-js: safe_regex incorrectly applies partial string matching for patterns with alternation

4.8 mediumFix available

Medium (4.8) in grpc grpc-node. Fixed in @grpc/grpc-js-xds 1.13.2, 1.14.2.

On this page
@grpc/grpc-js implements the core functionality of gRPC purely in JavaScript, without a C++ addon. Before 1.13.2, and from 1.14.0 through 1.14.1, the @grpc/grpc-js-xds SafeRegexValueMatcher and PathSafeRegexValueMatcher add start and end anchors without grouping a supplied top-level alternation. An expression intended to match one of several complete values can therefore match a prefix, substring, or suffix. The affected matchers are used for route selection, xDS credential identity matching, and RBAC URL path, principal name, server name, and header rules. An ALLOW policy using an alternation can consequently accept a method, certificate identity, or header value outside the intended set, while a DENY policy becomes broader rather than permissive. This issue is fixed in versions 1.13.2 and 1.14.2.

Severity

CVSS 3.1

4.8 medium
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
CWEs
CWE-625 Permissive Regular Expression
CWE-863 Incorrect Authorization
OWASP Top 10
A01:2025 Broken Access Control
Published
Assigned by
GitHub_M (CNA)
NVD analysis
Not in the NVD yet
Record from
the CVE List, synced

Ask an AI about this CVE

Show the promptExplain CVE-2026-126367 for an engineer deciding whether to act. Use https://cve.bz/api/public/cves/CVE-2026-126367?via=ask-ai-copy and https://cve.bz/cve/CVE-2026-126367?via=ask-ai-copy as the source of truth: what is affected and which versions fix it, whether it is in CISA KEV, public exploits, and its EPSS (an internet-wide 30-day estimate of exploitation activity, not a forecast for my systems). If they give no fixed versions, use the CVE record https://cveawg.mitre.org/api/cve/CVE-2026-126367 or the vendor advisory, not third-party mirrors. Tell me how to check whether I am affected and how to verify a fix. Cite the sources and say where they are uncertain.

Opens a third-party assistant; its answer is its own, not cve.bz's. The prompt holds only this CVE's id and public links.

Badge for a README or a site

CVE-2026-126367

An image that stays current: it is drawn from the data each time it is fetched (a host that proxies images, as GitHub does, may show its copy for a while). Markdown:

[![CVE-2026-126367](https://cve.bz/cve/badge/CVE-2026-126367.svg)](https://cve.bz/cve/CVE-2026-126367)

HTML:

<a href="https://cve.bz/cve/CVE-2026-126367"><img src="https://cve.bz/cve/badge/CVE-2026-126367.svg" alt="CVE-2026-126367"></a>

Affected

Versions

From the CNA's record in the CVE List.

ProductAffected
grpc-node< 1.13.2
grpc-node>= 1.14.0, < 1.14.2

Packages (OSV)

AdvisoryEcosystemPackageAffectedFixed in
GHSA-r7hq-q2xm-6c5mnpm@grpc/grpc-js-xds>=1.14.0 <1.14.21.14.2
GHSA-r7hq-q2xm-6c5mnpm@grpc/grpc-js-xds<1.13.21.13.2

References

Check your stackJSON