W aplikacji Dify v1.9.1 endpoint /console/api/system-features posiada zbyt permisywną politykę CORS, która odbija dowolny nagłówek Origin i ustawia Access-Control-Allow-Credentials: true. Umożliwia to dowolnej zewnętrznej domenie wykonywanie uwierzytelnionych żądań cross-origin w imieniu zalogowanego użytkownika.
▸ Pokaż oryginał (EN)
A Cross-Origin Resource Sharing (CORS) misconfiguration vulnerability exists in Dify v1.9.1 in the /console/api/system-features endpoint. The endpoint implements an overly permissive CORS policy that reflects arbitrary Origin headers and sets Access-Control-Allow-Credentials: true, allowing any external domain to make authenticated cross-origin requests. NOTE: the Supplier disputes this, providing the rationale of "sending requests with credentials does not provide any additional access compared to unauthenticated requests."
Podatny endpoint implementuje politykę CORS, która dynamicznie odzwierciedla wartość nagłówka Origin przesłanego przez klienta, zamiast ograniczać go do zaufanych domen. Jednocześnie odpowiedź zawiera nagłówek Access-Control-Allow-Credentials: true, co pozwala przeglądarce dołączyć do żądania ciasteczka sesji lub inne dane uwierzytelniające. W praktyce oznacza to, że złośliwa strona internetowa może skłonić zalogowanego użytkownika do odwiedzenia jej, a następnie wykonać w jego imieniu uwierzytelnione żądania do instancji Dify. Producent kwestionuje wagę podatności, argumentując, że żądania z danymi uwierzytelniającymi nie zapewniają dostępu do zasobów niedostępnych dla użytkowników nieuwierzytelnionych.
Atakujący, który skłoni zalogowanego użytkownika do odwiedzenia złośliwej strony, może wykonywać w jego imieniu uwierzytelnione żądania do panelu Dify, potencjalnie uzyskując dostęp do wrażliwych danych konfiguracyjnych lub funkcji systemu. Zakres skutecznego ataku jest sporny i zależy od faktycznych mechanizmów kontroli dostępu na pozostałych endpointach.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Jako obejście zaleca się skonfigurowanie polityki CORS z jawną białą listą zaufanych domen zamiast dynamicznego odbijania nagłówka Origin, a także rozważenie usunięcia nagłówka Access-Control-Allow-Credentials: true dla endpointów publicznych lub ograniczenie go wyłącznie do zaufanych źródeł.
Langgenius Dify v1.9.1 — endpoint /console/api/system-features
Producent (Langgenius) formalnie kwestionuje zasadność podatności, twierdząc, że żądania z danymi uwierzytelniającymi nie dają atakującemu dodatkowego dostępu ponad to, co jest dostępne bez uwierzytelnienia. Mimo to podatność została opublikowana i sklasyfikowana jako CRITICAL (CVSS 9.1). Administratorzy powinni samodzielnie ocenić ryzyko w kontekście własnego wdrożenia.
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 — endpoint /console/api/setup
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 ...