ClipBucket v5 przed wersją 5.5.3 - #40 zawiera podatność typu Time-of-Check to Time-of-Use (TOCTOU) w mechanizmie przesyłania avatarów i obrazów tła. Luka umożliwia atakującemu wykonanie dowolnego kodu PHP na serwerze bez żadnego uwierzytelnienia.
▸ Pokaż oryginał (EN)
ClipBucket v5 is an open source video sharing platform. Prior to 5.5.3 - #40, a Time-of-Check to Time-of-Use (TOCTOU) race condition vulnerability exists in ClipBucket's avatar and background image upload functionality. The application moves uploaded files to a web-accessible location before validating them, creating a window where an attacker can execute arbitrary PHP code before the file is deleted. The uploaded file was moved to a web-accessible path via move_uploaded_file(), then validated via ValidateImage(). If validation failed, the file was deleted via @unlink(). This vulnerability is fixed in 5.5.3 - #40.
Aplikacja przesuwa przesłany plik do lokalizacji dostępnej przez sieć (web-accessible) za pomocą funkcji move_uploaded_file(), a dopiero następnie przeprowadza jego walidację przez ValidateImage(). W oknie czasowym pomiędzy przeniesieniem pliku a jego walidacją atakujący może wysłać żądanie HTTP do przesłanego pliku PHP i doprowadzić do jego wykonania przez serwer. Jeśli walidacja zakończy się niepowodzeniem, plik jest usuwany przez @unlink(), jednak następuje to już po potencjalnym wykonaniu złośliwego kodu.
Atakujący może wykonać dowolny kod PHP na serwerze (Remote Code Execution), co w praktyce oznacza pełne przejęcie kontroli nad aplikacją i potencjalnie całym środowiskiem hostingowym.
Należy zaktualizować ClipBucket do wersji 5.5.3 - #40 lub nowszej, w której podatność została naprawiona. Poprawka dostępna jest w repozytorium producenta (commit 09536e6e2ca6d69a2ee83190b588c0b8116dd16d na GitHub).
ClipBucket v5 (Oxygenz Clipbucket) we wszystkich wersjach przed 5.5.3 - #40
Podatność została zgłoszona i naprawiona w ramach GitHub Security Advisory GHSA-xq7c-m5r2-9wqj. Poprawka polega na zmianie kolejności operacji — walidacja pliku powinna następować przed jego przeniesieniem do lokalizacji dostępnej publicznie.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:XOxygenz Clipbucket
APPOxygenz5.3 – 5.5.3-40 (bez)
Powiązane podatności
Blind SQL Injection w ClipBucket v5 — sekcja komentarzy kanału
ClipBucket 5.5.2 — hardcoded domyślne dane logowania w panelu admina
ClipBucket V5 — nieograniczony upload plików PHP przez funkcję playlist
PHP Deserialization w ClipBucket V5 — zdalne wykonanie kodu
PHP Deserialization w ClipBucket V5 umożliwia zdalne wykonanie kodu