Mockoon przed wersją 9.7.0 udostępnia admin API bez jakiegokolwiek uwierzytelnienia, z nagłówkiem CORS zezwalającym na dostęp z dowolnej domeny. Każdy niezautoryzowany atakujący mogący dosięgnąć portu serwera mock jest w stanie odczytać i modyfikować zmienne środowiskowe, nadpisywać konfigurację tras oraz uzyskiwać dostęp do logów transakcji.
▸ Pokaż oryginał (EN)
Mockoon provides way to design and run mock APIs. Prior to 9.7.0, Mockoon's admin API in commons-server/src/libs/server/admin-api.ts is mounted on the same Express listener as user-defined mock routes, enabled by default in shipped runtimes, serves Access-Control-Allow-Origin: * with write methods allowed, and has no authentication. Any unauthenticated caller who can reach the mock server port can read MOCKOON_* environment variables, write arbitrary process environment variables through /mockoon-admin/env-vars, rewrite mock route bodies, statuses, and headers through PUT /mockoon-admin/environment, read transaction logs and SSE streams, and purge state. This issue is fixed in version 9.7.0.
Admin API Mockoon jest montowane na tym samym listenerze Express co trasy zdefiniowane przez użytkownika, jest domyślnie włączone i serwuje nagłówek Access-Control-Allow-Origin: * z dozwolonymi metodami zapisu (PUT, POST itp.). Brak jakiegokolwiek mechanizmu uwierzytelnienia oznacza, że każdy podmiot sieciowy mogący połączyć się z portem serwera może wykonywać żądania do endpointów /mockoon-admin/env-vars oraz /mockoon-admin/environment. Atakujący może tym samym odczytać zmienne środowiskowe procesu (w tym MOCKOON_*), zapisywać do nich dowolne wartości, nadpisywać ciała odpowiedzi, statusy i nagłówki tras mock, a także przeglądać logi transakcji i strumienie SSE lub czyścić stan aplikacji.
Atakujący może uzyskać pełną kontrolę nad działającą instancją Mockoon — odczytać potencjalnie wrażliwe zmienne środowiskowe procesu, zmanipulować konfigurację tras mock oraz zatruwać logi i stan aplikacji. W środowiskach CI/CD lub developerskich, gdzie Mockoon przetwarza dane uwierzytelniające lub klucze API w zmiennych środowiskowych, podatność może prowadzić do wycieku poufnych informacji.
Należy zaktualizować Mockoon do wersji 9.7.0 lub nowszej, w której podatność została usunięta. Szczegóły poprawki dostępne są w referencjach producenta pod adresem https://github.com/mockoon/mockoon/releases/tag/v9.7.0. Do czasu aktualizacji zaleca się ograniczenie dostępu sieciowego do portu serwera Mockoon wyłącznie do zaufanych hostów za pomocą firewalla lub reguł sieciowych.
Mockoon commons-server (oraz produkty korzystające z jego runtimeów) w wersjach przed 9.7.0
Podatność obejmuje jednocześnie brak uwierzytelnienia (CWE-306), brak ochrony przed CSRF (CWE-352), nadmiernie liberalne uprawnienia zasobów (CWE-732) oraz zbyt permisywną politykę CORS (CWE-942). Poprawka została wprowadzona commitem c420b5a56918475b8663977b51e5f986e45b3299 w ramach pull request #2254.
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H