资源质量分配
作者: HomiGrotas创建于 2026年8月4日更新于 2026年8月11日
问题摘要
- 脆弱性类型:大规模任务/不当输入处理(CWE-915)
- 受影响的部分:可视化资源.后台(/api/可视化/)
- 受影响的版本:Redash 1.0.0 - > 26.08.0-dev
- 严重性:低
技术说明
可视化Reference.post endpoint处理可视化物体的更新,方法是接受JSON有效载荷,并使用块列表方法只剥去ID和查询-id: [Python] kwargs.pop ("id", 无) kwargs.pop ("query id", 无)
过滤后的有效载荷直接传递到自上自上自上自下自上自下自上自上自下自上自上自下自上自上自下自上自上自下自上自上自上自下自上自上自下自上自上自下自上自上自上自上自上自下自上自上自上自上自上自下自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自上自
```2ZZ
def 更新 模型( 自, 模型, 更新) :
k, v 在更新中. items ():
setattr( 型号, k, v)由于Python对象依赖于动态属性分配,攻击者可以提供任意的JSON密钥来覆盖内部模型状态(例如:QQdict `,外语密钥,或特权旗). 依靠综合清单而不是允许清单会造成大规模转让的脆弱性。 影响 具有编辑 query权限的认证用户可以:
- 覆盖被保护的内部ORM属性(例如:QQdict `,create at,org id).
- 通过修改未经授权的模型字段,使数据库出现腐败或绕过访问控制。
- 可能触发远程代码执行(RCE)或视下游对象序列化或生命周期钩而拒绝服务.
完整的技术解释[此处](https://homigrotas.ZGitHub.io/research/open source/redash.html).
- 重现步骤
- 认证为拥有编辑 query权限的用户。
- 拦截或构建 HTTP POST 请求/api/可视化/ " VISUALization ID " 。
- 发送包含出乎意料的内部属性的 JSON 机构( 如 {" { { { dict ` }" : {... 或出自意料的外语密钥属性 ):
POST/API/可视化/123 HTTP/1.1
主机:目标.redash.
授权: 携带者 < API TOKEN>
内容-类型:应用程序/json
{
"名":"更新维斯".
"类型":"CHART",
"(出自"明实录") "(出自"明实录".
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?观察到setatr修改了内部对象属性,导致模型.db.session.commit () 上无法验证的模型持久性.
这是一个错误,因为用户的访问量比他们应该的多很多,导致向数据库更新被腐蚀的变量. 适当的解决办法是,通过动态取取类变量(删除内部变量),并排除`id,查询-id'字段,创建一个白名单。
技术细节: 检查了 Redash 版本: 26.08.0-dev
内容来源: getredash/redash