ostp/ostp-server/src
ospab 51b947e6ff fix(server): rate-limit the (currently unwired) open UDP DNS listener
DnsServer::run_local_udp_listener binds 0.0.0.0 and answers every UDP
datagram by resolving it and replying to the packet's (unverified,
spoofable) source address - a textbook DNS reflection/amplification
primitive. An attacker spoofing a victim's IP as the query source turns
any server with this listener running into a free amplifier against that
victim, with zero authentication gating it (unlike the main OSTP port,
there's no Noise handshake here).

Nothing in the codebase currently calls this function - the live DNS path
is router.route_dns(), reached only through the authenticated OSTP tunnel
relay (relay.rs). But the doc comment describes this as an intended,
not-yet-wired entry point for clients that point their OS resolver
directly at the server, so it's a real latent risk for whoever connects it
without realizing the implication. Added a global (not per-source-IP -
per-IP limiting doesn't help against a reflection attack, since the
attacker never sees the replies and can spread queries across arbitrary
spoofed sources) token bucket capping total replies/sec, so connecting
this later can't silently reintroduce unbounded amplification.
2026-07-18 17:42:49 +03:00
..
transport fix(server): UoT — set TCP_NODELAY + tear down half-open connections 2026-07-12 01:25:34 +03:00
api.rs fix(server): constant-time comparison for Management API secrets 2026-07-18 17:38:09 +03:00
dispatcher.rs fix(server): throttle relay reads to the client session's congestion window 2026-07-18 15:40:12 +03:00
dns.rs fix(server): rate-limit the (currently unwired) open UDP DNS listener 2026-07-18 17:42:49 +03:00
fallback.rs Remove stealth_port entirely and integrate fallback into UoT HTTP handler 2026-06-10 02:26:13 +03:00
lib.rs fix(server): throttle relay reads to the client session's congestion window 2026-07-18 15:40:12 +03:00
outbound.rs fix(server): outbound connect no longer lets a dead IPv6 candidate eat the whole timeout 2026-07-18 16:40:57 +03:00
relay.rs fix(server): throttle relay reads to the client session's congestion window 2026-07-18 15:40:12 +03:00
relay_node.rs Refactor: Phase 1 and 2 - Async architecture, JNI fixes, SmolTCP data races, and Tunnel optimizations 2026-06-03 02:06:06 +03:00
router.rs Remove built-in DNS server and owndns features 2026-06-10 22:52:35 +03:00
signal.rs Initial public release: Ospab Stealth Transport Protocol v0.1.0 2026-05-14 21:41:54 +03:00
tui.rs Initial public release: Ospab Stealth Transport Protocol v0.1.0 2026-05-14 21:41:54 +03:00