CVE-2026-34595Parse Server是一个基于Node.js的开源后端框架。在8.6.70和9.7.0-alpha.18之前的版本中,存在一个安全漏洞。具有find类级别权限的经过身份验证的用户,可以通过发送特制的LiveQuery订阅请求来绕过protectedFields类级别权限设置。攻击者利用$or、$and或$nor运算符,并使用具有数字键和length属性的“类数组对象”代替数组,从而规避了保护字段的检查。订阅事件充当二进制预言机,允许攻击者推断受保护字段是否匹配给定的测试值,导致信息泄露风险。
该漏洞源于Parse Server在处理LiveQuery订阅请求时的逻辑缺陷。正常情况下,protectedFields机制用于限制敏感字段在查询结果中的可见性。然而,当订阅查询中包含$or、$and或$nor逻辑运算符时,代码期望接收标准的数组结构。攻击者可以利用JavaScript对象的可塑性,构造一个“类数组对象”(例如 `{ "0": {...}, "length": 1 }`),该对象在属性上模拟数组,但绕过了针对protectedFields的特定类型安全检查。当服务器处理这种畸形请求时,虽然可能执行了查询逻辑,但针对受保护字段的过滤机制失效。结果,LiveQuery订阅事件会根据查询条件的匹配情况返回响应。攻击者可以通过观察订阅事件是否触发(充当二进制预言机),来推断受保护字段(如用户邮箱、电话等)的具体数值,从而在无需直接读取字段内容的情况下获取敏感信息。