{"answers":{"affected":"3 open source packages ship an affected version, including dbt-mcp. It affects 1 product.","exploited":"It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-44969 exists.","fix":"Upgrade dbt-mcp to 1.17.1 or later.","what":"CVE-2026-44969 is a low-severity vulnerability in dbt-labs dbt-mcp, published on 16 Jul 2026. It can only be exploited from the same machine or local network, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-44969 and fix it if it is affected.\n\nWhat it is: CVE-2026-44969 is a low-severity vulnerability in dbt-labs dbt-mcp, published on 16 Jul 2026. It can only be exploited from the same machine or local network, with no action from the victim.\nExploitation: It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-44969 exists.\n\nAffected packages and fixed versions:\n- dbt-mcp (PyPI): affected all versions; fixed in 1.17.1\n- dbt-mcp (PyPI): affected all versions; fixed in 1.17.1\n- dbt-mcp (PyPI): affected all versions; fixed in 1.17.1\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-44969/ (Markdown: https://insights.sbomify.com/CVE-2026-44969/index.md)","id":"CVE-2026-44969","markdown":"https://insights.sbomify.com/CVE-2026-44969/index.md","name":"CVE-2026-44969","record":{"aliases":["GHSA-7xgw-6qf3-7w59","PYSEC-2026-2441"],"analysis":{"component_type":"developer_tool","fix_type":"upgrade","impacts":["data_read"],"network_reachable":"adjacent_or_local","non_default_config":true,"product_category":"dbt MCP server","requires_auth":"low_privilege","summary":"Attackers with file access can read sensitive SQL queries and credentials from logs when file logging is enabled in dbt-mcp.","user_interaction":"not_required","vuln_class":"information_disclosure"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"GitHub_M","cpe":[{"product":"dbt_mcp_server","vendor":"getdbt"}],"cvss":{"score":2.5,"severity":"low","source":"cna","vector":"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:N/A:N","version":"3.1"},"cwes":[{"id":"CWE-532","name":"Insertion of Sensitive Information into Log File"}],"description":"dbt-mcp is a Model Context Protocol server for interacting with dbt. Prior to 1.17.1, DbtMCP.call_tool() in src/dbt_mcp/mcp/server.py logged the raw arguments dictionary at INFO level before each tool call and at ERROR level on exceptions, and configure_file_logging() wrote those records to dbt-mcp.log when DBT_MCP_SERVER_FILE_LOGGING=true, preserving sensitive sql_query, vars, and node_selection values in plaintext without automatic rotation or deletion. This issue is fixed in version 1.17.1.","ecosystems":["PyPI"],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"weaponised"},"has_fix":true,"headline":"dbt MCP Server Logs Tool Arguments Including SQL Queries and Credentials in Plaintext Without Redaction When File Logging Is Enabled","id":"CVE-2026-44969","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":"PyPI","product":null,"products":[],"type":"information_disclosure","year":"2026"},"n_packages":3,"n_references":4,"next":{"headline":"dbt MCP Server Transmits All MCP Tool Arguments Including Raw SQL and --vars Credentials to dbt Labs Telemetry by Default Without Redaction","id":"CVE-2026-44970"},"packages":[{"ecosystem":"PyPI","fixed":["1.17.1"],"introduced":["0"],"last_affected":[],"package":"dbt-mcp","purl":null,"source":"GHSA-7xgw-6qf3-7w59"},{"ecosystem":"PyPI","fixed":["1.17.1"],"introduced":["0"],"last_affected":[],"package":"dbt-mcp","purl":"pkg:pypi/dbt-mcp","source":"GHSA-7xgw-6qf3-7w59"},{"ecosystem":"PyPI","fixed":["1.17.1"],"introduced":["0"],"last_affected":[],"package":"dbt-mcp","purl":"pkg:pypi/dbt-mcp","source":"PYSEC-2026-2441"}],"prev":{"headline":"dbt-mcp: Argument Injection in dbt CLI Tool Wrappers via node_selection and resource_type Parameters","id":"CVE-2026-44968"},"products":["dbt-mcp"],"published":"2026-07-16","related":[{"cvss_score":6.3,"headline":"dbt-mcp: Argument Injection in dbt CLI Tool Wrappers via node_selection and resource_type Parameters","id":"CVE-2026-44968","kev_date_added":null,"published":"2026-07-16"},{"cvss_score":3.1,"headline":"dbt MCP Server Transmits All MCP Tool Arguments Including Raw SQL and --vars Credentials to dbt Labs Telemetry by Default Without Redaction","id":"CVE-2026-44970","kev_date_added":null,"published":"2026-07-16"}],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CC BY 4.0","name":"GitHub Advisory Database","prefix":"GHSA"},{"class":"attribution","licence":"CC BY 4.0","name":"PyPA Advisory Database","prefix":"PYSEC"},{"class":"attribution","licence":"US public information, NVD API terms","name":"NVD"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"no","exploitation":"poc","technical_impact":"partial"},"state":"PUBLISHED","updated":"2026-07-17","vendors":["dbt-labs"]},"summary":"Attackers with file access can read sensitive SQL queries and credentials from logs when file logging is enabled in dbt-mcp.","url":"https://insights.sbomify.com/CVE-2026-44969/"}