报告者:Marco Paciaroni(BomboBombone)。
WikiLambda 未在嵌套函数数据中全面应用其未保存代码授权规则。匿名调用者可使未经批准的源代码跨越权限边界,并到达已配置的函数求值器。
CVE 记录将 1.47.0 之前的 WikiLambda 版本列为受影响版本。
该问题需要 WikiLambda 以及已配置的函数编排器/求值器。它绕过了管控未保存代码提交的权限。求值器使用 WASM 隔离;该发现并未证实可在 MediaWiki 主机上执行代码,也未证实沙箱逃逸。
原始报告记录了一次使用捕获服务进行的受控本地对比。一个本应被拒绝的请求被转发并跨越了授权边界。这证实了未经授权的代码提交;捕获服务并未执行主机命令。
上游变更使未保存代码检测能够检查嵌套对象和列表。在转发请求之前,授权必须考虑所提交结构中的全部代码。
python poc.py --api http://127.0.0.1:4000/api.php
本地测试 wiki 必须将其 WikiLambda 编排器指向由该脚本启动的环回捕获服务。该 PoC 将遭拒绝的对照请求与嵌套的 Z825 请求进行对比,并使用一个无害的返回标记。