Framework Web2Py przed wersją 2.14.2 deserializuje dane sesji przechowywane w ciasteczkach przy użyciu niebezpiecznej funkcji pickle.loads, co może umożliwić zdalnemu atakującemu wykonanie dowolnego kodu. Podatność jest krytyczna, ponieważ nie wymaga uwierzytelnienia ani interakcji użytkownika.
▸ Pokaż oryginał (EN)
The secure_load function in gluon/utils.py in web2py before 2.14.2 uses pickle.loads to deserialize session information stored in cookies, which might allow remote attackers to execute arbitrary code by leveraging knowledge of encryption_key.
Funkcja secure_load w pliku gluon/utils.py korzysta z pickle.loads do odtwarzania informacji o sesji zapisanych w ciasteczkach HTTP. Atakujący, który zna klucz szyfrujący (encryption_key) aplikacji, może spreparować złośliwy payload serializowany przez pickle i umieścić go w ciasteczku sesji. Po przesłaniu takiego ciasteczka do serwera, aplikacja deserializuje dane bez odpowiedniej walidacji, co prowadzi do wykonania osadzonego kodu po stronie serwera.
Atakujący posiadający wiedzę o kluczu szyfrującym może wykonać dowolny kod na serwerze z uprawnieniami procesu aplikacji Web2Py, uzyskując pełną kontrolę nad systemem, dostęp do danych oraz możliwość dalszego ruchu w sieci (lateral movement).
Należy zaktualizować Web2Py do wersji 2.14.2 lub nowszej, w której zastąpiono mechanizm deserializacji oparty na pickle bezpieczniejszym rozwiązaniem. Dodatkowo należy zrotować klucze szyfrujące (encryption_key) aplikacji, ponieważ ich znajomość jest warunkiem koniecznym do przeprowadzenia ataku.
Web2Py we wszystkich wersjach przed 2.14.2
Szczegółowa analiza techniczna podatności została opublikowana przez badaczy z devco.re w styczniu 2017 roku. Podatność objęta jest również biuletynem bezpieczeństwa Ubuntu USN-4030-1.
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HWeb2py
APPWeb2Py< 2.14.2
Powiązane podatności
OS command injection w Web2Py przez notifySendHandler
Web2Py: RCE przez hardkodowany klucz szyfrowania w aplikacji przykładowej
Web2Py: brak weryfikacji blokady hosta przed sprawdzeniem hasła (brute-force)
web2py before 2.14.1, when using the standalone version, allows remote attackers to obtain environment variabl...
Web2py versions 2.14.5 and below was affected by Local File Inclusion vulnerability, which allows a malicious ...