Dstack-TEE / Dstack-TEE/private-ai-gateway
Downstream consumers inherit 4 RUSTSEC advisories: bump dcap-qvl 0.3→0.5 and feature-gate the prometheus/metrics stack
- Dominant language
- Rust
- Stars
- 32
- Forks
- 8
- Avg merge
- 11h 9m
- Merged PRs (30d)
- 36
Description
## Summary
We consume `private-ai-gateway` as a **library** (the `aci::e2ee` and `aci::verifier` modules) in a small client-side E2EE proxy, pinned at `11e1cda`. `cargo audit` on our lockfile reports **4 RUSTSEC advisories, all transitive through this crate's dependency tree** — and all still present at current HEAD, so every downstream consumer inherits them:
| Advisory | Package | Pulled in via | Severity / impact |
|---|---|---|---|
| [RUSTSEC-2026-0119](https://rustsec.org/advisories/RUSTSEC-2026-0119) | hickory-proto 0.25.2 | `dcap-qvl 0.3.12` enables reqwest's `hickory-dns` feature | DoS (O(n²) encoding); fixed in 0.26.1, but reqwest 0.12 pins 0.25 |
| [RUSTSEC-2026-0118](https://rustsec.org/advisories/RUSTSEC-2026-0118) | hickory-proto 0.25.2 | same | DoS (unbounded loop); no fix yet |
| [RUSTSEC-2024-0437](https://rustsec.org/advisories/RUSTSEC-2024-0437) | protobuf 2.28.0 | `prometheus 0.13` | DoS (uncontrolled recursion); fixed only in protobuf 3.x |
| [RUSTSEC-2023-0071](https://rustsec.org/advisories/RUSTSEC-2023-0071) | rsa 0.9 | `dcap-qvl-webpki` | Marvin timing side-channel; no fix upstream |
None of these touch the crypto core (rustls / AES-GCM / k256 / HKDF are clean) — but they are un-fixable from a downstream `Cargo.toml`, since they sit behind semver walls inside this crate's tree.
## Suggested changes
1. **Bump `dcap-qvl` 0.3.12 → 0.5.x** (0.5.2 is current). This is the root of both the hickory chain (via its reqwest `hickory-dns` feature) and the `rsa` chain (via `dcap-qvl-webpki`) — worth checking whether 0.5.x already drops or updates either.
2. **Feature-gate the metrics stack** (`prometheus`, and with it `protobuf 2.x`). Metrics are only meaningful when running the gateway as a server; library consumers of `aci::*` compile the whole thing today. A `metrics` feature (default **on** to keep server behavior unchanged, opt-out for library use) would let library consumers drop `protobuf 2.28` entirely.
## Environment
- `private-ai-gateway` @ `11e1cda` (also reproduced against current HEAD Cargo.toml: `prometheus = "0.13"`, `dcap-qvl = "0.3.12"`)
- Verified with `cargo audit` 0.22.2 / advisory-db 2026-07-06
Happy to open a PR for (2) if you agree with the direction. Thanks for the great work on the attested-inference stack — we verify against your gateway daily.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with Cargo.toml and run cargo audit against current HEAD; inspect the dcap-qvl 0.5.x upgrade and the existing prometheus dependency and feature configuration. Done means the upgrade is compatible, the metrics stack can be disabled for aci::* library consumers while remaining enabled by default for the server, and the reported advisories are reduced as described.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- prometheus, rust
- Domain
- build-system, security
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100