CVE-2026-55837 json
dbt-mcp: Unauthenticated OAuth Context Endpoint Leaks dbt Platform Tokens
published 2026-06-19 4 mo ago modified 2026-09-30 39 d ago also GHSA-jr33-mw75-7j8f , PYSEC-2026-2443 , EUVD-2026-77639
- cvss
- 6.8
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.3%
- EPSS 0.3% chance of exploitation in 30 days, percentile 19%
- public exploits
- 0
- none known
Summary
dbt-mcp is a Model Context Protocol server for interacting with dbt. Prior to 1.20.0, the local OAuth helper in src/dbt_mcp/oauth/fastapi_app.py exposes GET /dbt_platform_context without authentication or Host validation after a user completes the dbt Platform OAuth flow. The endpoint returns the full DbtPlatformContext, including access_token and refresh_token values persisted by the context manager, to any process that can reach 127.0.0.1:6785. The absence of TrustedHostMiddleware allows a remote attacker to use DNS rebinding against a victim's browser because the helper accepts arbitrary Host headers, while a co-located process can request the endpoint directly. The stolen tokens provide immediate dbt Platform API access as the victim and persistent access through the refresh token, allowing access to or modification of projects, jobs, environment secrets, and related account data. This issue is fixed in version 1.20.0.
Patch / fix
- pypi dbt-mcp 1.20.0
- github.com/dbt-labs/dbt-mcp@b8bdb40 commit
- github.com/dbt-labs/dbt-mcp#789 pull request
- github.com/dbt-labs/dbt-mcp/releases/tag/v1.20.0 release
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- no
- Technical impact
- total
- Assessed
- 53 d ago
Exploit prediction
0.27% chance of exploitation in the next 30 days, higher than 19% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/dbt-labs/dbt-mcp/security/advisories/GHSA-jr33-mw75-7j8f referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 6.8 | CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N |
| OSV | 3.1 | 6.8 | CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N |
| GitHub | 3.1 | 6.8 | CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | dbt-mcp | <1.20.0 |
1.20.0 |
Affected products
- dbt-labs dbt-mcp
Classification
References
- github.com /dbt-labs/dbt-mcp/pull/789
- github.com /dbt-labs/dbt-mcp/commit/b8bdb40f90ed29f6b36176c5f6c697aa27a035a9
-
github.com
/dbt-labs/dbt-mcp/security/advisories/GHSA-jr33-mw75-7j8f
exploit, web
- github.com /dbt-labs/dbt-mcp/releases/tag/v1.20.0
-
github.com
/dbt-labs/dbt-mcp
package
-
pypi.org
/project/dbt-mcp
package
-
github.com
/advisories/GHSA-jr33-mw75-7j8f
advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-55837
advisory
Sources
- CVE List CVE-2026-55837
- GitHub Advisory GHSA-jr33-mw75-7j8f
- NVD CVE-2026-55837
- OSV PYSEC-2026-2443
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.