Vulnerability in Apache Kudu
CVE-2021-21295
Netty is an open-source, asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. In Netty (io.netty:netty-codec-http2) before version 4.1.60.Final there is a vulnerability that enables request smuggling. If a Content-Length header is present in the original HTTP/2 request, the field is not validated by `Http2MultiplexHandler` as it is propagated up. This is fine as long as the request is not proxied through as HTTP/1.1. If the request comes in as an HTTP/2 stream, gets converted into the HTTP/1.1 domain objects (`HttpRequest`, `HttpContent`, etc.) via `Http2StreamFrameToHttpObjectCodec `and then sent up to the child channel's pipeline and proxied through a remote peer as HTTP/1.1 this may result in request smuggling. In a proxy case, users may assume the content-length is validated somehow, which is not the case. If the request is forwarded to a backend channel that is a HTTP/1.1 connection, the Content-Length now has meaning and needs to be checked. An attacker can smuggle requests inside the body as it gets downgraded from HTTP/2 to HTTP/1.1. For an example attack refer to the linked GitHub Advisory. Users are only affected if all of this is true: `HTTP2MultiplexCodec` or `Http2FrameCodec` is used, `Http2StreamFrameToHttpObjectCodec` is used to convert to HTTP/1.1 objects, and these HTTP/1.1 objects are forwarded to another remote peer. This has been patched in 4.1.60.Final As a workaround, the user can do the validation by themselves by implementing a custom `ChannelInboundHandler` that is put in the `ChannelPipeline` behind `Http2StreamFrameToHttpObjectCodec`.
Vulnerability class: HTTP Request Smuggling
Published · last modified .
CVSS v3 metric
CVSS v3 base score 5.9 (Medium). Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N.
EPSS exploit prediction
EPSS: 0.189 (97.3th percentile), scored .
Moderate probability of exploitation in the next 30 days — watch for active exploitation reports. 97th percentile — 97.3% of CVEs in the catalogue have a lower EPSS than this one. How to read EPSS.
EPSS over last 30 days · oldest: 0.189 · newest: 0.189 · change: 0.000
Affected products
- Apache Kudu
- Apache Zookeeper — versions 3.5.9
- NetApp Oncommand API Services
- NetApp Oncommand Workflow Automation
- Netty Io.netty:netty-Codec-Http2 — versions < 4.1.60.Final
- Netty
- Oracle Communications Cloud Native Core Policy — versions 1.14.0
- Quarkus
- Debian Linux — versions 10.0
Weakness classification (CWE)
Public proof-of-concept exploits
References
- github.com/netty/netty/security/advisories/GHSA-wm47-8v5p-wjpj (Third Party Advisory)
- github.com/Netflix/zuul/pull/980 (Patch, Third Party Advisory)
- github.com/netty/netty/commit/89c241e3b1795ff257af4ad6eadc616cb2fb3dc4 (Patch, Vendor Advisory)
- lists.apache.org/thread.html/r02e467123d45006a1dda20a38349e9c74c3a4b53e2e07be09… (mailing-list)
- lists.apache.org/thread.html/r7bb3cdc192e9a6f863d3ea05422f09fa1ae2b88d4663e6369… (mailing-list)
- lists.apache.org/thread.html/rcd163e421273e8dca1c71ea298dce3dd11b41d51c3a812e03… (mailing-list)
- lists.apache.org/thread.html/r9924ef9357537722b28d04c98a189750b80694a19754e5057… (mailing-list)
- lists.apache.org/thread.html/rb51d6202ff1a773f96eaa694b7da4ad3f44922c40b3d4e1a1… (mailing-list)
- lists.apache.org/thread.html/r790c2926efcd062067eb18fde2486527596d7275381cfaff2… (mailing-list)
- lists.apache.org/thread.html/r1908a34b9cc7120e5c19968a116ddbcffea5e9deb76c2be4f… (mailing-list)
Frequently asked questions
- What is CVE-2021-21295?
- CVE-2021-21295 is a medium-severity vulnerability in Apache Kudu, classified under Inconsistent Interpretation of HTTP Requests (HTTP Request/Response Smuggling). CVSS score: 5.9/10. Published 2021-03-09.
- How severe is CVE-2021-21295?
- Medium severity. CVSS v3 base score is 5.9 out of 10.
- Is CVE-2021-21295 known to be exploited?
- 5 public proof-of-concept repositories are indexed. Not currently listed in the CISA KEV catalog.