CVE-2022-25757
https://xz.aliyun.com/t/11465 其本质原因是因为 其解析重复键值json的时候存在差异 https://bishopfox.com/blog/json-interoperability-vulnerabilities ,应当有很多地方存在这样的漏洞
request-validation 用于检测用户的输入是否满足服务器的要求。
"request-validation": {
"body_schema": {
"type": "object",
"required": ["string_payload"],
"properties": {
"string_payload": {
"type": "string",
"minLength": 1,
"maxLength": 32
}
}
}}
但是当恶意的用户发送如下请求的时候,可以绕过限制
POST http://127.0.0.1:9080/10
...
{"string_payload":"","string_payload":"1111"}
因为:对于重复键值,request-validation会取最后面的值,而有些库会取最前面的数值 来源 ,比如实际的上游服务会取最前面的数值 ,从而导致数据的过滤失效