security(relay): TLS-front registration is unauthenticated — any obf_psk holder hijacks a peer's relay route #101

Open
opened 2026-07-25 21:53:57 +00:00 by vxfemboy · 0 comments
vxfemboy commented 2026-07-25 21:53:57 +00:00 (Migrated from github.com)

#37 hardened the UDP rendezvous path (signed RegisterSigned verified against roots in mesh mode) but the TLS Trojan front never got that treatment. classify_first_frame (bin/yip-rendezvous/src/conn.rs:53) accepts a bare unsigned Register gated only on knowledge of the network-wide obf_psk + a monotonic counter (register_if_fresh_tls, no signature/cert check), then run_tunnel (conn_tunnel.rs:101) does last-writer-wins routes.insert(node, tx). Any member opens a TLS conn, sends Register{node: VICTIM, counter: high}, and claims the victim's NodeId — all relayed frames for the victim over the TLS front go to the attacker (blackhole + traffic-analysis vantage; payloads stay Noise-encrypted). Fix: plumb the signed RegisterSigned path into the TLS classifier and key routes on verified identity, not insert order. Compounds with #64/#65 (weak/unthrottled discriminator).

See docs/2026-07-25-project-review-and-roadmap.md for the full review synthesis.

#37 hardened the UDP rendezvous path (signed `RegisterSigned` verified against roots in mesh mode) but the TLS Trojan front never got that treatment. `classify_first_frame` (bin/yip-rendezvous/src/conn.rs:53) accepts a bare unsigned `Register` gated only on knowledge of the network-wide `obf_psk` + a monotonic counter (`register_if_fresh_tls`, no signature/cert check), then `run_tunnel` (conn_tunnel.rs:101) does last-writer-wins `routes.insert(node, tx)`. Any member opens a TLS conn, sends `Register{node: VICTIM, counter: high}`, and claims the victim's NodeId — all relayed frames for the victim over the TLS front go to the attacker (blackhole + traffic-analysis vantage; payloads stay Noise-encrypted). Fix: plumb the signed `RegisterSigned` path into the TLS classifier and key `routes` on verified identity, not insert order. Compounds with #64/#65 (weak/unthrottled discriminator). See docs/2026-07-25-project-review-and-roadmap.md for the full review synthesis.
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
femboy/yip#101
No description provided.