Podatność w bibliotece Cesanta Mongoose przed wersją 7.6 pozwala atakującemu na zapisanie przesyłanych plików w dowolnej lokalizacji poza wyznaczonym folderem docelowym. Błąd krytyczny (CVSS 9.8) możliwy do wykorzystania zdalnie bez uwierzytelnienia.
▸ Pokaż oryginał (EN)
This affects the package cesanta/mongoose before 7.6. The unsafe handling of file names during upload using mg_http_upload() method may enable attackers to write files to arbitrary locations outside the designated target folder.
Metoda mg_http_upload() odpowiedzialna za obsługę przesyłania plików przez HTTP nie waliduje bezpiecznie nazw plików dostarczanych przez klienta. Atakujący może spreparować nazwę pliku zawierającą sekwencje path traversal (np. '../'), co powoduje, że biblioteka zapisuje plik poza wyznaczonym katalogiem docelowym. Mechanizm ten pozwala na umieszczenie pliku w dowolnym miejscu dostępnym dla procesu aplikacji.
Atakujący może zapisać dowolne pliki w nieautoryzowanych lokalizacjach systemu plików, co może prowadzić do nadpisania krytycznych plików systemowych lub konfiguracyjnych, a w konsekwencji do przejęcia kontroli nad aplikacją lub całym systemem.
Należy zaktualizować bibliotekę Cesanta Mongoose do wersji 7.6 lub nowszej. Poprawka dostępna jest w commicie c65c8fdaaa257e0487ab0aaae9e8f6b439335945 w repozytorium GitHub producenta.
Cesanta Mongoose w wersjach przed 7.6
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HCesanta Mongoose
APPCesanta< 7.6
Powiązane podatności
Zapis poza granicami bufora (OOB write) w Cesanta Mongoose HTTPS — mg_tls_init
Zapis poza granicami pamięci (OOB write) w Cesanta Mongoose HTTP server 7.0
Zapis poza granicami pamięci (OOB write) w serwerze HTTPS Cesanta Mongoose 7.0
Buffer overflow w Cesanta Mongoose — mg_get_http_header
Integer overflow w Cesanta Mongoose — błąd parsowania pakietów MQTT