Podatność klasy SSRF w funkcji importu pliku z URL w Directus pozwala uwierzytelnionemu użytkownikowi na ominięcie mechanizmu ochrony przed dostępem do wewnętrznych zasobów serwera. Atakujący może zmusić serwer do odpytywania lokalnych usług niedostępnych z zewnątrz i pobrania odpowiedzi jako plik.
▸ Pokaż oryginał (EN)
Directus is a real-time API and App dashboard for managing SQL database content. Prior to 12.0.0, the SSRF protection on Directus's file-import-from-URL feature can be bypassed using the address 0.0.0.0 because api/src/request/is-denied-ip.ts treats 0.0.0.0 as a keyword for local interfaces but never blocks the literal address itself. On Linux and macOS, connecting to 0.0.0.0 reaches localhost, so an authenticated user with file-upload rights can make the server fetch internal services through the /files/import endpoint and retrieve the response as a downloadable file. This issue is fixed in version 12.0.0.
Mechanizm weryfikacji adresów IP w pliku api/src/request/is-denied-ip.ts traktuje wartość 0.0.0.0 jako słowo kluczowe oznaczające lokalne interfejsy sieciowe, jednak nie blokuje dosłownego użycia tego adresu. Na systemach Linux i macOS połączenie z adresem 0.0.0.0 jest w praktyce przekierowywane do localhost. Uwierzytelniony użytkownik posiadający uprawnienia do przesyłania plików może wysłać żądanie do endpoint /files/import, podając jako źródło URL zawierający adres 0.0.0.0, co powoduje, że serwer Directus pobiera zawartość wewnętrznych usług i zwraca ją jako plik do pobrania.
Atakujący może odczytać zawartość wewnętrznych usług sieciowych dostępnych na serwerze (np. metadata usług chmurowych, wewnętrzne API, dane konfiguracyjne), prowadząc do nieuprawnionego ujawnienia poufnych informacji. Podatność nie umożliwia bezpośredniej modyfikacji danych ani wykonania kodu.
Należy zaktualizować Directus do wersji 12.0.0, w której błąd został naprawiony. Przed aktualizacją warto rozważyć ograniczenie uprawnień do przesyłania plików wyłącznie do zaufanych użytkowników oraz zastosowanie reguł firewall blokujących wychodzące połączenia serwera aplikacji do wewnętrznych segmentów sieci.
Monospace Directus we wszystkich wersjach poprzedzających 12.0.0
Podatność dotyczy wyłącznie systemów Linux i macOS — na tych platformach połączenie z 0.0.0.0 jest kierowane do localhost. Poprawka została wprowadzona w commicie f75b25fa44b05c6022b20f231c20bc6e50f021d7.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:NMonospace Directus
APPMonospace< 12.0.0
Powiązane podatności
Directus: nieautoryzowana modyfikacja i upload plików z dowolną zawartością
Directus: błędna domyślna konfiguracja CORS umożliwia nieautoryzowany dostęp
Directus: błąd klucza cache umożliwia nieautoryzowany dostęp do danych
Directus is a real-time API and App dashboard for managing SQL database content. Prior to 11.17.0, the PATCH /...
Directus is a real-time API and App dashboard for managing SQL database content. Prior to 11.17.0, Directus's ...