Menu dostępności

Miliony stron w PHP ofiarą kontrowersyjnego frameworka

Zend Framework i jego następca – Laminas Project to popularne narzędzia deweloperskie. Okazuje się, że mogą być wykorzystywane do zdalnego wykonywania kodu na stronach internetowych opartych na PHP, jeśli uruchamiają one aplikacje, które są podatne na atak.

Osoby odpowiedzialne za utrzymanie Zend Framework, podkreślają, że warunki, w których aplikacja internetowa może być nadużywana, najpierw wymagają od autora aplikacji napisania jej w „niebezpieczny” sposób. Z tego powodu obecni opiekunowie Zend Framework kwestionują, czy klasyfikacja podatności jest poprawna.

„Kwestionujemy tę lukę i uważamy naszą łatkę za poprawkę zwiększającą bezpieczeństwo, a nie poprawkę luki w zabezpieczeniach” – powiedział Matthew Weier O’Phinney, właściciel produktu Zend i główny inżynier.


Które wersje są podatne?

Problem dotyczy Zend Framework w wersji 3.0.0 i Laminas Project laminas-http przed 2.14.2. Internet szacuje, że z tych wersji frameworka korzysta nawet kilka milionów stron i prawdopodobnie są one dotknięte podatnością. Błąd został publicznie ujawniony kilka dni temu przez badacza cyberbezpieczeństwa Ling’a Yizhou, który opublikował również dwa scenariusze ataków typu „proof-of-concept”. Błąd, śledzony jako CVE-2021-3007 nie ma oceny krytyczności na liście MITER, jednak członkowie społeczności cyberbezpieczeństwa oceniają to jako „wysokie ryzyko” i dają mu przynajmniej 7,5 / 10.

Koniec wsparcia dla Zend Framework nastąpił 31 grudnia 2019 roku, po czym został on włączony do Projektu Laminas. Według opiekunów Zend Framework i Laminas Project są równoważne i ich funkcjonalności nie odbiegają od siebie.


Na czym polega podatność?

Według Yizhou, wersja Zend Framework 3.0.0 ma lukę w deserializacji, która może prowadzić do zdalnego wykonania kodu. Podatność dotyczy metody _destruct klasy Zend\Http\Response\Stream w Stream.php.”

Scenariusze ataków typu Proof-of-Concept (PoC) na Zend Framework i Laminas Project zostały opublikowane na stronie GitHub prowadzonej przez badacza bezpieczeństwa Yizhou.

Deserializacja i serializacja to terminy techniczne opisujące proces przekształcania jakiegoś obiektu (kodu) w format danych (serializacja), który można później odwrócić (deserializacja). Koderzy często serializują obiekty w celu zapisania ich w pamięci masowej lub wysłania w ramach komunikacji.

Luka w zabezpieczeniach związana z deserializacją występuje, gdy dane kontrolowane przez użytkownika są deserializowane przez witrynę internetową. Innymi słowy, gdy witryna umożliwia użytkownikowi wprowadzenie niezaufanych danych lub wykonanie wstrzyknięcia innego obiektu do aplikacji internetowej. Wstrzyknięte dane mogą nadużywać logiki aplikacji i wywołać atak typu „odmowa usługi” (DoS) lub pozwolić osobie atakującej na wykonanie dowolnego kodu podczas deserializacji danych.


Słowo na koniec

Projekt Laminas firmy Linux Foundation kwestionuje klasyfikację CVE. W oświadczeniu opublikowanym na jego stronie GitHub stwierdzono:

„Uważamy, że nie jest to luka specyficzna dla frameworka, ale bardziej ogólnie dla języka. Funkcje serialize() i unserialize() mają długą historię luk w zabezpieczeniach i programiści nie powinni NIGDY używać ich na niezaufanych danych wejściowych. Jeśli jest to niemożliwe, powinni przynajmniej przekazać drugi argument `$ options` i podać listę dozwolonych klas lub użyć argumentu, aby uniemożliwić wszelką nieserializację obiektów”.

Twórcy framework’a twierdzą więc, że podatność jest ściśle związana z językiem PHP i nie ma związku z ich narzędziem. Ponadto stwierdzają, że klasyfikacja jest bardziej ogólnie rozumiana jako „wstrzyknięcie obiektu PHP” i nie jest specyficzna dla żadnego określonego framework’a.

Niezależnie od tego, programiści z Linux Foundation udostępnili poprawkę, aby jeszcze bardziej chronić użytkowników przed takimi scenariuszami. Łatka zapewnia sprawdzenie typu właściwości $streamName przed wykonaniem operacji.

Popularne

Nowy wymiar cyberwojny: chińskie operacje wpływu i ataki planowane z użyciem ChatGPT – tło techniczne incydentu

Nowy wymiar cyberwojny: chińskie operacje wpływu i ataki planowane z użyciem ChatGPT – tło techniczne incydentu

W ostatnich dniach świat technologii i cyberbezpieczeństwa obiegła informacja o tym, że chińscy aktorzy - w tym osoby związane ze służbami państwowymi - wykorzystywali system OpenAI ChatGPT nie tylko do...
Jak zmienić nieznane/zapomniane hasło Administratora na Windows?

Jak zmienić nieznane/zapomniane hasło Administratora na Windows?

W tym artykule pokażemy, jak możemy zmienić hasło administratora na komputerze posiadając do niego fizyczny dostęp. Artykuł ten można potraktować także jako przestrogę dla firm, które nie zaimplementowały jeszcze odpo...
Jak hakerzy wykorzystują AI do budowania fałszywych stron internetowych

Jak hakerzy wykorzystują AI do budowania fałszywych stron internetowych

W erze generatywnej sztucznej inteligencji cyberprzestępcy zyskali możliwość tworzenia przekonująco wyglądających stron internetowych w ciągu kilku minut, bez konieczności posiadania umiejętności programowa...
Keenadu – nowe złośliwe oprogramowanie dla systemu Android wykryte na tysiącach urządzeń!

Keenadu – nowe złośliwe oprogramowanie dla systemu Android wykryte na tysiącach urządzeń!

Badacze z firmy Kaspersky przeanalizowali niedawno odkryte złośliwe oprogramowanie dla systemu Android, które umożliwia operatorom zdalne sterowanie zainfekowanymi urządzeniami. Backdoor, nazwany Keen...
Jak poznać hasło administratora lub użytkowników logujących się do Twojego komputera?

Jak poznać hasło administratora lub użytkowników logujących się do Twojego komputera?

Jeśli masz odrobinę szczęścia lub „odpowiednie umiejętności” i potrafisz zdobyć lokalne uprawnienia administracyjne na Twoim komputerze w firmie lub zaliczasz się do grona tych szczęściarzy, którzy pracuj...