# SBOM for keeper-pam-webrtc-rs 2.1.7

> Keeper PAM WebRTC for Python - A secure, stable, and high-performance Tube API for Python, providing WebRTC-based secure tunneling with enterprise-grade security and reliability optimizations.

The Python package keeper-pam-webrtc-rs 2.1.7 ships 7 SBOM files (CycloneDX) inside its wheels, under `.dist-info/sboms/` ([PEP 770](https://peps.python.org/pep-0770/)).

- Package URL (PURL): `pkg:pypi/keeper-pam-webrtc-rs@2.1.7`
- PyPI: https://pypi.org/project/keeper-pam-webrtc-rs/2.1.7/
- License: MIT
- Requires Python: \>=3.7

## SBOMs

### keeper\_pam\_webrtc\_rs-2.1.7-cp37-abi3-macosx\_10\_12\_x86\_64.whl

- [keeper\_pam\_webrtc\_rs-2.1.7.dist-info/sboms/keeper-pam-webrtc-rs-py.cyclonedx.json](https://pypi.sbomify.com/artifact/630d1a64-e988-5db6-b7ba-9f134ddb718f/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 82 known vulnerabilities

### keeper\_pam\_webrtc\_rs-2.1.7-cp37-abi3-macosx\_11\_0\_arm64.whl

- [keeper\_pam\_webrtc\_rs-2.1.7.dist-info/sboms/keeper-pam-webrtc-rs-py.cyclonedx.json](https://pypi.sbomify.com/artifact/975c5e4c-c1ee-5955-b5ab-a4ea375f7cad/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 82 known vulnerabilities

### keeper\_pam\_webrtc\_rs-2.1.7-cp37-abi3-manylinux\_2\_28\_aarch64.whl

- [keeper\_pam\_webrtc\_rs-2.1.7.dist-info/sboms/keeper-pam-webrtc-rs-py.cyclonedx.json](https://pypi.sbomify.com/artifact/a94f3a5e-34c8-5da7-8fff-60f9ac259e36/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 84 known vulnerabilities

### keeper\_pam\_webrtc\_rs-2.1.7-cp37-abi3-manylinux\_2\_28\_x86\_64.whl

- [keeper\_pam\_webrtc\_rs-2.1.7.dist-info/sboms/keeper-pam-webrtc-rs-py.cyclonedx.json](https://pypi.sbomify.com/artifact/34f3fc76-c1a0-5d52-bb47-11c4797e8c77/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 84 known vulnerabilities

### keeper\_pam\_webrtc\_rs-2.1.7-cp37-abi3-musllinux\_1\_2\_x86\_64.whl

- [keeper\_pam\_webrtc\_rs-2.1.7.dist-info/sboms/auditwheel.cdx.json](https://pypi.sbomify.com/artifact/13cfadf4-459e-5ca8-9ad9-1b7230060531/download): CycloneDX/1.4, `application/vnd.cyclonedx+json`, valid, no known vulnerabilities
- [keeper\_pam\_webrtc\_rs-2.1.7.dist-info/sboms/keeper-pam-webrtc-rs-py.cyclonedx.json](https://pypi.sbomify.com/artifact/80a0bcce-b196-5528-88a2-0c86cec2a0da/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 84 known vulnerabilities

### keeper\_pam\_webrtc\_rs-2.1.7-cp37-abi3-win\_amd64.whl

- [keeper\_pam\_webrtc\_rs-2.1.7.dist-info/sboms/keeper-pam-webrtc-rs-py.cyclonedx.json](https://pypi.sbomify.com/artifact/981634db-bd1d-59f6-aac5-f2173a6e56cb/download): CycloneDX/1.5, `application/vnd.cyclonedx+json`, valid, 83 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-18140](https://insights.sbomify.com/CVE-2026-18140/) | high (8.7) | aws-smithy-json 0.62.5 (crates.io) | 0.62.7 | aws-smithy-json: Uncontrolled recursion in the aws-smithy-json unknown-key skip path allows unauthenticated remote denial of service in smithy-rs generated servers |
| [CVE-2026-123607](https://insights.sbomify.com/CVE-2026-123607/) | high (8.7) | hickory-proto 0.25.2 (crates.io) | 0.26.0-beta.1 | NSEC3 closest-encloser proof validation enters unbounded loop on cross-zone responses |
| [RUSTSEC-2026-0176](https://osv.dev/vulnerability/RUSTSEC-2026-0176) | high (8.7) | pyo3 0.27.2 (crates.io) | 0.29.0 | Out-of-bounds read in \`nth\` / \`nth\_back\` for \`PyList\` and \`PyTuple\` iterators |
| [CVE-2026-116794](https://insights.sbomify.com/CVE-2026-116794/) | high (8.3) | russh 0.46.0 (crates.io) | 0.65 | russh: Agent server never calls \`Agent::confirm\`, so keys added with the confirm constraint (\`ssh-add -c\`) sign without confirmation |
| [CVE-2026-93657](https://insights.sbomify.com/CVE-2026-93657/) | high (7.5) | hickory-resolver 0.25.2 (crates.io) | 0.26.2 | hickory-resolver: Resolver::lookup() and Resolver::lookup\_ip() APIs obscure DNSSEC validation failures |
| [CVE-2026-25800](https://insights.sbomify.com/CVE-2026-25800/) | high (7.5) | quinn-proto 0.11.14 (crates.io) | 0.11.15 | Remote memory exhaustion in quinn-proto from unbounded out-of-order stream reassembly |
| [RUSTSEC-2026-0340](https://osv.dev/vulnerability/RUSTSEC-2026-0340) | high (7.5) | quinn-proto 0.11.14 (crates.io) | 0.11.18 | Peer minimum ACK delay can panic quinn-proto when ACK\_FREQUENCY transmission is enabled |
| [CVE-2026-102823](https://insights.sbomify.com/CVE-2026-102823/) | high (7.5) | russh 0.46.0 (crates.io) | 0.63.1 | russh: Client-side channel-scoped Handler callbacks fire for channel IDs the client never opened |
| [CVE-2026-42189](https://insights.sbomify.com/CVE-2026-42189/) | high (7.5) | russh 0.46.0 (crates.io) | 0.60.1 | russh has pre-auth DoS via unbounded allocation in its keyboard-interactive auth handler |
| [CVE-2026-46673](https://insights.sbomify.com/CVE-2026-46673/) | high (7.5) | russh 0.46.0 (crates.io) | 0.60.3 | Unbounded 32-bit allocation |
| [CVE-2026-46702](https://insights.sbomify.com/CVE-2026-46702/) | high (7.5) | russh 0.46.0 (crates.io) | 0.61.1 | russh: Post-decompression SSH packet size was not bounded, allowing remote oversized compressed packets |
| [CVE-2026-48110](https://insights.sbomify.com/CVE-2026-48110/) | high (7.5) | russh 0.46.0 (crates.io) | 0.61.0 | Russh SSH message fields were decoded through allocation-first parsers before field-specific bounds |
| [CVE-2026-46673](https://insights.sbomify.com/CVE-2026-46673/) | high (7.5) | russh-cryptovec 0.7.3 (crates.io) | 0.60.3 | Unchecked \`CryptoVec\` allocation and growth handling |
| [CVE-2026-93599](https://insights.sbomify.com/CVE-2026-93599/) | high (7.5) | rustls-webpki 0.101.7 (crates.io) | 0.103.13 | Reachable panic in certificate revocation list parsing |
| [CVE-2026-93599](https://insights.sbomify.com/CVE-2026-93599/) | high (7.5) | rustls-webpki 0.103.9 (crates.io) | 0.103.13 | Reachable panic in certificate revocation list parsing |
| [CVE-2026-123608](https://insights.sbomify.com/CVE-2026-123608/) | medium (6.9) | hickory-proto 0.25.2 (crates.io) | 0.26.1 | CPU exhaustion during message encoding due to O(n²) name compression |
| [CVE-2026-123585](https://insights.sbomify.com/CVE-2026-123585/) | medium (6.9) | hickory-resolver 0.25.2 (crates.io) | 0.26.2 | hickory-resolver follows irrelevant CNAME records |
| [CVE-2026-119375](https://insights.sbomify.com/CVE-2026-119375/) | medium (6.8) | libsqlite3-sys 0.30.1 (crates.io) | 0.39.0 | \`libsqlite3-sys\` via C SQLite CVE-2026-119375 |
| [CVE-2025-54804](https://insights.sbomify.com/CVE-2025-54804/) | medium (6.5) | russh 0.46.0 (crates.io) | 0.54.1 | russh is missing overflow checks during channel windows adjust |
| [CVE-2026-102821](https://insights.sbomify.com/CVE-2026-102821/) | medium (6.5) | russh 0.46.0 (crates.io) | 0.63.2 | Russh: Unbounded memory exhaustion via CHANNEL\_OPEN flood during a client-stalled rekey |
| [CVE-2026-48107](https://insights.sbomify.com/CVE-2026-48107/) | medium (6.5) | russh 0.46.0 (crates.io) | 0.61.0 | Russh: Unchecked keyboard-interactive prompt count in client auth path |
| [CVE-2026-68930](https://insights.sbomify.com/CVE-2026-68930/) | medium (6.5) | russh 0.46.0 (crates.io) | 0.62.5 | Russh: Channel-scoped server callbacks can be reached without an open channel |
| [RUSTSEC-2026-0177](https://osv.dev/vulnerability/RUSTSEC-2026-0177) | medium (6.3) | pyo3 0.27.2 (crates.io) | 0.29.0 | Missing \`Sync\` bound on \`PyCFunction::new\_closure\` closures |
| [CVE-2026-102820](https://insights.sbomify.com/CVE-2026-102820/) | medium (6.2) | pageant 0.0.1 (crates.io) | 0.2.3 | pageant: Out-of-bounds read / oversized allocation in \`pageant\` MemoryMap::read via a malicious Pageant agent (Windows) |
| [CVE-2023-49092](https://insights.sbomify.com/CVE-2023-49092/) | medium (5.9) | rsa 0.10.0-rc.9 (crates.io) | 0.10.0 | Marvin Attack: potential key recovery through timing sidechannels |
| [CVE-2023-49092](https://insights.sbomify.com/CVE-2023-49092/) | medium (5.9) | rsa 0.9.10 (crates.io) | 0.10.0 | Marvin Attack: potential key recovery through timing sidechannels |
| [CVE-2026-46705](https://insights.sbomify.com/CVE-2026-46705/) | medium (5.3) | russh 0.46.0 (crates.io) | 0.61.0 | russh server userauth state is not reset when authentication principal changes |
| [CVE-2026-48108](https://insights.sbomify.com/CVE-2026-48108/) | medium (5.3) | russh 0.46.0 (crates.io) | 0.61.0 | Russh: SSH identification parsing accepted non-canonical client banners and did not bound pre-banner input |
| [CVE-2026-73429](https://insights.sbomify.com/CVE-2026-73429/) | medium (5.3) | russh 0.46.0 (crates.io) | 0.62.4 | Russh: client wrong-length X25519 \`clone\_from\_slice\` panic (pre-auth DoS) |
| [CVE-2026-73430](https://insights.sbomify.com/CVE-2026-73430/) | medium (5.3) | russh 0.46.0 (crates.io) | 0.62.4 | Russh: Pre-auth remote panic via all-zero Curve25519 peer public value (encode\_mpint OOB) |
| [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 |
| [GHSA-7gcf-g7xr-8hxj](https://osv.dev/vulnerability/GHSA-7gcf-g7xr-8hxj) | medium (5.1) | serde\_with 3.18.0 (crates.io) | 3.21.0 | serde\_with: KeyValueMap serialization panics on empty sequence or map entries |
| [CVE-2026-93602](https://insights.sbomify.com/CVE-2026-93602/) | medium (4.4) | rustls-webpki 0.103.9 (crates.io) | 0.103.10 | CRLs not considered authoritative by Distribution Point due to faulty matching logic |
| [CVE-2026-102824](https://insights.sbomify.com/CVE-2026-102824/) | medium (4.3) | russh 0.46.0 (crates.io) | 0.63.0 | Russh: Missing X25519 zero-point validation in hybrid ML-KEM key exchange |
| [CVE-2026-111061](https://insights.sbomify.com/CVE-2026-111061/) | medium (4.3) | russh 0.46.0 (crates.io) | 0.64.1 | russh: Unbounded memory allocation in agent protocol server via crafted constraint records |
| [CVE-2026-116773](https://insights.sbomify.com/CVE-2026-116773/) | medium (4.3) | russh 0.46.0 (crates.io) | 0.65 | russh's SSH client is susceptible to unbounded allocations via EXT\_INFO packets |
| [CVE-2026-73489](https://insights.sbomify.com/CVE-2026-73489/) | medium (4.3) | russh 0.46.0 (crates.io) | 0.62.4 | Russh: Post-auth remote panic via pty-req with more than 130 terminal-mode records |
| [CVE-2026-123609](https://insights.sbomify.com/CVE-2026-123609/) | medium (4.0) | rustls 0.21.12 (crates.io) | 0.23.46 | \`Debug\` impls for client session values expose TLS secrets |
| [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-102822](https://insights.sbomify.com/CVE-2026-102822/) | low (3.7) | russh 0.46.0 (crates.io) | 0.63.1 | russh: negotiating a MAC-requiring block cipher (CTR/CBC) with mac=none causes a slice-index-out-of-range panic |
| [CVE-2026-102825](https://insights.sbomify.com/CVE-2026-102825/) | low (3.7) | russh 0.46.0 (crates.io) | 0.62.6 | Russh: Configured server auth-attempt cap is not enforced in the USERAUTH\_REQUEST runtime path |
| [CVE-2026-123610](https://insights.sbomify.com/CVE-2026-123610/) | low (3.7) | rustls 0.21.12 (crates.io) | 0.23.46 | Rustls: Brotli certificate decompression can allocate an attacker-controlled amount of memory up to 1 GiB before authentication. |
| [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.21.12 (crates.io) | 0.23.46 | Unauthenticated ServerHello can downgrade later connections to classical key exchange |
| [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-116696](https://insights.sbomify.com/CVE-2026-116696/) | low (3.3) | russh 0.46.0 (crates.io) | 0.65.0 | russh's SSH agent server is susceptible to unbound allocations via repeated SSH\_AGENT\_CONSTRAIN\_CONFIRM messages |
| [RUSTSEC-2026-0002](https://osv.dev/vulnerability/RUSTSEC-2026-0002) | low (2.7) | lru 0.12.5 (crates.io) | 0.16.3 | \`IterMut\` violates Stacked Borrows by invalidating internal pointer |
| [RUSTSEC-2026-0002](https://osv.dev/vulnerability/RUSTSEC-2026-0002) | low (2.7) | lru 0.14.0 (crates.io) | 0.16.3 | \`IterMut\` violates Stacked Borrows by invalidating internal pointer |
| [CVE-2026-111062](https://insights.sbomify.com/CVE-2026-111062/) | low (2.3) | russh 0.46.0 (crates.io) | 0.64.0 | A russh SSH server accepts a publickey authentication whose signature uses a different algorithm than the one named in the request |
| [CVE-2026-93600](https://insights.sbomify.com/CVE-2026-93600/) | low (2.2) | rustls-webpki 0.101.7 (crates.io) | 0.103.12 | Name constraints for URI names were incorrectly accepted |
| [CVE-2026-93600](https://insights.sbomify.com/CVE-2026-93600/) | low (2.2) | rustls-webpki 0.103.9 (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.101.7 (crates.io) | 0.103.12 | Name constraints were accepted for certificates asserting a wildcard name |
| [CVE-2026-93601](https://insights.sbomify.com/CVE-2026-93601/) | low (2.2) | rustls-webpki 0.103.9 (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()\` |
| [RUSTSEC-2025-0052](https://osv.dev/vulnerability/RUSTSEC-2025-0052) | unknown | async-std 1.13.2 (crates.io) | none listed | async-std has been discontinued |
| [RUSTSEC-2023-0089](https://osv.dev/vulnerability/RUSTSEC-2023-0089) | unknown | atomic-polyfill 1.0.3 (crates.io) | none listed | atomic-polyfill is unmaintained |
| [RUSTSEC-2025-0141](https://osv.dev/vulnerability/RUSTSEC-2025-0141) | unknown | bincode 1.3.3 (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-2026-0387](https://osv.dev/vulnerability/RUSTSEC-2026-0387) | unknown | crypto-bigint 0.4.9 (crates.io) | 0.7.6 | Multiple timing variability issues in operations intended to be constant-time |
| [RUSTSEC-2026-0387](https://osv.dev/vulnerability/RUSTSEC-2026-0387) | unknown | crypto-bigint 0.5.5 (crates.io) | 0.7.6 | Multiple timing variability issues in operations intended to be constant-time |
| [RUSTSEC-2026-0387](https://osv.dev/vulnerability/RUSTSEC-2026-0387) | unknown | crypto-bigint 0.7.0-rc.8 (crates.io) | 0.7.6 | Multiple timing variability issues in operations intended to be constant-time |
| [RUSTSEC-2026-0286](https://osv.dev/vulnerability/RUSTSEC-2026-0286) | unknown | cryptoki 0.10.0 (crates.io) | 0.10.1 | Out-of-bounds read when decoding CKA\_ALLOWED\_MECHANISMS |
| [RUSTSEC-2026-0221](https://osv.dev/vulnerability/RUSTSEC-2026-0221) | unknown | event-listener 5.4.1 (crates.io) | 5.4.2 | \`event-listener\` allows \`!Send\` tags to cross thread boundaries via \`StackSlot\` |
| [RUSTSEC-2026-0258](https://osv.dev/vulnerability/RUSTSEC-2026-0258) | unknown | h2 0.3.27 (crates.io) | 0.4.16 | h2 unbounded empty DATA frames |
| [RUSTSEC-2026-0258](https://osv.dev/vulnerability/RUSTSEC-2026-0258) | unknown | h2 0.4.13 (crates.io) | 0.4.16 | h2 unbounded empty DATA frames |
| [RUSTSEC-2026-0418](https://osv.dev/vulnerability/RUSTSEC-2026-0418) | unknown | libz-sys 1.1.25 (crates.io) | 1.1.31 | libz-sys build script leaks environment variables in the build directory |
| [RUSTSEC-2026-0253](https://osv.dev/vulnerability/RUSTSEC-2026-0253) | unknown | lru 0.12.5 (crates.io) | 0.18.2 | Potential use-after-free due to lack of panic safety in \`LruCache::pop()\` |
| [RUSTSEC-2026-0253](https://osv.dev/vulnerability/RUSTSEC-2026-0253) | unknown | lru 0.14.0 (crates.io) | 0.18.2 | Potential use-after-free due to lack of panic safety in \`LruCache::pop()\` |
| [RUSTSEC-2024-0436](https://osv.dev/vulnerability/RUSTSEC-2024-0436) | unknown | paste 1.0.15 (crates.io) | none listed | paste - no longer maintained |
| [RUSTSEC-2026-0441](https://osv.dev/vulnerability/RUSTSEC-2026-0441) | unknown | pin-utils 0.1.0 (crates.io) | none listed | \`pin-utils\` is unmaintained |
| [RUSTSEC-2026-0173](https://osv.dev/vulnerability/RUSTSEC-2026-0173) | unknown | proc-macro-error2 2.0.1 (crates.io) | none listed | proc-macro-error2 is unmaintained |
| [RUSTSEC-2026-0338](https://osv.dev/vulnerability/RUSTSEC-2026-0338) | unknown | quinn-proto 0.11.14 (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.14 (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.14 (crates.io) | 0.11.17 | Zero-length DATAGRAM frames bypass the receive buffer limit in quinn-proto |
| [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()\` |
| [RUSTSEC-2025-0134](https://osv.dev/vulnerability/RUSTSEC-2025-0134) | unknown | rustls-pemfile 1.0.4 (crates.io) | none listed | rustls-pemfile is unmaintained |
| [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.101.7 (crates.io) | 0.103.16 | Certificate verification may accept distrusted intermediates |
| [CVE-2026-111943](https://insights.sbomify.com/CVE-2026-111943/) | unknown | rustls-webpki 0.103.9 (crates.io) | 0.103.16 | Certificate verification may accept distrusted intermediates |
| [RUSTSEC-2026-0386](https://osv.dev/vulnerability/RUSTSEC-2026-0386) | unknown | tokio 1.50.0 (crates.io) | 1.51.6 | \`AsyncFd::new\` and related constructors violate I/O safety |
| [RUSTSEC-2026-0192](https://osv.dev/vulnerability/RUSTSEC-2026-0192) | unknown | ttf-parser 0.21.1 (crates.io) | none listed | \`ttf-parser\` is unmaintained |
| [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 |

## 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/keeper-pam-webrtc-rs@2.1.7
```

Machine-readable copy of this page: https://pypi.sbomify.com/package/keeper-pam-webrtc-rs/2.1.7.json

---
From pypi-tea by sbomify: https://pypi.sbomify.com/package/keeper-pam-webrtc-rs/2.1.7