Highlights
- Prevents a server-side panic when legacy Shadowsocks AEAD UDP responses approach Xray's 8 KiB buffer limit.
- Publishes the fix as Xray-core v26.8.14 without configuration or wire-format changes.
Fork fixes
- Fixed
panic: extending out of boundinshadowsocks.EncodeUDPPacket. The encoder now reserves space for the salt, destination header, and AEAD tag, preserves the full UDP payload, reports write failures, and releases buffers on error paths. - Added a regression test that round-trips an 8192-byte UDP payload with
aes-128-gcm. - Restored repository Go formatting compliance in existing H2MUX test and TLS source files.
Upstream changes
- No additional upstream commits since v26.8.13.
- Based on
upstream/mainatbc6e966aand retains all fork changes from v26.8.13.
Compatibility notes
- No configuration migration is required.
- Existing Shadowsocks
aes-128-gcmTCP/UDP inbounds continue to use the same configuration and wire format.
Validation
- Passed targeted unit tests for Shadowsocks, core, H2MUX, and TLS.
- Passed Shadowsocks race, checkptr, and vet checks, including the new 8192-byte UDP regression.
- Passed the repository Go formatting check and a static Linux amd64 build (
CGO_ENABLED=0). - The external DoH test against
1.1.1.1returned EOF in this environment and was accepted as a known external DNS limitation for this release. - Two Commander scenario tests hit a transient port-reservation collision in the parallel suite; both passed when rerun in isolation.