CRITICAL🇬🇧 English

CVE-2022-25757

Apache APISIX — pominięcie walidacji body_schema przez duplikaty kluczy JSON

CVSS 9.8v3.1pub. 2022-03-28upd. 2024-11-21

Podatność w Apache APISIX (do wersji 2.12.1 włącznie) pozwala atakującemu ominąć walidację treści żądania (body_schema) w pluginie request-validation poprzez przesłanie obiektu JSON z duplikującymi się kluczami. Jest to krytyczna luka umożliwiająca przemycenie niebezpiecznych danych do aplikacji backendowej bez ich weryfikacji.

Pokaż oryginał (EN)

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.

🤖 Analiza AI
Jak działa

Biblioteka lua-cjson używana przez Apache APISIX, gdy napotka w JSON dwa klucze o tej samej nazwie, wybiera wartość ostatnio wystąpioną. Atakujący może zatem wysłać payload w stylu {"string_payload":"bad","string_payload":"good"} — APISIX zwaliduje wartość "good" jako bezpieczną, natomiast aplikacja backendowa korzystająca z biblioteki preferującej pierwszą wartość (np. jsoniter lub gojay) przetworzy wartość "bad". Skuteczny atak wymaga spełnienia trzech warunków: (1) w pluginie request-validation jest aktywna walidacja body_schema, (2) aplikacja backendowa używa biblioteki JSON wybierającej pierwszą wartość z duplikatów, (3) aplikacja backendowa nie przeprowadza własnej dodatkowej walidacji danych wejściowych. Poprawka polega na ponownym zakodowaniu zwalidowanego wejścia JSON z powrotem do treści żądania po stronie APISIX, zanim trafi ono do aplikacji backendowej.

Skutki

Atakujący może ominąć mechanizm walidacji danych wejściowych i dostarczyć do aplikacji backendowej dowolne, potencjalnie złośliwe dane, co może prowadzić do naruszenia poufności, integralności i dostępności systemu.

Mitygacja

Należy zaktualizować Apache APISIX do wersji 2.13.0 lub nowszej, w której problem został naprawiony przez ponowne kodowanie zwalidowanego wejścia JSON przed przekazaniem go do upstream. Jako środek tymczasowy można rozważyć dodanie własnej walidacji danych wejściowych po stronie aplikacji backendowej.

Kogo dotyczy

Apache APISIX w wersji 2.12.1 i wcześniejszych — pod warunkiem jednoczesnego użycia pluginu request-validation z walidacją body_schema, aplikacji backendowej opartej na bibliotece JSON preferującej pierwszą wartość z duplikatów (np. jsoniter, gojay) oraz braku własnej walidacji po stronie backendu.

Uwagi

Podatność dotyczy wyłącznie instalacji spełniających jednocześnie wszystkie trzy opisane warunki; środowiska niespełniające któregokolwiek z nich nie są narażone na ten konkretny wektor ataku.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Apache Apisix

    APP
    Apache
    < 2.13.0
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
CWE
Referencje

Powiązane podatności

CVE-2022-24112CRITICAL9.8⚠ KEVPL ✓ten sam produkt

Apache APISIX – RCE przez obejście ograniczeń IP w batch-requests

CVE-2026-31908CRITICAL9.1PL ✓ten sam produkt

Header injection w pluginie forward-auth Apache APISIX

CVE-2026-39999HIGH7.0ten sam produkt

Authentication Bypass by Spoofing vulnerability in Apache APISIX. The attacker can completely bypass authenti...

CVE-2026-31923HIGH7.5ten sam produkt

Cleartext Transmission of Sensitive Information vulnerability in Apache APISIX. This can occur due to `ssl_ve...

CVE-2025-62232HIGH7.5ten sam produkt

Sensitive data exposure via logging in basic-auth leads to plaintext usernames and passwords written to error ...