Podatność w narzędziu Coolify (przed wersją 4.0.0-beta.464) umożliwia uwierzytelnionemu użytkownikowi klonowanie zasobów do obszarów innych najemców (teams) oraz uzyskanie dostępu do ich zasobów. Wynika z błędnej autoryzacji w akcji Livewire cloneTo(), która weryfikuje tylko zasób źródłowy, pomijając weryfikację zasobu docelowego.
▸ Pokaż oryginał (EN)
Coolify is an open-source and self-hostable tool for managing servers, applications, and databases. Prior to 4.0.0-beta.464, the cloneTo() Livewire action in ResourceOperations.php authorizes the source resource but resolves destination resources with unscoped Eloquent lookups, allowing an authenticated user to clone resources into destinations owned by other teams and access cross-tenant resources. This issue is fixed in version 4.0.0-beta.464.
Akcja cloneTo() w pliku ResourceOperations.php poprawnie sprawdza autoryzację dla zasobu źródłowego, jednak zasoby docelowe są wyszukiwane za pomocą niescopowanych zapytań Eloquent (CWE-639 — Insecure Direct Object Reference). Atakujący, podając identyfikator zasobu należącego do innego najemcy jako cel operacji klonowania, może ominąć izolację między najemcami i skopiować swoje zasoby do cudzego środowiska lub odczytać dane innych zespołów.
Uwierzytelniony użytkownik może uzyskać nieautoryzowany dostęp do zasobów (serwerów, aplikacji, baz danych) należących do innych najemców oraz modyfikować ich konfiguracje poprzez klonowanie własnych zasobów do ich środowisk, co prowadzi do naruszenia poufności i integralności danych.
Należy zaktualizować Coolify do wersji 4.0.0-beta.464 lub nowszej, w której problem został naprawiony poprzez wprowadzenie scopowanych zapytań Eloquent dla zasobów docelowych w akcji cloneTo().
Coolify w wersjach przed 4.0.0-beta.464 (open-source, self-hostable)
Poprawka dostępna w commicie 1759a1631cd63271ebf6caa250c6d93440eaa333 w repozytorium GitHub projektu Coolify.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:L