{ "schema_version": "1.4.0", "id": "GHSA-9xhv-qfpf-p2xx", "modified": "2022-04-05T00:00:57Z", "published": "2022-03-29T00:01:14Z", "aliases": [ "CVE-2022-25757" ], "details": "In Apache APISIX before 2.13.0, when decoding JSON with duplicate keys, lua-cjson will choose the last occurred value as the result. By passing a JSON with a duplicate key, the attacker can bypass the body_schema validation in the request-validation plugin. For example, `{\"string_payload\":\"bad\",\"string_payload\":\"good\"}` can be used to hide the \"bad\" input. Systems satisfy three conditions below are affected by this attack: 1. use body_schema validation in the request-validation plugin 2. upstream application uses a special JSON library that chooses the first occurred value, like jsoniter or gojay 3. upstream application does not validate the input anymore. The fix in APISIX is to re-encode the validated JSON input back into the request body at the side of APISIX. Improper Input Validation vulnerability in __COMPONENT__ of Apache APISIX allows an attacker to __IMPACT__. This issue affects Apache APISIX Apache APISIX version 2.12.1 and prior versions.", "severity": [ { "type": "CVSS_V3", "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H" } ], "affected": [], "references": [ { "type": "ADVISORY", "url": "https://nvd.nist.gov/vuln/detail/CVE-2022-25757" }, { "type": "WEB", "url": "https://lists.apache.org/thread/03vd2j81krxmpz6xo8p1dl642flpo6fv" }, { "type": "WEB", "url": "http://www.openwall.com/lists/oss-security/2022/03/28/2" } ], "database_specific": { "cwe_ids": [ "CWE-20" ], "severity": "CRITICAL", "github_reviewed": false, "github_reviewed_at": null, "nvd_published_at": "2022-03-28T07:15:00Z" } }