phpList 3.5.3 zawiera podatność umożliwiającą obejście logowania (login bypass) poprzez atak typu type juggling. Jest to krytyczna luka, ponieważ pozwala nieuwierzytelnionemu atakującemu uzyskać dostęp do konta bez znajomości hasła.
▸ Pokaż oryginał (EN)
phpList 3.5.3 allows type juggling for login bypass because == is used instead of === for password hashes, which mishandles hashes that begin with 0e followed by exclusively numerical characters.
Problem wynika z użycia operatora luźnego porównania (==) zamiast ścisłego (===) podczas weryfikacji hashy haseł. W PHP operator == przy porównywaniu ciągów znaków traktuje wartości zaczynające się od '0e' i zawierające wyłącznie cyfry jako notację naukową (np. 0e1234 == 0e5678 zwraca true, ponieważ oba są interpretowane jako 0). Atakujący może dostarczyć hasło, którego hash zaczyna się od '0e' i zawiera same cyfry (tzw. 'magic hash'), co sprawi, że porównanie z innym hashem o tej samej właściwości zwróci fałszywie prawdziwy wynik. W efekcie możliwe jest zalogowanie się na konto ofiary bez znajomości jej rzeczywistego hasła.
Atakujący bez żadnego uwierzytelnienia może uzyskać pełny dostęp do konta użytkownika lub administratora systemu mailingowego phpList, co prowadzi do naruszenia poufności, integralności i dostępności danych.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Zaleca się aktualizację phpList do wersji wyższej niż 3.5.3, w której operator porównania hashy został zmieniony na ścisły (===).
phpList w wersji 3.5.3
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HPhplist
APPPhplist3.5.3
Powiązane podatności
RCE w phplist 3.5.1 poprzez upload złośliwego pluginu
CSV Injection w phpList 3.6.0 poprzez parametr email i eksport danych
phpList 3.5.0 — pominięcie uwierzytelnienia admina przez type juggling
A vulnerability was found in PHPList 3.2.6 and classified as critical. This issue affects some unknown process...
phpList 3.5.9 allows SQL injection by admins who provide a crafted fourth line of a file to the "Config - Impo...