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
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
router.rs Remove built-in DNS server and owndns features 2026-06-10 22:52:35 +03:00
signal.rs
tui.rs