Impact
An attacker who can inject Lua scripts into Skipper’s routing configuration can execute arbitrary code on the machine running the proxy. The vulnerability stems from the default configuration that allows inline Lua sources. Because the Lua runtime is granted the same filesystem permissions as the Skipper process, a crafted script can read any file the process can access, including Skipper’s own secrets. This alone results in disclosure of sensitive information, and the same capability can be used to write or delete files, execute binaries or alter network behaviour. The weakness is represented by CWE‑250 (Privilege‑Increases), CWE‑94 (Code Injection), and CWE‑522 (Insufficient Protection of Secrets).
Affected Systems
Zalando Skipper, all releases prior to 0.23.0 that expose the -lua‑sources=inline option, such as deployments using the default configuration. The issue becomes exploitable when untrusted users can add Lua filters — for example through a Kubernetes Ingress that forwards arbitrary routing rules to the Skipper service.
Risk and Exploitability
The score of 8.8 on the CVSS metric labels this a high‑severity flaw. The EPSS value of less than 1 % indicates a very low exploitation probability at present, and the vulnerability is not yet present in the CISA KEV catalog. Nonetheless, the fault allows local file read and potential arbitrary code execution if an attacker can supply Lua scripts. Since the attack requires creating or modifying a routing rule that contains Lua code, the vector is inferred to be either local or compromise of the configuration channel (e.g., a mis‑configured Ingress).
OpenCVE Enrichment
Github GHSA