Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to Lightdash with low-privilege account
-
DeliveryCreate or modify scheduled delivery webhook
-
ExploitSupply private or metadata URL as webhook target
-
ExecutionTrigger scheduled delivery execution
-
PersistServer issues unvalidated POST to internal address
-
ImpactDistinguish success from failure to map internal network topology
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Credential Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an authenticated Lightdash user account with permission to create or trigger scheduled deliveries - the CVSS PR:L metric confirms that low-privilege access is sufficient and no administrative role is needed. The attacker must be able to supply or modify the webhook URL field for a scheduled delivery using either the Google Chat or Microsoft Teams integration path. No non-default server configuration is required; scheduled delivery is standard Lightdash functionality. Exploitation is inherently blind: the attacker cannot read the HTTP response body returned by the internal target (it is never relayed to the user); failure response bodies are written to server logs only. This means exploitation yields reachability intelligence (reachable vs. unreachable host distinction) and potential log-exposed data rather than direct full-response exfiltration. Impact is further bounded to the network reachability of the Lightdash backend process. |
| Impact | The CVSS 4.0 score of 5.3 (Medium) is consistent with the bounded exploitation model: PR:L requires an authenticated session, subsequent-system impact is rated SC:L/SI:L, and the Lightdash instance itself incurs no direct confidentiality, integrity, or availability impact (VC/VI/VA all N). Real-world risk is meaningful but conditional - exploitation demands a legitimate account with scheduled delivery permissions, which limits opportunistic mass exploitation. The blind nature of the SSRF further constrains what an attacker can extract: the response body of a successful internal request is not relayed, and failure bodies are written only to server logs. However, cloud-hosted Lightdash deployments face meaningfully elevated risk because the 169.254.169.254 metadata endpoint is reachable from most cloud VMs and can be used to enumerate instance credentials or IAM roles in insufficiently hardened environments. No EPSS data was included in the provided intelligence, and the absence of a KEV entry suggests exploitation has not been observed at measured scale - though teams running Lightdash in cloud environments or collocated with sensitive internal services should treat this as a near-term patch priority rather than a deferred item. |
| Exploit ScenarioDerived | An authenticated Lightdash user with scheduled delivery permissions creates a delivery and sets the webhook URL to an internal address such as http://169.254.169.254/latest/meta-data/ or an internal microservice endpoint. When the delivery fires, the Lightdash backend issues an unvalidated POST to that address; by observing whether the server logs a connection failure versus an HTTP-level error, the attacker maps reachable internal services. In cloud environments, reaching the metadata endpoint without error can expose IAM role credentials or user-data payloads, enabling lateral movement. No public proof-of-concept has been identified, but the vulnerability class is well understood and requires only a low-privilege Lightdash session. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 20, 2026
Server-Side Request Forgery in Lightdash's scheduled delivery webhook feature allows authenticated users to direct the backend server to issue POST requests to private, loopback, and link-local addresses - including cloud instance metadata endpoints. All deployments running versions prior to 1.146.4 are affected; both the Google Chat and Microsoft Teams webhook delivery paths bypass the existing validatePublicHttpUrl sanitization that is correctly applied elsewhere in the codebase. While the upstream response is never relayed to the attacker, the error-vs-success distinction enables internal network probing and, in cloud-hosted deployments, potential access to instance metadata services. No public exploit code and no CISA KEV listing have been identified at time of analysis.
RemediationAI
Upgrade Lightdash to version 1.146.4, which routes both GoogleChatClient and MicrosoftTeamsClient through the new postSchedulerWebhook function in packages/backend/src/utils/schedulerWebhookValidation, applying URL validation before any fetch call is issued; the release is available at https://github.com/lightdash/lightdash/releases/tag/1.146.4 and the fix commit is c0ba219 per GitHub issue #27313. If immediate upgrade is not feasible, apply egress filtering at the network or cloud security-group level to block outbound connections from the Lightdash backend process to RFC1918 ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), the loopback range (127.0.0.0/8), and the link-local metadata range (169.254.0.0/16); note that this may break legitimate internal webhook targets, so inventory existing destinations before applying rules. As an additional control, restrict scheduled delivery creation to a minimal set of trusted users to reduce the exposed attack surface. Further context is available in the VulnCheck advisory at https://www.vulncheck.com/advisories/lightdash-scheduled-delivery-webhook-urls-are-not-validated-allowing-server-side-request-forgery.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Lightdash is a self-hosted open-source business intelligence platform built on a Node.js/TypeScript backend. The vulnerable paths are packages/backend/src/clients/GoogleChat/GoogleChatClient.ts and packages/backend/src/clients/MicrosoftTeams/MicrosoftTeamsClient.ts, both of which in versions ≤1.146.3 call the Node.js fetch() API directly on the caller-supplied webhook URL with no server-side URL constraint. A sanitization helper, validatePublicHttpUrl, already exists in packages/backend/src/utils/ssrfProtection.ts and is applied to MCP server URLs, but was not wired into either webhook delivery path - a code-path omission rather than an absent capability. CWE-918 (Server-Side Request Forgery) is the root cause class: user-controlled data designating a network request target is not validated before the server acts on it. This permits requests to RFC1918 private ranges, the loopback interface (127.0.0.1/::1), and the 169.254.0.0/16 link-local range that hosts AWS, GCP, and Azure instance metadata endpoints.
Know when the next one hits your stack
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
Network-reachable blind SSRF requiring low-privilege auth; scope changes to affect internal/subsequent systems; confidentiality impact limited to network probing and log leakage; no integrity or availability impact on any system.
Primary rating from Vendor (vulncheck).
CVSS VectorVendor: vulncheck
Lifecycle Timeline
2DescriptionCVE.org
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.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
EUVD-2026-63731
GHSA-hw2h-qf3m-2r8v
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB