# SBOM for whitebox-workflows 2.0.6

> Python bindings for Whitebox backend tool runtime

The Python package whitebox-workflows 2.0.6 ships 3 SBOM files (CycloneDX) inside its wheels, under `.dist-info/sboms/` ([PEP 770](https://peps.python.org/pep-0770/)). Its wheels carry a verified PEP 740 attestation.

- Package URL (PURL): `pkg:pypi/whitebox-workflows@2.0.6`
- PyPI: https://pypi.org/project/whitebox-workflows/2.0.6/
- License: MIT OR Apache-2.0
- Requires Python: \>=3.9

## SBOMs

### whitebox\_workflows-2.0.6-cp39-abi3-macosx\_11\_0\_arm64.whl

PEP 740 attestation verified (GitHub, jblindsay/wbtools\_pro, workflow wbw-python-pro-build.yml).

- [whitebox\_workflows-2.0.6.dist-info/sboms/wbw\_python.cyclonedx.json](https://pypi.sbomify.com/artifact/bbd5e833-c63b-5d9e-b6cb-18941513e538/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 57 known vulnerabilities

### whitebox\_workflows-2.0.6-cp39-abi3-manylinux\_2\_17\_x86\_64.manylinux2014\_x86\_64.whl

PEP 740 attestation verified (GitHub, jblindsay/wbtools\_pro, workflow wbw-python-pro-build.yml).

- [whitebox\_workflows-2.0.6.dist-info/sboms/wbw\_python.cyclonedx.json](https://pypi.sbomify.com/artifact/6a23e692-afdf-59b0-bbc7-7ab96ccd5364/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 57 known vulnerabilities

### whitebox\_workflows-2.0.6-cp39-abi3-win\_amd64.whl

PEP 740 attestation verified (GitHub, jblindsay/wbtools\_pro, workflow wbw-python-pro-build.yml).

- [whitebox\_workflows-2.0.6.dist-info/sboms/wbw\_python.cyclonedx.json](https://pypi.sbomify.com/artifact/7c602f7b-023a-545d-8c28-d2bf1e5825ec/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 57 known vulnerabilities

## Known vulnerabilities

Components listed in these SBOMs, matched against the [OSV database](https://osv.dev/) as of 2026-11-10.

| Vulnerability | Severity | Component | Fixed in | Summary |
|---|---|---|---|---|
| [CVE-2026-115905](https://insights.sbomify.com/CVE-2026-115905/) | critical (10.0) | zip 0.6.6 (crates.io) | 9.0.5 | zip: Critical Parser Differential & Security Control Bypass via Dual-Header Inconsistencies (Zip Cloaking) Leading to Arbitrary File Overwrite & RCE |
| [CVE-2026-115905](https://insights.sbomify.com/CVE-2026-115905/) | critical (10.0) | zip 8.5.1 (crates.io) | 9.0.5 | zip: Critical Parser Differential & Security Control Bypass via Dual-Header Inconsistencies (Zip Cloaking) Leading to Arbitrary File Overwrite & RCE |
| [RUSTSEC-2026-0369](https://osv.dev/vulnerability/RUSTSEC-2026-0369) | critical (9.1) | zip 0.6.6 (crates.io) | 9.0.0 | ZipStreamReader::extract() and ZipArchive::extract() apply Unix permissions through symlinks without confining the target |
| [RUSTSEC-2026-0369](https://osv.dev/vulnerability/RUSTSEC-2026-0369) | critical (9.1) | zip 8.5.1 (crates.io) | 9.0.0 | ZipStreamReader::extract() and ZipArchive::extract() apply Unix permissions through symlinks without confining the target |
| [RUSTSEC-2026-0176](https://osv.dev/vulnerability/RUSTSEC-2026-0176) | high (8.7) | pyo3 0.28.3 (crates.io) | 0.29.0 | Out-of-bounds read in \`nth\` / \`nth\_back\` for \`PyList\` and \`PyTuple\` iterators |
| [CVE-2026-93599](https://insights.sbomify.com/CVE-2026-93599/) | high (7.5) | rustls-webpki 0.103.10 (crates.io) | 0.103.13 | Reachable panic in certificate revocation list parsing |
| [RUSTSEC-2026-0344](https://osv.dev/vulnerability/RUSTSEC-2026-0344) | high (7.5) | ruzstd 0.8.2 (crates.io) | 0.9.1 | Decompression bomb in \`ruzstd\`: a tiny input can exhaust memory (OOM) |
| [CVE-2026-43868](https://insights.sbomify.com/CVE-2026-43868/) | high (7.5) | thrift 0.17.0 (crates.io) | 0.23.0 | Unbounded memory allocation in \`thrift\` binary protocol \`read\_bytes\` |
| [CVE-2026-115907](https://insights.sbomify.com/CVE-2026-115907/) | high (7.5) | zip 8.5.1 (crates.io) | 9.0.0 | zip: legacy Shrink/Reduce/Implode decoder: denial of service from attacker-controlled ZIP64 uncompressed size |
| [CVE-2026-115909](https://insights.sbomify.com/CVE-2026-115909/) | high (7.5) | zip 0.6.6 (crates.io) | 9.0.0 | zip: \`ZipArchive::extract\` aborts the process on a symlink entry with a large declared size |
| [CVE-2026-115909](https://insights.sbomify.com/CVE-2026-115909/) | high (7.5) | zip 8.5.1 (crates.io) | 9.0.0 | zip: \`ZipArchive::extract\` aborts the process on a symlink entry with a large declared size |
| [CVE-2026-115908](https://insights.sbomify.com/CVE-2026-115908/) | high (7.4) | zip 8.5.1 (crates.io) | 9.0.0 | zip: Arbitrary file write outside the extraction directory, because ZipArchive::extract validates symlink targets lexically. |
| [CVE-2026-52834](https://insights.sbomify.com/CVE-2026-52834/) | high (7.3) | jxl-grid 0.6.1 (crates.io) | 0.6.2 | Out-of-bounds writes due to integer overflow in jxl-grid on 32-bit platforms |
| [RUSTSEC-2026-0367](https://osv.dev/vulnerability/RUSTSEC-2026-0367) | high (7.3) | zip 0.6.6 (crates.io) | 9.0.0 | Insecure Preservation of SUID/SGID Bits during ZIP Extraction Leading to Potential Privilege Escalation |
| [RUSTSEC-2026-0367](https://osv.dev/vulnerability/RUSTSEC-2026-0367) | high (7.3) | zip 8.5.1 (crates.io) | 9.0.0 | Insecure Preservation of SUID/SGID Bits during ZIP Extraction Leading to Potential Privilege Escalation |
| [CVE-2025-53605](https://insights.sbomify.com/CVE-2025-53605/) | medium (6.6) | protobuf 2.28.0 (crates.io) | 3.7.2 | Crash due to uncontrolled recursion in protobuf crate |
| [CVE-2026-115906](https://insights.sbomify.com/CVE-2026-115906/) | medium (6.5) | zip 0.6.6 (crates.io) | 9.0.0 | zip: AES Entry HMAC Authentication Bypass on Premature EOF |
| [CVE-2026-115906](https://insights.sbomify.com/CVE-2026-115906/) | medium (6.5) | zip 8.5.1 (crates.io) | 9.0.0 | zip: AES Entry HMAC Authentication Bypass on Premature EOF |
| [RUSTSEC-2026-0177](https://osv.dev/vulnerability/RUSTSEC-2026-0177) | medium (6.3) | pyo3 0.28.3 (crates.io) | 0.29.0 | Missing \`Sync\` bound on \`PyCFunction::new\_closure\` closures |
| [GHSA-2v8p-fqpx-2q3w](https://osv.dev/vulnerability/GHSA-2v8p-fqpx-2q3w) | medium (6.2) | jxl-modular 0.11.2 (crates.io) | 0.11.3 | jxl-oxide: integer subtraction overflow panic in cluster\_from\_table via crafted JXL input (DoS) |
| [GHSA-66m8-c62j-h6v5](https://osv.dev/vulnerability/GHSA-66m8-c62j-h6v5) | medium (6.2) | jxl-oxide 0.12.5 (crates.io) | 0.12.6 | jxl-oxide: \`FrameBuffer::new\` creates out-of-bounds slices on overflow |
| [CVE-2026-123613](https://insights.sbomify.com/CVE-2026-123613/) | medium (5.3) | rustls 0.23.37 (crates.io) | 0.23.45 | TLS 1.3 handshake messages incorrectly accepted across encryption level boundaries |
| [CVE-2026-123609](https://insights.sbomify.com/CVE-2026-123609/) | medium (4.0) | rustls 0.23.37 (crates.io) | 0.23.46 | \`Debug\` impls for client session values expose TLS secrets |
| [CVE-2026-123610](https://insights.sbomify.com/CVE-2026-123610/) | low (3.7) | rustls 0.23.37 (crates.io) | 0.23.46 | Brotli certificate decompression can allocate up to 1 GiB before authentication |
| [CVE-2026-123611](https://insights.sbomify.com/CVE-2026-123611/) | low (3.7) | rustls 0.23.37 (crates.io) | 0.23.46 | Unauthenticated ServerHello can downgrade later connections to classical key exchange |
| [CVE-2026-93600](https://insights.sbomify.com/CVE-2026-93600/) | low (2.2) | rustls-webpki 0.103.10 (crates.io) | 0.103.12 | Name constraints for URI names were incorrectly accepted |
| [CVE-2026-93601](https://insights.sbomify.com/CVE-2026-93601/) | low (2.2) | rustls-webpki 0.103.10 (crates.io) | 0.103.12 | Name constraints were accepted for certificates asserting a wildcard name |
| [RUSTSEC-2026-0190](https://osv.dev/vulnerability/RUSTSEC-2026-0190) | unknown | anyhow 1.0.102 (crates.io) | 1.0.103 | Unsoundness in \`Error::downcast\_mut()\` |
| [CVE-2026-111959](https://insights.sbomify.com/CVE-2026-111959/) | unknown | arrow-data 58.3.0 (crates.io) | 58.4.1 | Apache Arrow Rust: Improper validation of RunEndEncoded arrays allows out of bounds reads |
| [RUSTSEC-2025-0141](https://osv.dev/vulnerability/RUSTSEC-2025-0141) | unknown | bincode 2.0.1 (crates.io) | none listed | Bincode is unmaintained |
| [RUSTSEC-2026-0105](https://osv.dev/vulnerability/RUSTSEC-2026-0105) | unknown | core2 0.4.0 (crates.io) | none listed | core2 is unmaintained, all versions yanked |
| [RUSTSEC-2026-0204](https://osv.dev/vulnerability/RUSTSEC-2026-0204) | unknown | crossbeam-epoch 0.9.18 (crates.io) | 0.9.20 | Invalid pointer dereference in \`fmt::Pointer\` impl for \`Atomic\` and \`Shared\` when the underlying pointer is invalid |
| [RUSTSEC-2024-0436](https://osv.dev/vulnerability/RUSTSEC-2024-0436) | unknown | paste 1.0.15 (crates.io) | none listed | paste - no longer maintained |
| [RUSTSEC-2024-0370](https://osv.dev/vulnerability/RUSTSEC-2024-0370) | unknown | proc-macro-error 1.0.4 (crates.io) | none listed | proc-macro-error is unmaintained |
| [RUSTSEC-2026-0097](https://osv.dev/vulnerability/RUSTSEC-2026-0097) | unknown | rand 0.10.0 (crates.io) | 0.10.1 | Rand is unsound with a custom logger using \`rand::rng()\` |
| [RUSTSEC-2026-0097](https://osv.dev/vulnerability/RUSTSEC-2026-0097) | unknown | rand 0.8.5 (crates.io) | 0.8.6 | Rand is unsound with a custom logger using \`rand::rng()\` |
| [RUSTSEC-2026-0097](https://osv.dev/vulnerability/RUSTSEC-2026-0097) | unknown | rand 0.9.2 (crates.io) | 0.9.3 | Rand is unsound with a custom logger using \`rand::rng()\` |
| [CVE-2026-111943](https://insights.sbomify.com/CVE-2026-111943/) | unknown | rustls-webpki 0.103.10 (crates.io) | 0.103.16 | Certificate verification may accept distrusted intermediates |
| [RUSTSEC-2026-0249](https://osv.dev/vulnerability/RUSTSEC-2026-0249) | unknown | smartstring 1.0.1 (crates.io) | none listed | smartstring is unmaintained |
| [GHSA-3pv8-6f4r-ffg2](https://osv.dev/vulnerability/GHSA-3pv8-6f4r-ffg2) | unknown | tar 0.4.45 (crates.io) | 0.4.46 | tar has a PAX header desynchronization issue |
| [CVE-2026-111943](https://insights.sbomify.com/CVE-2026-111943/) | unknown | webpki-roots 1.0.6 (crates.io) | 1.0.10 | Bundled root certificates allow trust in distrusted emSign intermediates |
| [RUSTSEC-2026-0368](https://osv.dev/vulnerability/RUSTSEC-2026-0368) | unknown | zip 0.6.6 (crates.io) | 9.0.0 | zip: \`ZipArchive::extract\` creates symbolic links whose attacker-controlled targets are outside the destination directory |
| [RUSTSEC-2026-0368](https://osv.dev/vulnerability/RUSTSEC-2026-0368) | unknown | zip 8.5.1 (crates.io) | 9.0.0 | zip: \`ZipArchive::extract\` creates symbolic links whose attacker-controlled targets are outside the destination directory |
| [RUSTSEC-2026-0391](https://osv.dev/vulnerability/RUSTSEC-2026-0391) | unknown | zstd 0.13.3 (crates.io) | 0.13.4 | Data from an abandoned stream leaks into the next stream on a reused context |
| [RUSTSEC-2026-0395](https://osv.dev/vulnerability/RUSTSEC-2026-0395) | unknown | zstd-safe 7.2.4 (crates.io) | 7.4.0 | Use-after-free with \`CParameter::StableInBuffer\` |
| [RUSTSEC-2026-0396](https://osv.dev/vulnerability/RUSTSEC-2026-0396) | unknown | zstd-safe 7.2.4 (crates.io) | 7.4.0 | \`Seekable\` reads a NULL or out-of-bounds seek table |
| [RUSTSEC-2026-0397](https://osv.dev/vulnerability/RUSTSEC-2026-0397) | unknown | zstd-safe 7.2.4 (crates.io) | 7.4.0 | \`OutBuffer::around\_pos\` exposes uninitialized memory |
| [RUSTSEC-2026-0398](https://osv.dev/vulnerability/RUSTSEC-2026-0398) | unknown | zstd-safe 7.2.4 (crates.io) | 7.4.0 | \`Seekable::decompress\` sets a \`Vec\` length beyond its capacity for offsets past the end |
| [RUSTSEC-2026-0399](https://osv.dev/vulnerability/RUSTSEC-2026-0399) | unknown | zstd-safe 7.2.4 (crates.io) | 7.4.0 | Use-after-free through \`init\_using\_cdict\` and \`init\_using\_ddict\` |
| [RUSTSEC-2026-0400](https://osv.dev/vulnerability/RUSTSEC-2026-0400) | unknown | zstd-safe 7.2.4 (crates.io) | 7.4.0 | Use-after-free of a dictionary after a one-shot call on a context with an open stream |
| [RUSTSEC-2026-0401](https://osv.dev/vulnerability/RUSTSEC-2026-0401) | unknown | zstd-safe 7.2.4 (crates.io) | 7.4.0 | Out-of-bounds read in \`train\_from\_buffer\` when sample sizes overflow |
| [RUSTSEC-2026-0402](https://osv.dev/vulnerability/RUSTSEC-2026-0402) | unknown | zstd-safe 7.2.4 (crates.io) | 7.4.0 | Heap buffer overflow in \`CCtx::try\_clone\` on a multithreaded context |
| [RUSTSEC-2026-0403](https://osv.dev/vulnerability/RUSTSEC-2026-0403) | unknown | zstd-safe 7.2.4 (crates.io) | 7.4.0 | Uninitialized memory exposed when streaming decompression of a legacy frame fails |
| [RUSTSEC-2026-0404](https://osv.dev/vulnerability/RUSTSEC-2026-0404) | unknown | zstd-safe 7.2.4 (crates.io) | 7.4.0 | Double free in \`DCtx::try\_clone\` |
| [RUSTSEC-2026-0405](https://osv.dev/vulnerability/RUSTSEC-2026-0405) | unknown | zstd-safe 7.2.4 (crates.io) | 7.4.0 | Out-of-bounds read with an out-of-range \`InBuffer::pos\` |
| [RUSTSEC-2026-0406](https://osv.dev/vulnerability/RUSTSEC-2026-0406) | unknown | zstd-safe 7.2.4 (crates.io) | 7.4.0 | Use-after-free when changing a multithreaded context with an unfinished frame |
| [RUSTSEC-2026-0410](https://osv.dev/vulnerability/RUSTSEC-2026-0410) | unknown | zstd-sys 2.0.16+zstd.1.5.7 (crates.io) | 2.1.2 | WebAssembly allocator shim corrupts memory on allocation failure |

## Fetch it over TEA

This SBOM is served over the [Transparency Exchange API](https://github.com/CycloneDX/transparency-exchange-api) (TEA). With the `libtea` client:

```
pip install libtea
python -m libtea https://pypi.sbomify.com pkg:pypi/whitebox-workflows@2.0.6
```

Machine-readable copy of this page: https://pypi.sbomify.com/package/whitebox-workflows/2.0.6.json

---
From pypi-tea by sbomify: https://pypi.sbomify.com/package/whitebox-workflows/2.0.6