{"id":"CVE-2026-101914","aliases":["EUVD-2026-88464","GHSA-88h9-xgvx-hvf2"],"status":"published","title":"@grpc/grpc-js: The exact path match matcher incorrectly only applies a prefix match for case-insensitive matches","description":"@grpc/grpc-js implements the core functionality of gRPC purely in JavaScript, without a C++ addon. Prior to 1.13.1 and 1.14.1, the exact path (method name) matcher used by RBAC performs a prefix comparison instead of an equality comparison when case-insensitive matching is enabled. If one service method name prefixes another and the methods have different access rules, a request for the longer method can match the shorter method's rule and cause incorrect authorization. This issue is fixed in versions 1.13.1 and 1.14.1.","severity":{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.00251,"percentile":0.16665,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-187","CWE-863"],"published":"2026-09-28T19:36:55Z","modified":"2026-10-28T02:30:55Z","fixes":[{"ecosystem":"npm","package":"@grpc/grpc-js-xds","fixed_in":["1.13.1","1.14.1"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"@grpc/grpc-js-xds","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"1.13.1"}]}]},{"source":"ghsa","ecosystem":"npm","package":"@grpc/grpc-js-xds","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.14.0"},{"last_affected":"1.14.0"},{"fixed":"1.14.1"}]}],"versions":["1.14.0"]},{"source":"osv","ecosystem":"npm","package":"@grpc/grpc-js-xds","ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"1.13.1"}]}]},{"source":"osv","ecosystem":"npm","package":"@grpc/grpc-js-xds","ranges":[{"type":"SEMVER","events":[{"introduced":"1.14.0"},{"fixed":"1.14.1"}]}],"versions":["1.14.0"]}],"products":[{"vendor":"grpc","product":"grpc-node"}],"references":[{"url":"https://github.com/grpc/grpc-node/security/advisories/GHSA-88h9-xgvx-hvf2","tags":["x_refsource_CONFIRM","advisory","web"]},{"url":"https://github.com/grpc/grpc-node/commit/6cf64b596da03f1942a6b168998f0670217a99c4","tags":["x_refsource_MISC","fix","web"]},{"url":"https://github.com/grpc/grpc-node/commit/a6c5b31180cc8cea94d0a5ea215ce31a49e0409f","tags":["x_refsource_MISC","fix","web"]},{"url":"https://github.com/grpc/grpc-node/commit/f32f3712e44581d8dfc8359bd8d30096662f4c75","tags":["x_refsource_MISC","fix","web"]},{"url":"https://github.com/grpc/grpc-node/releases/tag/@grpc/grpc-js-xds%401.13.1","tags":["x_refsource_MISC","web"]},{"url":"https://github.com/grpc/grpc-node/releases/tag/@grpc/grpc-js-xds%401.14.1","tags":["x_refsource_MISC","web"]},{"url":"https://github.com/advisories/GHSA-88h9-xgvx-hvf2"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/101xxx/CVE-2026-101914.json","tags":["advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-101914","tags":["advisory"]},{"url":"https://github.com/grpc/grpc-node","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2026-101914","title":"@grpc/grpc-js: The exact path match matcher incorrectly only applies a prefix match for case-insensitive matches","description":"@grpc/grpc-js implements the core functionality of gRPC purely in JavaScript, without a C++ addon. Prior to 1.13.1 and 1.14.1, the exact path (method name) matcher used by RBAC performs a prefix comparison instead of an equality comparison when case-insensitive matching is enabled. If one service method name prefixes another and the methods have different access rules, a request for the longer method can match the shorter method's rule and cause incorrect authorization. This issue is fixed in versions 1.13.1 and 1.14.1.","status":"published","published":"2026-09-28T19:36:55.746Z","modified":"2026-09-29T19:21:17.564Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:N","level":"medium","assessor":"cna"}],"cwes":["CWE-187","CWE-863"],"updated_at":"2026-11-02T14:20:09.448255Z"}],"euvd":[{"id":"EUVD-2026-88464","description":"@grpc/grpc-js implements the core functionality of gRPC purely in JavaScript, without a C++ addon. Prior to 1.13.1 and 1.14.1, the exact path (method name) matcher used by RBAC performs a prefix comparison instead of an equality comparison when case-insensitive matching is enabled. If one service method name prefixes another and the methods have different access rules, a request for the longer method can match the shorter method's rule and cause incorrect authorization. This issue is fixed in versions 1.13.1 and 1.14.1.","status":"published","published":"2026-09-28T19:36:55Z","modified":"2026-09-29T19:21:17Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:N","level":"medium"}],"updated_at":"2026-11-02T17:27:51.078545Z"}],"ghsa":[{"id":"GHSA-88h9-xgvx-hvf2","title":"@grpc/grpc-js: The exact path match matcher incorrectly only applies a prefix match for case-insensitive matches","description":"### Impact\nWhen using RBAC to apply authentication rules, the exact path (method name) matcher applies a prefix match instead of an exact match for case-insensitive matches. As a result, if a service has a method with a name that is a prefix of the name of a different method, and they have different access rules, and case-insensitive matching is used, this bug can cause improper authentication.\n\n### Patches\n\nThis vulnerability is fixed in 1.13.1 and 1.14.1.\n\n### Workarounds\nThis problem can be avoided by enabling case-sensitive path matching.","status":"published","published":"2026-09-28T19:43:51Z","modified":"2026-09-28T19:46:33Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:N","level":"medium"}],"cwes":["CWE-187","CWE-863"],"updated_at":"2026-11-02T14:41:22.654187Z"}],"nvd":[{"id":"CVE-2026-101914","description":"@grpc/grpc-js implements the core functionality of gRPC purely in JavaScript, without a C++ addon. Prior to 1.13.1 and 1.14.1, the exact path (method name) matcher used by RBAC performs a prefix comparison instead of an equality comparison when case-insensitive matching is enabled. If one service method name prefixes another and the methods have different access rules, a request for the longer method can match the shorter method's rule and cause incorrect authorization. This issue is fixed in versions 1.13.1 and 1.14.1.","status":"published","published":"2026-09-28T20:17:09.453Z","modified":"2026-09-30T19:57:08.043Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:N","level":"medium","assessor":"secondary"}],"cwes":["CWE-187","CWE-863"],"updated_at":"2026-11-02T14:12:52.413234Z"}],"osv":[{"id":"CVE-2026-101914","title":"@grpc/grpc-js: The exact path match matcher incorrectly only applies a prefix match for case-insensitive matches","description":"@grpc/grpc-js implements the core functionality of gRPC purely in JavaScript, without a C++ addon. Prior to 1.13.1 and 1.14.1, the exact path (method name) matcher used by RBAC performs a prefix comparison instead of an equality comparison when case-insensitive matching is enabled. If one service method name prefixes another and the methods have different access rules, a request for the longer method can match the shorter method's rule and cause incorrect authorization. This issue is fixed in versions 1.13.1 and 1.14.1.","status":"published","published":"2026-09-28T19:36:55.746Z","modified":"2026-10-28T02:30:55.778284784Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:N","level":"medium"}],"cwes":["CWE-187","CWE-863"],"updated_at":"2026-11-02T15:44:53.83521Z"},{"id":"GHSA-88h9-xgvx-hvf2","title":"@grpc/grpc-js: The exact path match matcher incorrectly only applies a prefix match for case-insensitive matches","description":"### Impact\nWhen using RBAC to apply authentication rules, the exact path (method name) matcher applies a prefix match instead of an exact match for case-insensitive matches. As a result, if a service has a method with a name that is a prefix of the name of a different method, and they have different access rules, and case-insensitive matching is used, this bug can cause improper authentication.\n\n### Patches\n\nThis vulnerability is fixed in 1.13.1 and 1.14.1.\n\n### Workarounds\nThis problem can be avoided by enabling case-sensitive path matching.","status":"published","published":"2026-09-28T19:43:51Z","modified":"2026-10-14T05:15:05.742465218Z","cvss":[{"version":"3.1","score":6.5,"vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:H/A:N","level":"medium"}],"cwes":["CWE-187","CWE-863"],"updated_at":"2026-11-02T15:46:42.077781Z"}]}}
