<?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, 28 Sep 2026 07:58:24 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-54247</title>
      <link>https://vulnerability.circl.lu/vuln/fkie_cve-2026-54247</link>
      <description>&lt;p&gt;Skipper is an HTTP router and reverse proxy for service composition. Prior to 0.26.22, Handler in dataclients/kubernetes/admission/admission.go passes the body of requests to the Kubernetes admission endpoint at :9443/admission directly to io.ReadAll(r.Body) without a size limit. An attacker with in-cluster network access and a valid Kubernetes client certificate can send a very large body that causes unbounded memory allocation and an out-of-memory termination of the Skipper process. The disruption is limited to Ingress and RouteGroup admission rather than pod creation or unrelated admission controllers, and Kubernetes normally restarts the process. This issue is fixed in version 0.26.22.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Skipper is an HTTP router and reverse proxy for service composition. Prior to 0.26.22, Handler in dataclients/kubernetes/admission/admission.go passes the body of requests to the Kubernetes admission endpoint at :9443/admission directly to io.ReadAll(r.Body) without a size limit. An attacker with in-cluster network access and a valid Kubernetes client certificate can send a very large body that causes unbounded memory allocation and an out-of-memory termination of the Skipper process. The disruption is limited to Ingress and RouteGroup admission rather than pod creation or unrelated admission controllers, and Kubernetes normally restarts the process. This issue is fixed in version 0.26.22.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/fkie_cve-2026-54247</guid>
    </item>
    <item>
      <title>GHSA-cwxq-rc9x-2jvv — Skipper: Unbounded Request Body Read in Admission Webhook Causes Memory Exhaustion DoS</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-cwxq-rc9x-2jvv</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: github.com/zalando/skipper&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;The Kubernetes admission webhook handler reads the entire request body using `io.ReadAll(r.Body)` without any size limit. Any client that can reach the webhook port within the cluster can send a multi-GB payload, causing the skipper process to exhaust memory and be OOM-killed. This disrupts all Kubernetes admission control, potentially blocking all pod creation and updates.&lt;/p&gt;
&lt;p&gt;## Vulnerable Code&lt;/p&gt;
&lt;p&gt;```go
// dataclients/kubernetes/admission/admission.go:76
body, err := io.ReadAll(r.Body)  // &amp;lt;-- NO SIZE LIMIT
if err != nil {
    log.Errorf(&amp;#34;Failed to read request: %v&amp;#34;, err)
    w.WriteHeader(http.StatusInternalServerError)
    invalidRequests.WithLabelValues(admitterName).Inc()
    return
}&lt;/p&gt;
&lt;p&gt;var review admissionReview
err = json.Unmarshal(body, &amp;amp;review)
```&lt;/p&gt;
&lt;p&gt;For comparison, the OPA filter has a body size limit:&lt;/p&gt;
&lt;p&gt;```go
// filters/openpolicyagent/openpolicyagent.go:68-70
const DefaultMaxRequestBodySize = 1 &amp;lt;&amp;lt; 20 // 1MB&lt;/p&gt;
&lt;p&gt;// OPA uses a bufferedBodyReader with size limits
```&lt;/p&gt;
&lt;p&gt;## Attack Path&lt;/p&gt;
&lt;p&gt;1. Attacker identifies the admission webhook endpoint (default: `:9443/admission` or configured path)
2. Attacker sends: `POST /admission HTTP/1.1, Content-Type: application/json` with a multi-GB request body
3. `io.ReadAll(r.Body)` allocates unbounded memory for the entire body
4. Skipper process is OOM-killed by the Kubernetes kubelet&lt;/p&gt;
&lt;p&gt;## Permission Boundary Analysis&lt;/p&gt;
&lt;p&gt;- **Attacker**: Any client with network access to the admission webhook port within the Kubernetes cluster
- **Bound…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: github.com/zalando/skipper&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;The Kubernetes admission webhook handler reads the entire request body using `io.ReadAll(r.Body)` without any size limit. Any client that can reach the webhook port within the cluster can send a multi-GB payload, causing the skipper process to exhaust memory and be OOM-killed. This disrupts all Kubernetes admission control, potentially blocking all pod creation and updates.&lt;/p&gt;
&lt;p&gt;## Vulnerable Code&lt;/p&gt;
&lt;p&gt;```go
// dataclients/kubernetes/admission/admission.go:76
body, err := io.ReadAll(r.Body)  // &amp;lt;-- NO SIZE LIMIT
if err != nil {
    log.Errorf(&amp;#34;Failed to read request: %v&amp;#34;, err)
    w.WriteHeader(http.StatusInternalServerError)
    invalidRequests.WithLabelValues(admitterName).Inc()
    return
}&lt;/p&gt;
&lt;p&gt;var review admissionReview
err = json.Unmarshal(body, &amp;amp;review)
```&lt;/p&gt;
&lt;p&gt;For comparison, the OPA filter has a body size limit:&lt;/p&gt;
&lt;p&gt;```go
// filters/openpolicyagent/openpolicyagent.go:68-70
const DefaultMaxRequestBodySize = 1 &amp;lt;&amp;lt; 20 // 1MB&lt;/p&gt;
&lt;p&gt;// OPA uses a bufferedBodyReader with size limits
```&lt;/p&gt;
&lt;p&gt;## Attack Path&lt;/p&gt;
&lt;p&gt;1. Attacker identifies the admission webhook endpoint (default: `:9443/admission` or configured path)
2. Attacker sends: `POST /admission HTTP/1.1, Content-Type: application/json` with a multi-GB request body
3. `io.ReadAll(r.Body)` allocates unbounded memory for the entire body
4. Skipper process is OOM-killed by the Kubernetes kubelet&lt;/p&gt;
&lt;p&gt;## Permission Boundary Analysis&lt;/p&gt;
&lt;p&gt;- **Attacker**: Any client with network access to the admission webhook port within the Kubernetes cluster
- **Bound…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-cwxq-rc9x-2jvv</guid>
    </item>
  </channel>
</rss>
