CVE-2026-23742: CWE-94: Improper Control of Generation of Code ('Code Injection') in zalando skipper
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.
AI Analysis
Technical Summary
Zalando's Skipper is an HTTP router and reverse proxy widely used for service composition, often deployed in Kubernetes environments. Versions prior to 0.23.0 have a default configuration parameter '-lua-sources=inline,file' that permits Lua scripts to be defined inline or via files. This configuration flaw allows untrusted users who can create or modify Lua filters—commonly through Kubernetes Ingress resources—to inject arbitrary Lua code. Since Lua scripts run with the privileges of the Skipper process, this enables attackers to read the filesystem accessible to Skipper, including sensitive secrets and logs, thus compromising confidentiality and integrity. The vulnerability is classified under CWE-94 (Improper Control of Generation of Code), CWE-250 (Execution with Unnecessary Privileges), and CWE-522 (Insufficiently Protected Credentials). Exploitation requires some level of privilege (PR:L) but no user interaction, and the attack surface includes any environment where untrusted users can influence Lua filter creation. The vulnerability has a CVSS 3.1 score of 8.8, indicating high severity with network attack vector, low attack complexity, and high impact on confidentiality, integrity, and availability. The issue was addressed in Skipper version 0.23.0 by disabling or restricting inline Lua scripting capabilities.
Potential Impact
For European organizations, this vulnerability poses significant risks, particularly for those deploying Skipper in Kubernetes clusters with multi-tenant ingress configurations or where untrusted users can define ingress rules. Successful exploitation can lead to unauthorized disclosure of sensitive data, including secrets and logs, potentially enabling further lateral movement or privilege escalation. The integrity of routing and proxying functions can be compromised, disrupting service availability and trustworthiness. Organizations in sectors with stringent data protection requirements, such as finance, healthcare, and critical infrastructure, face heightened regulatory and operational risks. Additionally, the ability to read secrets may expose credentials for other systems, amplifying the attack impact. Given the widespread adoption of Kubernetes and microservices architectures in Europe, the vulnerability could affect a broad range of enterprises, especially those using Zalando Skipper as part of their ingress or service mesh solutions.
Mitigation Recommendations
The primary mitigation is to upgrade all Skipper deployments to version 0.23.0 or later, where the vulnerability is fixed by disabling or restricting inline Lua scripting. Until upgrades can be performed, organizations should restrict the ability to create or modify Lua filters to fully trusted administrators only, ideally through strict RBAC policies in Kubernetes. Review and audit ingress resource definitions to ensure no untrusted users can inject Lua scripts. Implement network segmentation and monitoring to detect anomalous Skipper process behaviors or unauthorized filesystem access. Employ secrets management best practices to minimize the exposure of sensitive data even if the filesystem is accessed. Additionally, consider disabling Lua scripting entirely if not required. Regularly monitor vulnerability advisories and apply patches promptly. Finally, conduct penetration testing and code reviews focusing on ingress configurations and Lua filter usage to identify potential exploitation paths.
Affected Countries
Germany, France, United Kingdom, Netherlands, Sweden, Finland, Denmark, Belgium
CVE-2026-23742: CWE-94: Improper Control of Generation of Code ('Code Injection') in zalando skipper
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.
AI-Powered Analysis
Technical Analysis
Zalando's Skipper is an HTTP router and reverse proxy widely used for service composition, often deployed in Kubernetes environments. Versions prior to 0.23.0 have a default configuration parameter '-lua-sources=inline,file' that permits Lua scripts to be defined inline or via files. This configuration flaw allows untrusted users who can create or modify Lua filters—commonly through Kubernetes Ingress resources—to inject arbitrary Lua code. Since Lua scripts run with the privileges of the Skipper process, this enables attackers to read the filesystem accessible to Skipper, including sensitive secrets and logs, thus compromising confidentiality and integrity. The vulnerability is classified under CWE-94 (Improper Control of Generation of Code), CWE-250 (Execution with Unnecessary Privileges), and CWE-522 (Insufficiently Protected Credentials). Exploitation requires some level of privilege (PR:L) but no user interaction, and the attack surface includes any environment where untrusted users can influence Lua filter creation. The vulnerability has a CVSS 3.1 score of 8.8, indicating high severity with network attack vector, low attack complexity, and high impact on confidentiality, integrity, and availability. The issue was addressed in Skipper version 0.23.0 by disabling or restricting inline Lua scripting capabilities.
Potential Impact
For European organizations, this vulnerability poses significant risks, particularly for those deploying Skipper in Kubernetes clusters with multi-tenant ingress configurations or where untrusted users can define ingress rules. Successful exploitation can lead to unauthorized disclosure of sensitive data, including secrets and logs, potentially enabling further lateral movement or privilege escalation. The integrity of routing and proxying functions can be compromised, disrupting service availability and trustworthiness. Organizations in sectors with stringent data protection requirements, such as finance, healthcare, and critical infrastructure, face heightened regulatory and operational risks. Additionally, the ability to read secrets may expose credentials for other systems, amplifying the attack impact. Given the widespread adoption of Kubernetes and microservices architectures in Europe, the vulnerability could affect a broad range of enterprises, especially those using Zalando Skipper as part of their ingress or service mesh solutions.
Mitigation Recommendations
The primary mitigation is to upgrade all Skipper deployments to version 0.23.0 or later, where the vulnerability is fixed by disabling or restricting inline Lua scripting. Until upgrades can be performed, organizations should restrict the ability to create or modify Lua filters to fully trusted administrators only, ideally through strict RBAC policies in Kubernetes. Review and audit ingress resource definitions to ensure no untrusted users can inject Lua scripts. Implement network segmentation and monitoring to detect anomalous Skipper process behaviors or unauthorized filesystem access. Employ secrets management best practices to minimize the exposure of sensitive data even if the filesystem is accessed. Additionally, consider disabling Lua scripting entirely if not required. Regularly monitor vulnerability advisories and apply patches promptly. Finally, conduct penetration testing and code reviews focusing on ingress configurations and Lua filter usage to identify potential exploitation paths.
Affected Countries
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-01-15T15:45:01.958Z
- Cvss Version
- 3.1
- State
- PUBLISHED
Threat ID: 696a9dd0b22c7ad868e95251
Added to database: 1/16/2026, 8:21:36 PM
Last enriched: 1/16/2026, 8:36:11 PM
Last updated: 1/16/2026, 9:21:53 PM
Views: 3
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Related Threats
CVE-2026-23800: CWE-266 Incorrect Privilege Assignment in Modular DS
CriticalCVE-2026-23744: CWE-306: Missing Authentication for Critical Function in MCPJam inspector
CriticalCVE-2026-23735: CWE-362: Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition') in graphql-hive graphql-modules
HighCVE-2026-23731: CWE-1021: Improper Restriction of Rendered UI Layers or Frames in LabRedesCefetRJ WeGIA
MediumCVE-2026-23726: CWE-601: URL Redirection to Untrusted Site ('Open Redirect') in LabRedesCefetRJ WeGIA
MediumActions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console in Console -> Billing for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.