| Gói / sản phẩm | Phiên bản bị ảnh hưởng | Phiên bản đã vá |
|---|---|---|
| github.com/envoyproxy/gateway | ≥ 1.8.0-rc.0, < 1.8.1< 1.7.4 | 1.8.11.7.4 |
The to_absolute_normalized_path function (security.lua:28-43) does not collapse redundant path separators (// → /). On Linux, //etc/passwd is equivalent to /etc/passwd (POSIX path semantics), but is_critical_path fails to match the double-slash variant because //etc/passwd does not start with /etc/.
This allows Lua code submitted as an EnvoyExtensionPolicy to read arbitrary files from the gateway controller pod's filesystem during Strict validation (the default), including:
/etc/passwd//var/run/secrets/kubernetes.io/serviceaccount/token//certs/...//proc/self/environThese credentials can be used to read sensitive information from the K8s API Server or from the Gateway XDS server.
This has been patched in versions >= v1.7.4 and v1.8.1
// to /) so double-slash variants like //etc/passwd and //var/run/secrets/... are matched by the critical-path check.. or .. segment in any position and across both separator styles (catches /etc/./passwd, ./etc/passwd, /etc/.).Please refer to the Warning section in Lua docs for measures to reduce risk.
Envoy Gateway thanks @dashingDragon and @Donjon-Cerberus for reporting this issue.
Bạn đang dùng một trong các sản phẩm này? Quét site để biết có đang lộ phiên bản có lỗ hổng không.
Quét site miễn phí