Skip to content

v4.23.4

Compare
Choose a tag to compare
@nicholascw nicholascw released this 03 Jun 10:08
· 490 commits to master since this release
6b5d2fe

Fix

  • Issued further fixs for VMess weakness described in #2523 #2539
  • Issued a fix for Fake HTTP Header weakness described in #2537

Breaking Changes

  • For VMess connections, clients cannot rely on servers to indicate issues in connectivity or password mismatch by closing connection. Well behaved clients are not influenced.
  • For VMess servers, it is not recommended to change UUID frequently as VMess will procedurally generate its connection drain and close pattern based on UUID it has when the first connection arrives. This is very unlikely to influence users that are using V2Ray as a standalone software. However, for those dynamically add and remove UUID, it is recommended to connect to V2Ray's port immediately after starting it before adding more UUIDs with API and make sure there is at least one UUID in the configure file even if you plan to add more later.
  • For users using Fake HTTP Header, it is necessary to keep clients and servers synchronized on fake HTTP header settings, and assign a path with sufficient entropy. From now on, if the request path is not expected, the server will abort the connection.
  • Server will by default wait 60 seconds for the handshakes to complete before closing the connection instead of 4 seconds. This may increase server load if the server is under a DDoS attack. This allows the server to blend into normal TCP servers better and its benefit is significantly higher than potential downsides. This behavior is tweakable with the configure file.

Security Advisory

  • From now on, the VMess protocol will drain any unrecognized or invalid connection based on procedurally generate connection drain and close patterns. It can neutralize all known "replay and observe close" attacks. The base drain size and drain size jitter will be generated based on UUID a VMess inbound have when the first connection arrives. For each server, these values will be different and remain constant for that server. The attacker will not be able to aggregate results in order to identify server identity. If you have multiple VMess inbounds on the same host, the protection offered by procedurally generated connection drain and close patterns will be slightly encumbered.
  • Fake HTTP Header will from now on imitate standard HTTP server behavior better and is able to significantly hindrance active probing. However, it is only designed to circumvent ISP's QoS, rate limiting, throttling, and sabotage of unrecognized connection. For an attacker with privileged access to network path, Fake HTTP Header does not offer adequate protection against specialized detection or manual inspections by attackers with special tools and knowledge.

A Request for Users and Client Authors

Please refer to https://github.com/v2fly/v2ray-core/releases for further updates instead of the V2Ray release page. Currently, update in V2Fly will be mirrored to the V2Ray release page but this will NOT continue indefinitely.