W Dify v1.9.1 wykryto podatność polegającą na nieprawidłowej konfiguracji polityki Cross-Origin Resource Sharing (CORS) w endpoincie /console/api/setup. Podatność umożliwia dowolnym zewnętrznym domenom wysyłanie uwierzytelnionych żądań do tego endpointu, co może prowadzić do nieautoryzowanego dostępu do danych lub modyfikacji konfiguracji.
▸ Pokaż oryginał (EN)
A Cross-Origin Resource Sharing (CORS) misconfiguration vulnerability exists in Dify v1.9.1 in the /console/api/setup endpoint. The endpoint implements an insecure CORS policy that reflects any Origin header and enables Access-Control-Allow-Credentials: true, permitting arbitrary external domains to make authenticated requests. NOTE: the Supplier disputes this because the endpoint configuration is intentional to support bootstrap.
Endpoint /console/api/setup odbija (reflektuje) dowolną wartość nagłówka Origin przekazaną przez klienta i jednocześnie zwraca nagłówek Access-Control-Allow-Credentials: true. Oznacza to, że przeglądarka ofiary zaakceptuje odpowiedź z dowolnej domeny kontrolowanej przez atakującego, dołączając do żądania ciasteczka sesyjne lub inne dane uwierzytelniające. Atakujący może w ten sposób nakłonić zalogowanego użytkownika do odwiedzenia złośliwej strony, która w tle wykona uwierzytelnione żądanie do endpointu. Producent kwestionuje zgłoszenie, wskazując, że taka konfiguracja jest zamierzona w celu obsługi procesu inicjalizacji (bootstrap).
Atakujący może wykorzystać tę podatność do uzyskania nieautoryzowanego dostępu do poufnych danych (naruszenie poufności) oraz do modyfikacji konfiguracji aplikacji (naruszenie integralności) w kontekście uwierzytelnionej sesji ofiary.
Należy zastosować patche dostępne u producenta zgodnie z referencjami (patrz pull request #32224 w repozytorium GitHub langgenius/dify). Zaleca się ograniczenie listy dozwolonych origins w konfiguracji CORS wyłącznie do zaufanych domen zamiast dynamicznego odbijania nagłówka Origin, a także rozważenie wyłączenia flagi Access-Control-Allow-Credentials dla endpointów dostępnych publicznie bez uwierzytelnienia.
Langgenius Dify v1.9.1 — endpoint /console/api/setup
Producent (Langgenius) kwestionuje klasyfikację tej podatności, twierdząc, że opisana konfiguracja CORS jest zamierzona i niezbędna do obsługi procesu bootstrap aplikacji. Odkrywca podatności to Cristliu (na podstawie referencji do gist.github.com/Cristliu). CWE-346 odnosi się do braku weryfikacji źródła pochodzenia żądania (Origin Validation Error).
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:NLanggenius Dify
APPLanggenius1.9.1
Powiązane podatności
Domyślne dane uwierzytelniające PostgreSQL w Langgenius Dify
Błędna konfiguracja CORS w Dify — nieograniczony dostęp cross-origin z uwierzytelnieniem
Dify v1.9.1 is vulnerable to Insecure Permissions. An unauthenticated attacker can directly send HTTP GET requ...
langgenius/dify versions 1.1.0 to 1.1.2 are vulnerable to unsanitized input in the code node, allowing executi...
Dify is an open-source LLM app development platform. Prior to version 0.6.12, a normal user is able to access ...