From UDP Probe to Working Tunnel: Analyzing Hysteria2 Behavior via QUIC, HTTP/3 and Client Events

A detailed technical study examined how commercial Hysteria2 VPN endpoints respond to different levels of network probing, starting from simple UDP packets and progressing to full QUIC handshakes and authenticated client connections. The research used custom NetProbe tools on Windows and Linux to test real subscription endpoints, capturing both external probe results and decrypted traffic from an instrumented Hysteria2 client. Simple UDP probes received no response and timed out, while properly formed QUIC Initial packets with TLS ClientHello and ALPN h3 successfully completed handshakes using TLS 1.3 and TLS_AES_256_GCM_SHA384. An unauthenticated HTTP/3 GET request triggered immediate connection closure with H3_NO_ERROR (code 0x100), whereas a legitimate client sending POST /auth with Hysteria-Auth headers received the expected 233 status confirming authentication and UDP forwarding support. Subsequent data transfer tests, including parallel requests and file downloads, were observed inside separate QUIC streams after authentication, confirming that the tunnel carried real traffic. The study highlights differences between external probing and authenticated client behavior, providing practical insight into how Hysteria2 servers handle reconnaissance versus legitimate VPN usage.

HabrTranslated from Russian

Read at source

A detailed technical study examined how commercial Hysteria2 VPN endpoints respond to different levels of network probing, starting from simple UDP packets and progressing to full QUIC handshakes and authenticated client connections.

The research used custom NetProbe tools on Windows and Linux to test real subscription endpoints, capturing both external probe results and decrypted traffic from an instrumented Hysteria2 client. Simple UDP probes received no response and timed out with status TIMEOUT_UNKNOWN, while properly formed QUIC Initial packets with TLS ClientHello and ALPN h3 successfully completed handshakes using TLS 1.3 and TLS_AES_256_GCM_SHA384.

An unauthenticated HTTP/3 GET request triggered immediate connection closure with H3_NO_ERROR (code 0x100), whereas a legitimate client sending POST /auth with Hysteria-Auth headers received the expected 233 status confirming authentication and UDP forwarding support.

Subsequent data transfer tests, including parallel requests and file downloads verified by SHA-256, were observed inside separate QUIC streams after authentication, confirming that the tunnel carried real traffic. The experiments also recorded internal client events alongside PCAPNG captures, allowing correlation of QUIC frames with Hysteria2-specific authentication and proxy operations.

The study highlights differences between external probing and authenticated client behavior, providing practical insight into how Hysteria2 servers handle reconnaissance versus legitimate VPN usage under real internet conditions.

Meridian digestThe week's most consequential security stories, distilled into one briefing.See the digest

More in Vulnerabilities & Exploits

Black October Vulnerabilities: Node.js, Nginx, and Server-Side Exploits Analyzed
AI-Driven Discovery of PHP2Shell Zero-Day Forces Rethink of DevSecOps Practices
Critical Pre-Auth RCE Vulnerability CVE-2026-118633 Affects All Versions of Sophos UTM