What's Changed
- 90b1066 feat: add ping keepalive support for OpenVPN (#2859) by @puppywang
- fd2112e feat: add built-in proxy PASS-RULE (#2873) by @echsfxy
- 1e62d55 feat: add
empty-fallbackto group options allows for customization instead of hardcodingCOMPATIBLEby @wwqgtxx - 317bfc2 feat: add
allow-insecureconfig to anytls/trojan/vless listeners for nginx/caddy front users by @wwqgtxx - 358fa5e feat: add
age-secret-keyfor proxy-provider and-age-secret-keyfor cmdline to support age armor format config decryption by @wwqgtxx - bd72c65 feat: remove
global-client-fingerprint, please setclient-fingerprintdirectly on the proxy instead by @wwqgtxx - e928ef5 feat: add
path-in-bundleto rule-providers to support extract from BundleMRS.7z when the local file does not exist by @wwqgtxx
BUG & Fix
- 1184850 fix: quic sniffer out-of-bounds read causes process crash via single UDP packet by @guanni Qu
- 1abd126 fix: validation error handling for age-secret-key by @wwqgtxx
- 5184081 fix: socks4 readUntilNull unbounded memory allocation by @guanni Qu
- 5bdb1cc fix: trojan protocol WaitReadFrom panic via oversized UDP relay length field by @guanni Qu
- 9761bcd fix: exchangeQUIC not fully respecting context by @wwqgtxx
- c710025 fix: readMsg in doq out-of-bounds access by @wwqgtxx
- dafdd06 fix: variable capture in dns outbound by @wwqgtxx
- dbaf85b fix: vision TLS filter out-of-bounds read via crafted session_id length by @guanni Qu
Maintenance
- 01edf45 chore: improve internal api by @wwqgtxx
- 316f5df chore: add WithDialer option to component/http for api user by @wwqgtxx
- ab56858 chore: sync sudoku v0.4.7 optimizations (#2879) by @saba-futai
- b60e687 chore: support convert age-secret-key to age-public-key for build-in age tool by @wwqgtxx
- d7ac7b5 chore: support std input/output for age encrypt/decrypt tool by @wwqgtxx
- f99d4e1 chore: adjust internal age component api by @wwqgtxx
Full Changelog: v1.19.26...v1.19.27