High severity · published Jan 16, 2026
CVE-2026-23742
Skipper arbitrary code execution through lua filters
8.8
CVSS
0.5%
EPSS
No
On KEV
Description
Skipper is an HTTP router and reverse proxy for service composition. The default skipper configuration before 0.23.0 was -lua-sources=inline,file. The problem starts if untrusted users can create lua filters, because of -lua-sources=inline , for example through a Kubernetes Ingress resource. The configuration inline allows these user to create a script that is able to read the filesystem accessible to the skipper process and if the user has access to read the logs, they an read skipper secrets. This vulnerability is fixed in 0.23.0.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Attack vector
Network
Complexity
Low
Privileges
Low
User interaction
None
Confidentiality
High
Integrity
High
Availability
High
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.5% · higher than 44% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
SK
skipper · zalando
< 0.23.0 · source: vendor, NVD
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-23742
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-23742
Patch
https://github.com/zalando/skipper/commit/0b52894570773b29e2f3c571b94b4211ef8fa714
Product
https://github.com/zalando/skipper/releases/tag/v0.23.0
Exploit
https://github.com/zalando/skipper/security/advisories/GHSA-cc8m-98fm-rc9g
More from skipper
9.8
CVE-2022-38580
Zalando Skipper v0.13.236 is vulnerable to Server-Side Request Forgery (SSRF)
8.2
CVE-2026-65838
Skipper: an oversized declared-`Content-Length` body still hands OPA an empty `parsed_body`, so deny-on-presence Rego policies fail OPEN while the full payload reaches upstream
8.2
CVE-2026-65604
Skipper Incomplete Fix for CVE-2026-50197 Policy Bypass
8.1
CVE-2026-24470
Skipper Ingress Controller Allows Unauthorized Access to Internal Services via ExternalName
7.8
CVE-2026-50197
Skipper: opaAuthorizeRequestWithBody filter bypasses OPA policy on Transfer-Encoding: chunked / HTTP/2 requests
