dbt has an implicit override for built-in materializations from installed packages
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/
Czego dotyczy
Kliknij technologię, aby zobaczyć wszystkie dotyczące jej podatności.
| Platforma | Paczka | Podatne wersje | Poprawka w wersji |
|---|---|---|---|
| Python (PyPI) | dbt-core | >= 1.6.0, < 1.6.14, >= 1.7.0, < 1.7.14 | 1.6.14, 1.7.14 |
Odnośniki
- https://github.com/dbt-labs/dbt-core/security/advisories/GHSA-p3f3-5ccg-83xq
- https://github.com/dbt-labs/dbt-core/commit/3c82a0296d227cb1be295356df314c11716f4ff6
- https://github.com/dbt-labs/dbt-core/commit/87ac4deb00cc9fe334706e42a365903a1d581624
- https://docs.getdbt.com/docs/build/packages
- https://docs.getdbt.com/reference/global-configs/legacy-behaviors#behavior-change-flags
- https://tempered.works/posts/2024/07/06/preventing-data-theft-with-gcp-service-controls
- 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://nvd.nist.gov/vuln/detail/CVE-2024-40637
- https://github.com/dbt-labs/dbt-core
- https://github.com/pypa/advisory-database/tree/main/vulns/dbt-core/PYSEC-2024-66.yaml
- Wektor CVSS
CVSS:3.1/AV:L/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:L- Słabość (CWE)
CWE-74, CWE-89, CWE-913- Platforma
- Python (PyPI)
- Paczka
dbt-core- Ujawniono
- 16.07.2024
- Aktualizacja
- 11.10.2026 15:17
Źródła i licencje
OSV / GitHub Advisory Database - PYSEC-2024-66 - PyPA Advisory Database; CC BY 4.0
OSV / GitHub Advisory Database - GHSA-p3f3-5ccg-83xq - CC BY 4.0
Historia podatności: dbt-core
Wszystkie opisane podatności tej paczki (Python (PyPI)), od najnowszej. Widać, czy to jednorazowa wpadka, czy paczka, której trzeba pilnować.
- Wszystkich wpisów
- 4
- Pierwsza → ostatnia
- 12.2023 07.2024
- Bez poprawki
- 0
- Wykorzystywana w atakach
- 0
Rozkład istotności
- Wysoka 1
- Średnia 1
- Niska 2
Ujawnienia w latach
- 2023: 1
- 2024: 3
- 2025: 0
- 2026: 0
-
dbt has an implicit override for built-in materializations from installed packages ten wpis
Dowiedz się, które podatności dotyczą Twojej aplikacji
Po podłączeniu integracji DockRay i włączeniu raportowania oprogramowania DockRay porównuje zgłoszone wersje komponentów ze znanymi podatnościami i powiadamia o potwierdzonych dopasowaniach. Zakres zależy od obsługiwanej technologii i dostępnych biuletynów.