{"id":"CVE-2026-100406","state":"PUBLISHED","title":"dbt: Unauthenticated Arbitrary SQL Execution in `dbt docs serve`","description":"dbt enables data analysts and engineers to transform their data using the same practices that software engineers use to build applications. From 2.0.0-alpha.0 until 2.0.0-alpha.5, dbt docs serve exposes the unauthenticated POST /api/v1/query endpoint in crates/dbt-docs-server/src/handlers/query.rs, which passes caller-supplied SQL to DuckDbViewsBackend::query_arrow() in crates/dbt-index-core/src/backend.rs without authorization or an allowlist. A client that can reach the server can invoke DuckDB filesystem-reading functions to read files available to the dbt process, including files outside the docs index directory. The server binds to localhost by default, but operators can expose it to a network through the host option or DBT_DOCS_HOST setting. This issue is fixed in version 2.0.0-alpha.5.","publishedAt":"2026-10-14T18:27:24.863Z","updatedAt":"2026-10-20T01:51:20.549Z","severity":{"score":8.2,"label":"High","version":"4.0","vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","source":"GitHub_M"},"assigner":"GitHub_M","products":["dbt-labs dbt-core"],"affected":[{"vendor":"dbt-labs","product":"dbt-core","versions":[{"version":">= 2.0.0-alpha.0, < 2.0.0-alpha.5","status":"affected"}]}],"references":["https://github.com/dbt-labs/dbt/security/advisories/GHSA-h2j2-2r7g-rff8","https://github.com/dbt-labs/dbt/commit/3a5d26fe02b58382720d04cbd87143b7b6775413","https://github.com/dbt-labs/dbt/releases/tag/v2.0.0-alpha.5"],"weaknesses":["CWE-22","CWE-200","CWE-306"],"ingestedAt":"2026-10-29T20:10:13.529Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/100xxx/CVE-2026-100406.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-100406","state":"PUBLISHED","datePublished":"2026-10-14T18:27:24.863Z","dateUpdated":"2026-10-20T01:51:20.549Z","assignerShortName":"GitHub_M","assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateReserved":"2026-09-25T20:08:33.084Z"},"containers":{"cna":{"title":"dbt: Unauthenticated Arbitrary SQL Execution in `dbt docs serve`","descriptions":[{"lang":"en","value":"dbt enables data analysts and engineers to transform their data using the same practices that software engineers use to build applications. From 2.0.0-alpha.0 until 2.0.0-alpha.5, dbt docs serve exposes the unauthenticated POST /api/v1/query endpoint in crates/dbt-docs-server/src/handlers/query.rs, which passes caller-supplied SQL to DuckDbViewsBackend::query_arrow() in crates/dbt-index-core/src/backend.rs without authorization or an allowlist. A client that can reach the server can invoke DuckDB filesystem-reading functions to read files available to the dbt process, including files outside the docs index directory. The server binds to localhost by default, but operators can expose it to a network through the host option or DBT_DOCS_HOST setting. This issue is fixed in version 2.0.0-alpha.5."}],"affected":[{"vendor":"dbt-labs","product":"dbt-core","versions":[{"version":">= 2.0.0-alpha.0, < 2.0.0-alpha.5","status":"affected"}]}],"references":[{"url":"https://github.com/dbt-labs/dbt/security/advisories/GHSA-h2j2-2r7g-rff8","name":"https://github.com/dbt-labs/dbt/security/advisories/GHSA-h2j2-2r7g-rff8","tags":["x_refsource_CONFIRM"]},{"url":"https://github.com/dbt-labs/dbt/commit/3a5d26fe02b58382720d04cbd87143b7b6775413","name":"https://github.com/dbt-labs/dbt/commit/3a5d26fe02b58382720d04cbd87143b7b6775413","tags":["x_refsource_MISC"]},{"url":"https://github.com/dbt-labs/dbt/releases/tag/v2.0.0-alpha.5","name":"https://github.com/dbt-labs/dbt/releases/tag/v2.0.0-alpha.5","tags":["x_refsource_MISC"]}],"metrics":[{"cvssV4_0":{"attackVector":"NETWORK","attackComplexity":"LOW","attackRequirements":"PRESENT","privilegesRequired":"NONE","userInteraction":"NONE","vulnConfidentialityImpact":"HIGH","vulnIntegrityImpact":"NONE","vulnAvailabilityImpact":"NONE","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","subAvailabilityImpact":"NONE","baseScore":8.2,"baseSeverity":"HIGH","vectorString":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N","version":"4.0"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-22","lang":"en","description":"CWE-22: Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-200","lang":"en","description":"CWE-200: Exposure of Sensitive Information to an Unauthorized Actor","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-306","lang":"en","description":"CWE-306: Missing Authentication for Critical Function","type":"CWE"}]}],"providerMetadata":{"shortName":"GitHub_M","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateUpdated":"2026-10-14T18:27:24.863Z"},"source":{"advisory":"GHSA-h2j2-2r7g-rff8","discovery":"UNKNOWN"}},"adp":[{"title":"CISA ADP Vulnrichment","references":[{"url":"https://github.com/dbt-labs/dbt/security/advisories/GHSA-h2j2-2r7g-rff8","tags":["exploit"]}],"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-10-20T01:50:57.067215Z","id":"CVE-2026-100406","options":[{"Exploitation":"poc"},{"Automatable":"yes"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-10-20T01:51:20.549Z"}}]}}}