Skip to content
OpenAdvisories
High · 7.5 CVE-2026-86043 EUVD-2026-81002GHSA-5gpm-rgj3-9q76GO-2026-6495

Skipper: OPA body-authz bypass: truncated_body mitigation fails open on chunked/HTTP-2 (incomplete fix CVE-2026-50197)

Published Sep 16, 2026 · Updated Sep 16, 2026 · Assigned by GitHub_M

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.

Affected products

VendorProductAffectedFixed
zalando skipper < 0.27.37 —

Affected packages

EcosystemPackageAffectedFixedRecord
Go github.com/zalando/skipper < 0.27.37 0.27.37 GHSA-5gpm-rgj3-9q76

References