CVE-2026-72846
ŚrednieCVSS 6.4Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 18 - wyżej niż 18% wszystkich znanych CVE
Streszczenie
Lightdash przechowuje adres URL webhooka dostarczony z zaplanowanym dostarczaniem i później wysyła do niego POST z sendWebhook w packages/backend/src/clients/GoogleChat/GoogleChatClient.ts oraz w packages/backend/src/clients/MicrosoftTeams/MicrosoftTeamsClient.ts. W dotkniętych wersjach oba wywołują fetch bezpośrednio na zapisanym adresie URL. Pomocnik validatePublicHttpUrl w packages/backend/src/utils/ssrfProtection.ts, używany dla adresów URL serwera MCP, nie jest stosowany na żadnej ścieżce, a pola webhooka nie mają ograniczeń URL po stronie serwera. Użytkownik mogący utworzyć lub wyzwolić zaplanowane dostarczanie może skierować serwer do wysyłania żądań POST do prywatnych, loopback i link-local adresów, w tym do punktów końcowych metadanych chmury, i może odróżnić dostępne wewnętrzne usługi od niedostępnych poprzez wynikające błędy. Odpowiedź zewnętrzna nigdy nie jest zwracana do żądającego; w przypadku statusu błędu jej treść jest zapisywana w logu serwera. Wersja 1.146.4 kieruje oba klienty przez postSchedulerWebhook z packages/backend/src/utils/schedulerWebhookValidation zamiast bezpośredniego wywołania fetch.
Ocena ryzyka
Atakujący może wykorzystać serwer do skanowania wewnętrznej sieci, uzyskać dostęp do metadanych chmury lub przeprowadzić ataki SSRF, co może prowadzić do wycieku danych lub kompromitacji wewnętrznych usług.
Rekomendacja
Zaktualizuj Lightdash do wersji 1.146.4 lub nowszej, która zawiera poprawkę walidacji URL webhooka.
Inne podatności w Lightdash
Oryginalny opis (angielski, źródło NVD)
Lightdash stores the webhook URL supplied with a scheduled delivery and later posts to it from sendWebhook in packages/backend/src/clients/GoogleChat/GoogleChatClient.ts and in packages/backend/src/clients/MicrosoftTeams/MicrosoftTeamsClient.ts. In affected versions both call fetch on the stored URL directly. The validatePublicHttpUrl helper in packages/backend/src/utils/ssrfProtection.ts, used for MCP server URLs, is not applied on either path, and the webhook fields carry no server-side URL constraint. A user able to create or trigger a scheduled delivery can therefore direct the server to issue POST requests to private, loopback and link-local addresses, including cloud metadata endpoints, and can distinguish reachable internal services from unreachable ones through the resulting errors. The upstream response is never returned to the requester; on a failure status its body is written to the server log instead. Version 1.146.4 routes both clients through postSchedulerWebhook from packages/backend/src/utils/schedulerWebhookValidation rather than calling fetch directly.

