Security: Cascade TCP mode has no TLS — plaintext credentials on network #77

Open
opened 2026-05-11 13:48:50 +00:00 by thabeta · 0 comments
Owner

Severity: High

Location

crates/hero_aibroker_server/src/main.rs — TCP accept loop; crates/hero_aibroker_lib/src/providers/ai_broker_mother.rs

Finding

When --address and --port are provided, the broker exposes a combined REST+RPC listener over plain TCP with no TLS option. Cascade mother brokers connect via plaintext HTTP:

let base_url = format!("http://{}:{}/v1", cfg.address, cfg.port);

Attack Scenario

  • API keys, request content, and billing data transmitted in cleartext
  • Network sniffing captures all traffic between cascade brokers
  • MITM attacks can inject/modify requests

Recommendation

  • Add TLS support via rustls or native-tls
  • At minimum: support mutual TLS for broker-to-broker communication
  • Document that TCP mode requires network-level encryption (VPN, WireGuard)
## Severity: High ## Location `crates/hero_aibroker_server/src/main.rs` — TCP accept loop; `crates/hero_aibroker_lib/src/providers/ai_broker_mother.rs` ## Finding When `--address` and `--port` are provided, the broker exposes a combined REST+RPC listener over plain TCP with no TLS option. Cascade mother brokers connect via plaintext HTTP: ```rust let base_url = format!("http://{}:{}/v1", cfg.address, cfg.port); ``` ## Attack Scenario - API keys, request content, and billing data transmitted in cleartext - Network sniffing captures all traffic between cascade brokers - MITM attacks can inject/modify requests ## Recommendation - Add TLS support via `rustls` or `native-tls` - At minimum: support mutual TLS for broker-to-broker communication - Document that TCP mode requires network-level encryption (VPN, WireGuard)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/hero_aibroker#77
No description provided.