{"id":"BIT-apisix-2022-25757","summary":"Apache APISIX: the body_schema check in request-validation plugin can be bypassed","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.","aliases":["CVE-2022-25757"],"modified":"2026-09-08T08:45:31.063260661Z","published":"2024-03-06T10:50:56.297Z","database_specific":{"severity":"Critical","cpes":["cpe:2.3:a:apache:apisix:*:*:*:*:*:*:*:*"]},"references":[{"type":"ADVISORY","url":"http://www.openwall.com/lists/oss-security/2022/03/28/2"},{"type":"ADVISORY","url":"https://lists.apache.org/thread/03vd2j81krxmpz6xo8p1dl642flpo6fv"},{"type":"WEB","url":"https://nvd.nist.gov/vuln/detail/CVE-2022-25757"}],"affected":[{"package":{"name":"apisix","ecosystem":"Bitnami","purl":"pkg:bitnami/apisix"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"},{"fixed":"2.13.0"}]}],"database_specific":{"source":"https://github.com/bitnami/vulndb/tree/main/data/apisix/BIT-apisix-2022-25757.json"},"severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"}]}],"schema_version":"1.9.0"}