CVE-2026-101914 @grpc/grpc-js 权限绕过漏洞
影响可能导致授权绕过,访问本应受限的方法
@grpc/grpc-js 是 gRPC 的纯 JavaScript 实现。在 1.13.1 和 1.14.1 之前的版本中,RBAC 的精确路径(方法名)匹配器在启用大小写不敏感匹配时执行的是前缀比较而非相等比较。当一个服务方法名是另一个方法名的前缀且两者访问规则不同时,针对较长方法的请求可能匹配到较短方法的规则,从而造成错误的授权判定。
影响范围
@grpc/grpc-js 1.13.1 之前版本及 1.14.1 之前版本(即 1.13.x < 1.13.1、1.14.x < 1.14.1)。
漏洞详情
漏洞类型为授权绕过(访问控制不当)。成因是 RBAC 方法名匹配逻辑在大小写不敏感模式下使用了前缀比较而非精确相等比较。利用方式是当存在方法名互为前缀且访问规则不同的两个方法时,攻击者调用较长方法名可能命中较短方法名的规则,从而绕过原本的访问限制。
利用条件与风险
利用前提是目标服务启用了 RBAC 且存在方法名互为前缀、访问规则不同的方法,并启用了大小写不敏感匹配。实战中可能导致越权访问受保护方法,风险取决于具体授权配置。
修复建议
官方已在 1.13.1 和 1.14.1 版本中修复,建议升级到对应修复版本。临时缓解措施暂无公开信息。
@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.