{"id":"CVE-2026-61654","title":"Lightdash: Unauthenticated dbt Cloud webhook with path injection leaks API key","summary":"Lightdash is an open source business intelligence platform. In affected versions through 0.3213.0, the dbt Cloud webhook `POST /api/v1/projects/{projectUuid}/dbt-cloud/webhook` has no authentication middleware or signature validation. In…","severity":"high","cvss":8.3,"cvssVector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N","cvssSource":"cna","cwe":["CWE-89"],"vendor":"lightdash","product":"lightdash","affected":["lightdash < 0.3214.0"],"published":"2026-10-29","updated":"2026-10-29","sourceUpdated":"2026-10-29T21:19:12.542Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-61654","references":[{"url":"https://github.com/lightdash/lightdash/security/advisories/GHSA-r4xc-vwqr-3252","label":"https://github.com/lightdash/lightdash/security/advisories/GHSA-r4xc-vwqr-3252"},{"url":"https://github.com/lightdash/lightdash/pull/24587","label":"https://github.com/lightdash/lightdash/pull/24587"},{"url":"https://github.com/lightdash/lightdash/commit/8d1d9bb6804bbea66a7bdf1b9b00092665382f14","label":"https://github.com/lightdash/lightdash/commit/8d1d9bb6804bbea66a7bdf1b9b00092665382f14"},{"url":"https://github.com/lightdash/lightdash/releases/tag/0.3214.0","label":"https://github.com/lightdash/lightdash/releases/tag/0.3214.0"}],"tags":["cve.org"],"epss":0.0038,"epssPercentile":0.32017,"ingestedAt":"2026-11-03T09:40:52.160Z","slug":"CVE-2026-61654","body":"## Overview\n\nLightdash is an open source business intelligence platform. In affected versions through 0.3213.0, the dbt Cloud webhook `POST /api/v1/projects/{projectUuid}/dbt-cloud/webhook` has no authentication middleware or signature validation. In `packages/backend/src/controllers/projectController.ts`, `testWebhook()` accepts `accountId` and `runId` from a `job.run.completed` request and passes them to `createPreviewWithExplores()` in `packages/backend/src/services/ProjectService/ProjectService.ts`. These unsanitized values are interpolated into the server-side dbt Cloud API URL, which is requested with the victim project's API key in the `Authorization` header. Path traversal through `accountId` changes the requested path on `cloud.getdbt.com` without changing its host, so the credential-bearing request reaches an attacker-influenced path on that fixed host. The advisory claims API-key theft, but the supplied evidence does not establish that the attacker can observe the `Authorization` header. The unauthenticated webhook also allows preview creation. The target must be a `dbt Cloud IDE` project and the attacker must know its `projectUuid`; the UUID is not enumerable but can be discovered in shared or multi-tenant contexts. Version 0.3214.0 fixes identifier path traversal and verifies webhook HMAC signatures only when a secret is configured; without a secret, unsigned webhooks continue to be processed.\n\n## Affected\n\n- `lightdash < 0.3214.0`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"twilight","depthScore":46,"depthScoreParts":{"impact":45.7,"likelihood":0.1,"exploitation":0,"ransomware":0},"changes":[]}