# SBOM for qslib 0.15.3

> Library for communicating with and using the QuantStudio qPCR machine, intended for non-qPCR uses.

The Python package qslib 0.15.3 ships 9 SBOM files (CycloneDX) inside its wheels, under `.dist-info/sboms/` ([PEP 770](https://peps.python.org/pep-0770/)).

- Package URL (PURL): `pkg:pypi/qslib@0.15.3`
- PyPI: https://pypi.org/project/qslib/0.15.3/
- License: EUPL-1.2
- Requires Python: \>=3.10
- Homepage: <https://docs.costi.net/qslib/>
- changelog: <https://github.com/cgevans/qslib/blob/main/CHANGELOG.md>
- documentation: <https://docs.costi.net/qslib/>
- download: <https://pypi.org/project/qslib/#files>
- source: <https://github.com/cgevans/qslib>
- tracker: <https://github.com/cgevans/qslib/issues>

## SBOMs

### qslib-0.15.3-cp310-abi3-macosx\_11\_0\_arm64.whl

- [qslib-0.15.3.dist-info/sboms/qslib.cyclonedx.json](https://pypi.sbomify.com/artifact/7ac34763-1a4c-5c52-ae34-12a400241c73/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 38 known vulnerabilities

### qslib-0.15.3-cp310-abi3-manylinux\_2\_28\_x86\_64.whl

- [qslib-0.15.3.dist-info/sboms/qslib.cyclonedx.json](https://pypi.sbomify.com/artifact/90aba8a3-0d75-5a0a-ba58-d3741552d2d0/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 38 known vulnerabilities

### qslib-0.15.3-cp310-abi3-win\_amd64.whl

- [qslib-0.15.3.dist-info/sboms/qslib.cyclonedx.json](https://pypi.sbomify.com/artifact/d5269ab7-705c-5552-bf35-f522a8a08410/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 38 known vulnerabilities

### qslib-0.15.3-cp313-cp313t-macosx\_11\_0\_arm64.whl

- [qslib-0.15.3.dist-info/sboms/qslib.cyclonedx.json](https://pypi.sbomify.com/artifact/29e1edd2-c2e0-5a36-9c4f-47209359c143/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 38 known vulnerabilities

### qslib-0.15.3-cp313-cp313t-manylinux\_2\_28\_x86\_64.whl

- [qslib-0.15.3.dist-info/sboms/qslib.cyclonedx.json](https://pypi.sbomify.com/artifact/050d1240-d8fc-5c4a-ae33-0abf60d4a01c/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 38 known vulnerabilities

### qslib-0.15.3-cp313-cp313t-win\_amd64.whl

- [qslib-0.15.3.dist-info/sboms/qslib.cyclonedx.json](https://pypi.sbomify.com/artifact/5c8e1cec-0167-56e5-8afe-aec7c5437479/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 38 known vulnerabilities

### qslib-0.15.3-cp314-cp314t-macosx\_11\_0\_arm64.whl

- [qslib-0.15.3.dist-info/sboms/qslib.cyclonedx.json](https://pypi.sbomify.com/artifact/fd5f34b3-54d1-5b25-b1c9-e0e419f32c83/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 38 known vulnerabilities

### qslib-0.15.3-cp314-cp314t-manylinux\_2\_28\_x86\_64.whl

- [qslib-0.15.3.dist-info/sboms/qslib.cyclonedx.json](https://pypi.sbomify.com/artifact/18904102-44ee-5f48-852b-362ebd9196bb/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 38 known vulnerabilities

### qslib-0.15.3-cp314-cp314t-win\_amd64.whl

- [qslib-0.15.3.dist-info/sboms/qslib.cyclonedx.json](https://pypi.sbomify.com/artifact/16fc11b1-60c0-5222-af20-8167d0bf40c4/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 38 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 2.4.2 (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 2.4.2 (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.26.0 (crates.io) | 0.29.0 | Out-of-bounds read in \`nth\` / \`nth\_back\` for \`PyList\` and \`PyTuple\` iterators |
| [RUSTSEC-2026-0194](https://osv.dev/vulnerability/RUSTSEC-2026-0194) | high (7.5) | quick-xml 0.38.4 (crates.io) | 0.41.0 | Quadratic run time when checking a start tag for duplicate attribute names |
| [RUSTSEC-2026-0195](https://osv.dev/vulnerability/RUSTSEC-2026-0195) | high (7.5) | quick-xml 0.38.4 (crates.io) | 0.41.0 | Unbounded namespace-declaration allocation in \`NsReader\` enables memory-exhaustion denial of service |
| [RUSTSEC-2026-0340](https://osv.dev/vulnerability/RUSTSEC-2026-0340) | high (7.5) | quinn-proto 0.11.16 (crates.io) | 0.11.18 | Peer minimum ACK delay can panic quinn-proto when ACK\_FREQUENCY transmission is enabled |
| [RUSTSEC-2026-0341](https://osv.dev/vulnerability/RUSTSEC-2026-0341) | high (7.5) | quinn-proto 0.11.16 (crates.io) | 0.11.17 | Stream reassembly memory-exhaustion guard in quinn-proto can be bypassed |
| [CVE-2026-115909](https://insights.sbomify.com/CVE-2026-115909/) | high (7.5) | zip 2.4.2 (crates.io) | 9.0.0 | zip: \`ZipArchive::extract\` aborts the process on a symlink entry with a large declared size |
| [RUSTSEC-2026-0367](https://osv.dev/vulnerability/RUSTSEC-2026-0367) | high (7.3) | zip 2.4.2 (crates.io) | 9.0.0 | Insecure Preservation of SUID/SGID Bits during ZIP Extraction Leading to Potential Privilege Escalation |
| [CVE-2026-115906](https://insights.sbomify.com/CVE-2026-115906/) | medium (6.5) | zip 2.4.2 (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.26.0 (crates.io) | 0.29.0 | Missing \`Sync\` bound on \`PyCFunction::new\_closure\` closures |
| [CVE-2026-123613](https://insights.sbomify.com/CVE-2026-123613/) | medium (5.3) | rustls 0.23.43 (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.43 (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.43 (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.43 (crates.io) | 0.23.46 | Unauthenticated ServerHello can downgrade later connections to classical key exchange |
| [RUSTSEC-2025-0141](https://osv.dev/vulnerability/RUSTSEC-2025-0141) | unknown | bincode 2.0.1 (crates.io) | none listed | Bincode is unmaintained |
| [RUSTSEC-2026-0258](https://osv.dev/vulnerability/RUSTSEC-2026-0258) | unknown | h2 0.4.15 (crates.io) | 0.4.16 | h2 unbounded empty DATA frames |
| [RUSTSEC-2026-0338](https://osv.dev/vulnerability/RUSTSEC-2026-0338) | unknown | quinn-proto 0.11.16 (crates.io) | 0.11.18 | Remote peer can panic quinn-proto with zero-length STREAM frames during unordered reads |
| [RUSTSEC-2026-0339](https://osv.dev/vulnerability/RUSTSEC-2026-0339) | unknown | quinn-proto 0.11.16 (crates.io) | 0.11.17 | Unbounded growth of pending connection ID retirements in quinn-proto |
| [RUSTSEC-2026-0342](https://osv.dev/vulnerability/RUSTSEC-2026-0342) | unknown | quinn-proto 0.11.16 (crates.io) | 0.11.17 | Zero-length DATAGRAM frames bypass the receive buffer limit in quinn-proto |
| [RUSTSEC-2025-0134](https://osv.dev/vulnerability/RUSTSEC-2025-0134) | unknown | rustls-pemfile 2.2.0 (crates.io) | none listed | rustls-pemfile is unmaintained |
| [CVE-2026-111943](https://insights.sbomify.com/CVE-2026-111943/) | unknown | rustls-webpki 0.103.13 (crates.io) | 0.103.16 | Certificate verification may accept distrusted intermediates |
| [RUSTSEC-2026-0386](https://osv.dev/vulnerability/RUSTSEC-2026-0386) | unknown | tokio 1.53.1 (crates.io) | 1.53.3 | \`AsyncFd::new\` and related constructors violate I/O safety |
| [RUSTSEC-2026-0368](https://osv.dev/vulnerability/RUSTSEC-2026-0368) | unknown | zip 2.4.2 (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/qslib@0.15.3
```

Machine-readable copy of this page: https://pypi.sbomify.com/package/qslib/0.15.3.json

---
From pypi-tea by sbomify: https://pypi.sbomify.com/package/qslib/0.15.3