GitHub Advisoryadvisory · PyPI
GHSA-p3f3-5ccg-83xq dbt has an implicit override for built-in materializations from installed packages
LOW
Official page ↗
- Aliases
- CVE-2024-40637
- Ecosystem
- PyPI
- Packages
- dbt-core
- Severity
- Low
- CVSS vector
- CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:L
- Weaknesses
- CWE-74, CWE-89, CWE-913
- Reviewed
- 2024-07-17
Affected packages
• PyPI dbt-core: >= 1.6.0, < 1.6.14 → fixed in 1.6.14
• PyPI dbt-core: >= 1.7.0, < 1.7.14 → fixed in 1.7.14
Description
Impact
_What kind of vulnerability is it? Who is impacted?_
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.
Patches
_Has the problem been patched? What versions should users upgrade to?_
Fixed on 1.8.0, and patched for 1.6.14 and 1.7.14 releases.
Workarounds
_Is there a way for users to fix or remediate the vulnerability without upgrading?_
Previously, a materialization defined in a package that shared a name with one of the built-in materializations would be preferred by default, without user action which is surprising and makes it more difficult to detect the insecure behaviour. We've changed the default behaviour to require explicit overrides by users in `1.8.0`, and provided the ability to opt-out of built-in materialization overrides in 1.6 and 1.7 via the `flags.require_explicit_package_overrides_for_builtin_materializations: False` configuration in `dbt_project.yml`
Versions older than 1.6 are EOL.
References
_Are there any links users can visit to find out more?_
• dbt documentation: https://docs.getdbt.com/reference/global-configs/legacy-behaviors#behavior-change-flags
• https://www.elementary-data.com/post/are-dbt-packages-secure-the-answer-lies-in-your-dwh-policies
• https://www.equalexperts.com/blog/tech-focus/are-you-at-risk-from-this-critical-dbt-vulnerability/
• https://tempered.works/posts/2024/07/06/preventing-data-theft-with-gcp-service-controls/
Related
Alias · CVE (1)
- CVE-2024-40637 dbt enables data analysts and engineers to transform their data using the same practices that software engineers use to build applications. vulnerability
References
- https://github.com/dbt-labs/dbt-core/security/advisories/GHSA-p3f3-5ccg-83xq web
- https://nvd.nist.gov/vuln/detail/CVE-2024-40637 advisory
- https://github.com/dbt-labs/dbt-core/commit/3c82a0296d227cb1be295356df314c11716f4ff6 web
- https://github.com/dbt-labs/dbt-core/commit/87ac4deb00cc9fe334706e42a365903a1d581624 web
- https://docs.getdbt.com/docs/build/packages web
- https://docs.getdbt.com/reference/global-configs/legacy-behaviors#behavior-change-flags web
- https://github.com/dbt-labs/dbt-core package
- https://github.com/pypa/advisory-database/tree/main/vulns/dbt-core/PYSEC-2024-66.yaml web
- https://tempered.works/posts/2024/07/06/preventing-data-theft-with-gcp-service-controls web
- https://www.elementary-data.com/post/are-dbt-packages-secure-the-answer-lies-in-your-dwh-policies web
- https://www.equalexperts.com/blog/tech-focus/are-you-at-risk-from-this-critical-dbt-vulnerability web