3x-ui/web
Sanaei ea53da9341
Add SSRF protection (#4044)
* Add SSRF protection for custom geo downloads

Introduce SSRF-safe HTTP transport for custom geo operations by adding ssrfSafeTransport and isBlockedIP helpers. The transport resolves hosts and blocks loopback, private, link-local and unspecified addresses, returning ErrCustomGeoSSRFBlocked on violations. Update probeCustomGeoURLWithGET, probeCustomGeoURL and downloadToPathOnce to use the safe transport. Also add the new error ErrCustomGeoSSRFBlocked and necessary imports. Minor whitespace/formatting adjustments in subClashService.go, web/entity/entity.go and web/service/setting.go.

* Add path traversal protection for custom geo

Prevent path traversal when handling custom geo downloads by adding ErrCustomGeoPathTraversal and a validateDestPath() helper that ensures destination paths stay inside the bin folder. Call validateDestPath from downloadToPathOnce, Update and Delete paths and wrap errors appropriately. Reconstruct sanitized URLs in sanitizeURL to break taint propagation before use. Map the new path-traversal error to a user-facing i18n message in the controller.

* fix
2026-04-20 00:18:20 +02:00
..
assets feat add clash yaml convert (#3916) 2026-04-19 22:26:13 +02:00
controller Add SSRF protection (#4044) 2026-04-20 00:18:20 +02:00
entity Add SSRF protection (#4044) 2026-04-20 00:18:20 +02:00
global Refactor code and fix linter warnings (#3627) 2026-01-05 05:54:56 +01:00
html feat add clash yaml convert (#3916) 2026-04-19 22:26:13 +02:00
job revert: Disconnect client due to exceeded IP limit (#3948) 2026-04-19 21:52:40 +02:00
locale update dependencies 2026-03-04 13:05:29 +01:00
middleware docs: add comments for all functions 2025-09-20 09:35:50 +02:00
network docs: add comments for all functions 2025-09-20 09:35:50 +02:00
service Add SSRF protection (#4044) 2026-04-20 00:18:20 +02:00
session docs: add comments for all functions 2025-09-20 09:35:50 +02:00
translation Add new hourly reset traffic (#3966) 2026-04-19 21:37:34 +02:00
websocket fix: enhance WebSocket stability, resolve XHTTP configurations and fix UI loading shifts (#3997) 2026-04-19 21:01:00 +02:00
web.go Fix geosite:ru rule (Normalization to RU vs lowercase ru) (#3971) 2026-04-19 21:44:51 +02:00