← Back to CVE Explorer

CVE-2024-40637

Full vulnerability record from the local CVENow database.

Description

dbt enables data analysts and engineers to transform their data using the same practices that software engineers use to build applications. When a user installs a package in dbt, it has the ability to override macros, materializations, and other core components of dbt. This is by design, as it allows packages to extend and customize dbt's functionality. However, this also means that a malicious package could potentially override these components with harmful code. This issue has been fixed in versions 1.8.0, 1.6.14 and 1.7.14. Users are advised to upgrade. There are no kn own workarounds for this vulnerability. Users updating to either 1.6.14 or 1.7.14 will need to set `flags.require_explicit_package_overrides_for_builtin_materializations: False` in their configuration in `dbt_project.yml`.

Severity
HIGH
CVSS score
7.3 (v3.1)
Vulnerability status
Analyzed
Source identifier
Published
2024-07-16 23:15:24.260000
Last modified
2026-10-30 14:45:52.563000
View original CVE JSON
{
  "id": "CVE-2024-40637",
  "sourceIdentifier": "[email protected]",
  "published": "2024-07-16T23:15:24.260",
  "lastModified": "2026-10-30T14:45:52.563",
  "vulnStatus": "Analyzed",
  "cveTags": [],
  "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. When a user installs a package in dbt, it has the ability to override macros, materializations, and other core components of dbt. This is by design, as it allows packages to extend and customize dbt's functionality. However, this also means that a malicious package could potentially override these components with harmful code. This issue has been fixed in versions 1.8.0, 1.6.14 and 1.7.14. Users are advised to upgrade. There are no kn own workarounds for this vulnerability. Users updating to either 1.6.14 or 1.7.14 will need to set `flags.require_explicit_package_overrides_for_builtin_materializations: False` in their configuration in `dbt_project.yml`."
    },
    {
      "lang": "es",
      "value": "dbt permite a los ingenieros y analistas de datos transformar sus datos utilizando las mismas prácticas que utilizan los ingenieros de software para crear aplicaciones. Cuando un usuario instala un paquete en dbt, tiene la capacidad de anular macros, materializaciones y otros componentes principales de dbt. Esto es por diseño, ya que permite que los paquetes extiendan y personalicen la funcionalidad de dbt. Sin embargo, esto también significa que un paquete malicioso podría anular estos componentes con código dañino. Este problema se solucionó en las versiones 1.8.0, 1.6.14 y 1.7.14. Se recomienda a los usuarios que actualicen. No existen workarounds conocidos para esta vulnerabilidad. Los usuarios que actualicen a 1.6.14 o 1.7.14 deberán configurar `flags.require_explicit_package_overrides_for_builtin_materializations: False` en su configuración en `dbt_project.yml`."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "dbt-labs",
          "product": "dbt-core",
          "versions": [
            {
              "version": "< 1.6.14",
              "status": "affected"
            },
            {
              "version": ">= 1.7.0, < 1.7.14",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV31": [
      {
        "source": "[email protected]",
        "type": "Secondary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:L",
          "baseScore": 4.2,
          "baseSeverity": "MEDIUM",
          "attackVector": "LOCAL",
          "attackComplexity": "HIGH",
          "privilegesRequired": "LOW",
          "userInteraction": "REQUIRED",
          "scope": "UNCHANGED",
          "confidentialityImpact": "LOW",
          "integrityImpact": "LOW",
          "availabilityImpact": "LOW"
        },
        "exploitabilityScore": 0.8,
        "impactScore": 3.4
      },
      {
        "source": "[email protected]",
        "type": "Primary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H",
          "baseScore": 7.3,
          "baseSeverity": "HIGH",
          "attackVector": "LOCAL",
          "attackComplexity": "LOW",
          "privilegesRequired": "LOW",
          "userInteraction": "REQUIRED",
          "scope": "UNCHANGED",
          "confidentialityImpact": "HIGH",
          "integrityImpact": "HIGH",
          "availabilityImpact": "HIGH"
        },
        "exploitabilityScore": 1.3,
        "impactScore": 5.9
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2024-07-17T14:33:07.870141Z",
          "id": "CVE-2024-40637",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "partial"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-74"
        }
      ]
    },
    {
      "source": "[email protected]",
      "type": "Primary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-94"
        }
      ]
    }
  ],
  "configurations": [
    {
      "nodes": [
        {
          "operator": "OR",
          "negate": false,
          "cpeMatch": [
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:a:getdbt:dbt-core:*:*:*:*:*:python:*:*",
              "versionStartIncluding": "1.6.0",
              "versionEndExcluding": "1.6.14",
              "matchCriteriaId": "F6266100-DA66-4C33-B59B-6E63B207EC70"
            },
            {
              "vulnerable": true,
              "criteria": "cpe:2.3:a:getdbt:dbt-core:*:*:*:*:*:python:*:*",
              "versionStartIncluding": "1.7.0",
              "versionEndExcluding": "1.7.14",
              "matchCriteriaId": "0B50E841-913B-4F8B-9989-AAF7FD38EB20"
            }
          ]
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://docs.getdbt.com/docs/build/packages",
      "source": "[email protected]",
      "tags": [
        "Product"
      ]
    },
    {
      "url": "https://docs.getdbt.com/reference/global-configs/legacy-behaviors#behavior-change-flags",
      "source": "[email protected]",
      "tags": [
        "Vendor Advisory"
      ]
    },
    {
      "url": "https://github.com/dbt-labs/dbt-core/commit/3c82a0296d227cb1be295356df314c11716f4ff6",
      "source": "[email protected]",
      "tags": [
        "Patch"
      ]
    },
    {
      "url": "https://github.com/dbt-labs/dbt-core/commit/87ac4deb00cc9fe334706e42a365903a1d581624",
      "source": "[email protected]",
      "tags": [
        "Patch"
      ]
    },
    {
      "url": "https://github.com/dbt-labs/dbt-core/security/advisories/GHSA-p3f3-5ccg-83xq",
      "source": "[email protected]",
      "tags": [
        "Vendor Advisory",
        "Mitigation"
      ]
    },
    {
      "url": "https://tempered.works/posts/2024/07/06/preventing-data-theft-with-gcp-service-controls",
      "source": "[email protected]",
      "tags": [
        "Exploit",
        "Third Party Advisory"
      ]
    },
    {
      "url": "https://www.elementary-data.com/post/are-dbt-packages-secure-the-answer-lies-in-your-dwh-policies",
      "source": "[email protected]",
      "tags": [
        "Exploit",
        "Third Party Advisory"
      ]
    },
    {
      "url": "https://www.equalexperts.com/blog/tech-focus/are-you-at-risk-from-this-critical-dbt-vulnerability",
      "source": "[email protected]",
      "tags": [
        "Exploit",
        "Third Party Advisory"
      ]
    },
    {
      "url": "https://docs.getdbt.com/docs/build/packages",
      "source": "af854a3a-2127-422b-91ae-364da2661108",
      "tags": [
        "Product"
      ]
    },
    {
      "url": "https://docs.getdbt.com/reference/global-configs/legacy-behaviors#behavior-change-flags",
      "source": "af854a3a-2127-422b-91ae-364da2661108",
      "tags": [
        "Vendor Advisory"
      ]
    },
    {
      "url": "https://github.com/dbt-labs/dbt-core/commit/3c82a0296d227cb1be295356df314c11716f4ff6",
      "source": "af854a3a-2127-422b-91ae-364da2661108",
      "tags": [
        "Patch"
      ]
    },
    {
      "url": "https://github.com/dbt-labs/dbt-core/commit/87ac4deb00cc9fe334706e42a365903a1d581624",
      "source": "af854a3a-2127-422b-91ae-364da2661108",
      "tags": [
        "Patch"
      ]
    },
    {
      "url": "https://github.com/dbt-labs/dbt-core/security/advisories/GHSA-p3f3-5ccg-83xq",
      "source": "af854a3a-2127-422b-91ae-364da2661108",
      "tags": [
        "Vendor Advisory",
        "Mitigation"
      ]
    },
    {
      "url": "https://tempered.works/posts/2024/07/06/preventing-data-theft-with-gcp-service-controls",
      "source": "af854a3a-2127-422b-91ae-364da2661108",
      "tags": [
        "Exploit",
        "Third Party Advisory"
      ]
    },
    {
      "url": "https://www.elementary-data.com/post/are-dbt-packages-secure-the-answer-lies-in-your-dwh-policies",
      "source": "af854a3a-2127-422b-91ae-364da2661108",
      "tags": [
        "Exploit",
        "Third Party Advisory"
      ]
    },
    {
      "url": "https://www.equalexperts.com/blog/tech-focus/are-you-at-risk-from-this-critical-dbt-vulnerability",
      "source": "af854a3a-2127-422b-91ae-364da2661108",
      "tags": [
        "Exploit",
        "Third Party Advisory"
      ]
    }
  ]
}