{"url":"https://pypi.sbomify.com/package/dbtective/0.3.5","markdown_url":"https://pypi.sbomify.com/package/dbtective/0.3.5.md","name":"dbtective","version":"0.3.5","purl":"pkg:pypi/dbtective@0.3.5","summary":"dbtective is a Rust-powered 'detective' for `dbt metadata` best practices.","author":null,"project_urls":{"Changelog":"https://github.com/feliblo/dbtective/blob/master/CHANGELOG.md","Homepage":"https://feliblo.github.io/dbtective/","Releases":"https://github.com/feliblo/dbtective/releases","Repository":"https://github.com/feliblo/dbtective"},"requires_python":">=3.8","license":null,"classifiers":["Development Status :: 2 - Pre-Alpha","Environment :: Console","Intended Audience :: Developers","License :: OSI Approved :: MIT License","Operating System :: OS Independent","Programming Language :: Rust","Topic :: Software Development :: Quality Assurance"],"wheels":[{"filename":"dbtective-0.3.5-py3-none-macosx_10_12_x86_64.whl","url":"https://files.pythonhosted.org/packages/dc/b7/c598fdea08d478840fd45bf29de2f35300273cecbc180d1913732aca476c/dbtective-0.3.5-py3-none-macosx_10_12_x86_64.whl","sboms":[{"artifact_uuid":"490231b6-11a5-5548-b323-72f61eb5f49b","path":"dbtective-0.3.5.dist-info/sboms/dbtective.cyclonedx.json","format":"CycloneDX/1.5","format_family":"CycloneDX","valid":true,"media_type":"application/vnd.cyclonedx+json","download_url":"https://pypi.sbomify.com/artifact/490231b6-11a5-5548-b323-72f61eb5f49b/download","vulnerability_count":19,"scan_error":null}],"attestation":{"status":"not_available"}},{"filename":"dbtective-0.3.5-py3-none-macosx_11_0_arm64.whl","url":"https://files.pythonhosted.org/packages/12/52/8bb30f85a477482e62e5b4aa3ee719629aa6e5f9263620f504bfc52755a7/dbtective-0.3.5-py3-none-macosx_11_0_arm64.whl","sboms":[{"artifact_uuid":"e3970dbe-7179-5049-8dd9-957bf0af9bc9","path":"dbtective-0.3.5.dist-info/sboms/dbtective.cyclonedx.json","format":"CycloneDX/1.5","format_family":"CycloneDX","valid":true,"media_type":"application/vnd.cyclonedx+json","download_url":"https://pypi.sbomify.com/artifact/e3970dbe-7179-5049-8dd9-957bf0af9bc9/download","vulnerability_count":19,"scan_error":null}],"attestation":{"status":"not_available"}},{"filename":"dbtective-0.3.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl","url":"https://files.pythonhosted.org/packages/43/42/c98ee8caf9f90b6c43c9615b7a721bad699f8076dcf714f543cbcef4ea4d/dbtective-0.3.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl","sboms":[{"artifact_uuid":"20469dbd-629c-5463-8c42-f086adf431e1","path":"dbtective-0.3.5.dist-info/sboms/dbtective.cyclonedx.json","format":"CycloneDX/1.5","format_family":"CycloneDX","valid":true,"media_type":"application/vnd.cyclonedx+json","download_url":"https://pypi.sbomify.com/artifact/20469dbd-629c-5463-8c42-f086adf431e1/download","vulnerability_count":19,"scan_error":null}],"attestation":{"status":"not_available"}},{"filename":"dbtective-0.3.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl","url":"https://files.pythonhosted.org/packages/ba/f4/063f0fc57b880628b3a409230f9fd51d8cda55c68a14eccdd57b0145f6e8/dbtective-0.3.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl","sboms":[{"artifact_uuid":"530286d5-5971-55c1-9b89-3639ef2645a7","path":"dbtective-0.3.5.dist-info/sboms/dbtective.cyclonedx.json","format":"CycloneDX/1.5","format_family":"CycloneDX","valid":true,"media_type":"application/vnd.cyclonedx+json","download_url":"https://pypi.sbomify.com/artifact/530286d5-5971-55c1-9b89-3639ef2645a7/download","vulnerability_count":19,"scan_error":null}],"attestation":{"status":"not_available"}},{"filename":"dbtective-0.3.5-py3-none-win_amd64.whl","url":"https://files.pythonhosted.org/packages/6e/a9/57b27851c30e6329ed13787cdfa537f090a9f4baeed1445682e3c6cff9bf/dbtective-0.3.5-py3-none-win_amd64.whl","sboms":[{"artifact_uuid":"8af53a31-aa76-504e-a578-906f0a05a5f6","path":"dbtective-0.3.5.dist-info/sboms/dbtective.cyclonedx.json","format":"CycloneDX/1.5","format_family":"CycloneDX","valid":true,"media_type":"application/vnd.cyclonedx+json","download_url":"https://pypi.sbomify.com/artifact/8af53a31-aa76-504e-a578-906f0a05a5f6/download","vulnerability_count":19,"scan_error":null}],"attestation":{"status":"not_available"}}],"formats":["CycloneDX"],"sbom_count":5,"has_attestation":false,"vulnerabilities":[{"id":"CVE-2026-43868","aliases":["BIT-thrift-2026-43868","GHSA-2f9f-gq7v-9h6m","RUSTSEC-2026-0435"],"summary":"Unbounded memory allocation in `thrift` binary protocol `read_bytes`","severity":"high","score":7.5,"package":"thrift","version":"0.17.0","ecosystem":"crates.io","purl":"pkg:cargo/thrift@0.17.0","fixed":["0.23.0"],"url":"https://insights.sbomify.com/CVE-2026-43868/","wheels":["dbtective-0.3.5-py3-none-macosx_10_12_x86_64.whl","dbtective-0.3.5-py3-none-macosx_11_0_arm64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl","dbtective-0.3.5-py3-none-win_amd64.whl"]},{"id":"RUSTSEC-2026-0190","aliases":[],"summary":"Unsoundness in `Error::downcast_mut()`","severity":"unknown","score":null,"package":"anyhow","version":"1.0.100","ecosystem":"crates.io","purl":"pkg:cargo/anyhow@1.0.100","fixed":["1.0.103"],"url":"https://osv.dev/vulnerability/RUSTSEC-2026-0190","wheels":["dbtective-0.3.5-py3-none-macosx_10_12_x86_64.whl","dbtective-0.3.5-py3-none-macosx_11_0_arm64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl","dbtective-0.3.5-py3-none-win_amd64.whl"]},{"id":"RUSTSEC-2024-0436","aliases":[],"summary":"paste - no longer maintained","severity":"unknown","score":null,"package":"paste","version":"1.0.15","ecosystem":"crates.io","purl":"pkg:cargo/paste@1.0.15","fixed":[],"url":"https://osv.dev/vulnerability/RUSTSEC-2024-0436","wheels":["dbtective-0.3.5-py3-none-macosx_10_12_x86_64.whl","dbtective-0.3.5-py3-none-macosx_11_0_arm64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl","dbtective-0.3.5-py3-none-win_amd64.whl"]},{"id":"RUSTSEC-2026-0173","aliases":[],"summary":"proc-macro-error2 is unmaintained","severity":"unknown","score":null,"package":"proc-macro-error2","version":"2.0.1","ecosystem":"crates.io","purl":"pkg:cargo/proc-macro-error2@2.0.1","fixed":[],"url":"https://osv.dev/vulnerability/RUSTSEC-2026-0173","wheels":["dbtective-0.3.5-py3-none-macosx_10_12_x86_64.whl","dbtective-0.3.5-py3-none-macosx_11_0_arm64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl","dbtective-0.3.5-py3-none-win_amd64.whl"]},{"id":"RUSTSEC-2024-0449","aliases":[],"summary":"unsafe-libyaml is unmaintained","severity":"unknown","score":null,"package":"unsafe-libyaml","version":"0.2.11","ecosystem":"crates.io","purl":"pkg:cargo/unsafe-libyaml@0.2.11","fixed":[],"url":"https://osv.dev/vulnerability/RUSTSEC-2024-0449","wheels":["dbtective-0.3.5-py3-none-macosx_10_12_x86_64.whl","dbtective-0.3.5-py3-none-macosx_11_0_arm64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl","dbtective-0.3.5-py3-none-win_amd64.whl"]},{"id":"RUSTSEC-2026-0391","aliases":[],"summary":"Data from an abandoned stream leaks into the next stream on a reused context","severity":"unknown","score":null,"package":"zstd","version":"0.13.3","ecosystem":"crates.io","purl":"pkg:cargo/zstd@0.13.3","fixed":["0.13.4"],"url":"https://osv.dev/vulnerability/RUSTSEC-2026-0391","wheels":["dbtective-0.3.5-py3-none-macosx_10_12_x86_64.whl","dbtective-0.3.5-py3-none-macosx_11_0_arm64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl","dbtective-0.3.5-py3-none-win_amd64.whl"]},{"id":"RUSTSEC-2026-0395","aliases":[],"summary":"Use-after-free with `CParameter::StableInBuffer`","severity":"unknown","score":null,"package":"zstd-safe","version":"7.2.4","ecosystem":"crates.io","purl":"pkg:cargo/zstd-safe@7.2.4","fixed":["7.4.0"],"url":"https://osv.dev/vulnerability/RUSTSEC-2026-0395","wheels":["dbtective-0.3.5-py3-none-macosx_10_12_x86_64.whl","dbtective-0.3.5-py3-none-macosx_11_0_arm64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl","dbtective-0.3.5-py3-none-win_amd64.whl"]},{"id":"RUSTSEC-2026-0396","aliases":[],"summary":"`Seekable` reads a NULL or out-of-bounds seek table","severity":"unknown","score":null,"package":"zstd-safe","version":"7.2.4","ecosystem":"crates.io","purl":"pkg:cargo/zstd-safe@7.2.4","fixed":["7.4.0"],"url":"https://osv.dev/vulnerability/RUSTSEC-2026-0396","wheels":["dbtective-0.3.5-py3-none-macosx_10_12_x86_64.whl","dbtective-0.3.5-py3-none-macosx_11_0_arm64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl","dbtective-0.3.5-py3-none-win_amd64.whl"]},{"id":"RUSTSEC-2026-0397","aliases":[],"summary":"`OutBuffer::around_pos` exposes uninitialized memory","severity":"unknown","score":null,"package":"zstd-safe","version":"7.2.4","ecosystem":"crates.io","purl":"pkg:cargo/zstd-safe@7.2.4","fixed":["7.4.0"],"url":"https://osv.dev/vulnerability/RUSTSEC-2026-0397","wheels":["dbtective-0.3.5-py3-none-macosx_10_12_x86_64.whl","dbtective-0.3.5-py3-none-macosx_11_0_arm64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl","dbtective-0.3.5-py3-none-win_amd64.whl"]},{"id":"RUSTSEC-2026-0398","aliases":[],"summary":"`Seekable::decompress` sets a `Vec` length beyond its capacity for offsets past the end","severity":"unknown","score":null,"package":"zstd-safe","version":"7.2.4","ecosystem":"crates.io","purl":"pkg:cargo/zstd-safe@7.2.4","fixed":["7.4.0"],"url":"https://osv.dev/vulnerability/RUSTSEC-2026-0398","wheels":["dbtective-0.3.5-py3-none-macosx_10_12_x86_64.whl","dbtective-0.3.5-py3-none-macosx_11_0_arm64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl","dbtective-0.3.5-py3-none-win_amd64.whl"]},{"id":"RUSTSEC-2026-0399","aliases":[],"summary":"Use-after-free through `init_using_cdict` and `init_using_ddict`","severity":"unknown","score":null,"package":"zstd-safe","version":"7.2.4","ecosystem":"crates.io","purl":"pkg:cargo/zstd-safe@7.2.4","fixed":["7.4.0"],"url":"https://osv.dev/vulnerability/RUSTSEC-2026-0399","wheels":["dbtective-0.3.5-py3-none-macosx_10_12_x86_64.whl","dbtective-0.3.5-py3-none-macosx_11_0_arm64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl","dbtective-0.3.5-py3-none-win_amd64.whl"]},{"id":"RUSTSEC-2026-0400","aliases":[],"summary":"Use-after-free of a dictionary after a one-shot call on a context with an open stream","severity":"unknown","score":null,"package":"zstd-safe","version":"7.2.4","ecosystem":"crates.io","purl":"pkg:cargo/zstd-safe@7.2.4","fixed":["7.4.0"],"url":"https://osv.dev/vulnerability/RUSTSEC-2026-0400","wheels":["dbtective-0.3.5-py3-none-macosx_10_12_x86_64.whl","dbtective-0.3.5-py3-none-macosx_11_0_arm64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl","dbtective-0.3.5-py3-none-win_amd64.whl"]},{"id":"RUSTSEC-2026-0401","aliases":[],"summary":"Out-of-bounds read in `train_from_buffer` when sample sizes overflow","severity":"unknown","score":null,"package":"zstd-safe","version":"7.2.4","ecosystem":"crates.io","purl":"pkg:cargo/zstd-safe@7.2.4","fixed":["7.4.0"],"url":"https://osv.dev/vulnerability/RUSTSEC-2026-0401","wheels":["dbtective-0.3.5-py3-none-macosx_10_12_x86_64.whl","dbtective-0.3.5-py3-none-macosx_11_0_arm64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl","dbtective-0.3.5-py3-none-win_amd64.whl"]},{"id":"RUSTSEC-2026-0402","aliases":[],"summary":"Heap buffer overflow in `CCtx::try_clone` on a multithreaded context","severity":"unknown","score":null,"package":"zstd-safe","version":"7.2.4","ecosystem":"crates.io","purl":"pkg:cargo/zstd-safe@7.2.4","fixed":["7.4.0"],"url":"https://osv.dev/vulnerability/RUSTSEC-2026-0402","wheels":["dbtective-0.3.5-py3-none-macosx_10_12_x86_64.whl","dbtective-0.3.5-py3-none-macosx_11_0_arm64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl","dbtective-0.3.5-py3-none-win_amd64.whl"]},{"id":"RUSTSEC-2026-0403","aliases":[],"summary":"Uninitialized memory exposed when streaming decompression of a legacy frame fails","severity":"unknown","score":null,"package":"zstd-safe","version":"7.2.4","ecosystem":"crates.io","purl":"pkg:cargo/zstd-safe@7.2.4","fixed":["7.4.0"],"url":"https://osv.dev/vulnerability/RUSTSEC-2026-0403","wheels":["dbtective-0.3.5-py3-none-macosx_10_12_x86_64.whl","dbtective-0.3.5-py3-none-macosx_11_0_arm64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl","dbtective-0.3.5-py3-none-win_amd64.whl"]},{"id":"RUSTSEC-2026-0404","aliases":[],"summary":"Double free in `DCtx::try_clone`","severity":"unknown","score":null,"package":"zstd-safe","version":"7.2.4","ecosystem":"crates.io","purl":"pkg:cargo/zstd-safe@7.2.4","fixed":["7.4.0"],"url":"https://osv.dev/vulnerability/RUSTSEC-2026-0404","wheels":["dbtective-0.3.5-py3-none-macosx_10_12_x86_64.whl","dbtective-0.3.5-py3-none-macosx_11_0_arm64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl","dbtective-0.3.5-py3-none-win_amd64.whl"]},{"id":"RUSTSEC-2026-0405","aliases":[],"summary":"Out-of-bounds read with an out-of-range `InBuffer::pos`","severity":"unknown","score":null,"package":"zstd-safe","version":"7.2.4","ecosystem":"crates.io","purl":"pkg:cargo/zstd-safe@7.2.4","fixed":["7.4.0"],"url":"https://osv.dev/vulnerability/RUSTSEC-2026-0405","wheels":["dbtective-0.3.5-py3-none-macosx_10_12_x86_64.whl","dbtective-0.3.5-py3-none-macosx_11_0_arm64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl","dbtective-0.3.5-py3-none-win_amd64.whl"]},{"id":"RUSTSEC-2026-0406","aliases":[],"summary":"Use-after-free when changing a multithreaded context with an unfinished frame","severity":"unknown","score":null,"package":"zstd-safe","version":"7.2.4","ecosystem":"crates.io","purl":"pkg:cargo/zstd-safe@7.2.4","fixed":["7.4.0"],"url":"https://osv.dev/vulnerability/RUSTSEC-2026-0406","wheels":["dbtective-0.3.5-py3-none-macosx_10_12_x86_64.whl","dbtective-0.3.5-py3-none-macosx_11_0_arm64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl","dbtective-0.3.5-py3-none-win_amd64.whl"]},{"id":"RUSTSEC-2026-0410","aliases":[],"summary":"WebAssembly allocator shim corrupts memory on allocation failure","severity":"unknown","score":null,"package":"zstd-sys","version":"2.0.16+zstd.1.5.7","ecosystem":"crates.io","purl":"pkg:cargo/zstd-sys@2.0.16%2Bzstd.1.5.7","fixed":["2.1.2"],"url":"https://osv.dev/vulnerability/RUSTSEC-2026-0410","wheels":["dbtective-0.3.5-py3-none-macosx_10_12_x86_64.whl","dbtective-0.3.5-py3-none-macosx_11_0_arm64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl","dbtective-0.3.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl","dbtective-0.3.5-py3-none-win_amd64.whl"]}],"vulnerability_scan":{"scanned_sboms":5,"total_sboms":5,"scanned_at":"2026-11-10","scanner":"osv-scanner 2.7.0","severity_counts":{"high":1,"unknown":18}}}