Description
Skipper is an HTTP router and reverse proxy for service composition. Prior to version 0.27.37, the opaAuthorizeRequestWithBody filter can authorize an oversized request after Skipper truncates the body presented to Open Policy Agent because the input.truncated_body signal is derived from Content-Length rather than the actual read result. In filters/openpolicyagent/openpolicyagent.go, ExtractHttpBodyOptionally truncates bodies at maxBodyBytes, while filters/openpolicyagent/internal/envoy/skipperadapter.go copies the request headers without adding a Content-Length value that reflects the truncation. For an HTTP/1.1 request using Transfer-Encoding: chunked or an HTTP/2 request without Content-Length, a body-inspecting policy that follows the prior mitigation and permits input.truncated_body equal to false can evaluate only the truncated prefix, allow the request, and then forward the full oversized body to the protected upstream. This residual issue is distinct from CVE-2026-50197. This issue is fixed in version 0.27.37.
Published: 2026-09-16
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: Authorization bypass via oversized request forwarding
Action: Immediate Patch
AI Analysis

Impact

Skipper, a service composition router and reverse proxy, uses an opaAuthorizeRequestWithBody filter to enforce body size limits through Open Policy Agent. A truncation of the request body occurs during processing, but the signal indicating truncation (input.truncated_body) is derived from the reported Content‑Length header rather than the actual body length that Skipper reads. For HTTP/1.1 requests that employ Transfer‑Encoding: chunked or HTTP/2 requests that omit a Content‑Length header, the upstream policy can see only the truncated prefix. If its rule permits input.truncated_body equal to false, the policy approves the request and Skipper then forwards the entire oversized body to the protected upstream service. This allows an attacker to bypass body‑size restrictions, potentially overwhelming downstream services or delivering a payload that exceeds intended limits.

Affected Systems

The affected product is Zalando Skipper. Versions prior to 0.27.37, including release 0.27.35, contain the vulnerability. The issue is fixed in Skipper 0.27.37 and later.

Risk and Exploitability

The CVSS score is 7.5, indicating a high severity. The EPSS score of less than 1% shows a low current likelihood of exploitation, and the vulnerability is not yet listed in the CISA KEV catalog. The attack vector is network‑based; an attacker who can send crafted HTTP/1.1 chunked or HTTP/2 requests to the Skipper instance can exploit the flaw. Because the vulnerability hinges on policy logic and header handling, it does not require privileged access, making it broadly exploitable under the right circumstances.

Generated by OpenCVE AI on September 18, 2026 at 02:23 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade Skipper to version 0.27.37 or newer, which contains the fix for the body‑truncation handling.
  • Modify upstream Open Policy Agent policies to reject any request where input.truncated_body is true, so that oversized bodies are not forwarded.
  • Configure Skipper to reject or block HTTP/1.1 requests using Transfer‑Encoding: chunked or HTTP/2 requests without a Content-Length header, or enforce a hard body‑size limit at the network perimeter.

Generated by OpenCVE AI on September 18, 2026 at 02:23 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-5gpm-rgj3-9q76 Skipper has OPA body-authz bypass: truncated_body mitigation fails open on chunked/HTTP-2 (incomplete fix GHSA-8qqm-fp2q-v734)
History

Fri, 18 Sep 2026 03:30:00 +0000

Type Values Removed Values Added
First Time appeared Zalando
Zalando skipper
Vendors & Products Zalando
Zalando skipper

Wed, 16 Sep 2026 20:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 16 Sep 2026 19:00:00 +0000

Type Values Removed Values Added
Description Skipper is an HTTP router and reverse proxy for service composition. Prior to version 0.27.37, the opaAuthorizeRequestWithBody filter can authorize an oversized request after Skipper truncates the body presented to Open Policy Agent because the input.truncated_body signal is derived from Content-Length rather than the actual read result. In filters/openpolicyagent/openpolicyagent.go, ExtractHttpBodyOptionally truncates bodies at maxBodyBytes, while filters/openpolicyagent/internal/envoy/skipperadapter.go copies the request headers without adding a Content-Length value that reflects the truncation. For an HTTP/1.1 request using Transfer-Encoding: chunked or an HTTP/2 request without Content-Length, a body-inspecting policy that follows the prior mitigation and permits input.truncated_body equal to false can evaluate only the truncated prefix, allow the request, and then forward the full oversized body to the protected upstream. This residual issue is distinct from CVE-2026-50197. This issue is fixed in version 0.27.37.
Title Skipper: OPA body-authz bypass: truncated_body mitigation fails open on chunked/HTTP-2 (incomplete fix CVE-2026-50197)
Weaknesses CWE-863
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-16T19:38:17.894Z

Reserved: 2026-09-04T19:29:21.058Z

Link: CVE-2026-86043

cve-icon Vulnrichment

Updated: 2026-09-16T19:38:14.211Z

cve-icon NVD

Status : Deferred

Published: 2026-09-16T19:17:51.993

Modified: 2026-09-16T20:17:36.343

Link: CVE-2026-86043

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-18T03:15:01Z

Weaknesses