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

Open
#77 0 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.