|
| 1 | +--- |
| 2 | +title: 'How Linkerd responded to CVE-2023-44487, the HTTP/2 DDOS vulnerability, six months ago' |
| 3 | +author: 'william' |
| 4 | +date: 2023-10-11T00:00:00+00:00 |
| 5 | +thumbnail: /images/djim-loic-ft0-Xu4nTvA-unsplash.jpg |
| 6 | +draft: false |
| 7 | +featured: false |
| 8 | +slug: linkerd-cve-2023-44487 |
| 9 | +tags: [Linkerd] |
| 10 | +--- |
| 11 | + |
| 12 | + |
| 13 | + |
| 14 | +Yesterday, [CVE-2023-44487](https://nvd.nist.gov/vuln/detail/CVE-2023-44487), a |
| 15 | +DDOS vulnerability in many HTTP/2 implementations, was disclosed. This was a |
| 16 | +very interesting attack and there have been several great writeups on how it |
| 17 | +works—see Cloudflare's [HTTP/2 Rapid Reset: deconstructing the record-breaking |
| 18 | +attack](https://blog.cloudflare.com/technical-breakdown-http2-rapid-reset-ddos-attack/) |
| 19 | +and Google's [How it works: The novel HTTP/2 ‘Rapid Reset’ DDoS |
| 20 | +attack](https://cloud.google.com/blog/products/identity-security/how-it-works-the-novel-http2-rapid-reset-ddos-attack) |
| 21 | +for many details of how this attack works and the consequences. |
| 22 | + |
| 23 | +We're happy to report that due to Linkerd's internal security policies and the |
| 24 | +security-awareness and rapid response of the Rust community, all recent versions |
| 25 | +of Linkerd are resilient to this class of DDOS attack. (In fact, Linkerd can |
| 26 | +actually help users who have vulnerable ingress proxies—simple mesh them with |
| 27 | +Linkerd and have it handle HTTP/2 traffic.) |
| 28 | + |
| 29 | +Versions of Linkerd that are resilient to CVE-2023-44487 include: |
| 30 | + |
| 31 | +* All versions of Linkerd 2.14.x |
| 32 | +* Linkerd 2.13.1 and all later minor versions of Linkerd 2.13 |
| 33 | +* Linkerd 2.12.5 and all later minor versions of Linkerd 2.12 |
| 34 | + |
| 35 | +Astute Linkerd adopters will realize that these versions are all as of April |
| 36 | +2023, six months ago. This is thanks to our rigorous vulnerability mitigation |
| 37 | +procedures, and to the security-mindedness and fast response of the Rust |
| 38 | +community. |
| 39 | + |
| 40 | +Let's see just how this feat happened. |
| 41 | + |
| 42 | +## Linkerd is a security-first project |
| 43 | + |
| 44 | +It's no understatement to say that Linkerd treats security as a critical |
| 45 | +requirement. Organizations around the world rely on Linkerd for everything from |
| 46 | +protecting sensitive customer medical and financial data, to scheduling COVID |
| 47 | +tests, to building 911 call centers. For some people, Linkerd is quite literally |
| 48 | +a life-or-death project. |
| 49 | + |
| 50 | +Part of that approach is the choice of technologies like Rust, of course, which |
| 51 | +allow us to avoid an entire class of buffer overflow exploits and other |
| 52 | +vulnerabilities that are endemic to languages like C and C++. |
| 53 | + |
| 54 | +But another, just as important part is simply how seriously the project takes |
| 55 | +potential security vulnerabilities. Tracing the path to resolution for |
| 56 | +CVE-2023-44487 is a great example of that. Here's how it happened: |
| 57 | + |
| 58 | +This issue was first tracked as a vulnerability in the Rust community as |
| 59 | +[RUSTSEC-2023-0034](https://rustsec.org/advisories/RUSTSEC-2023-0034.html) on |
| 60 | +April 14, 2023. At that point it had actually already been fixed in h2, the |
| 61 | +underlying library that Linkerd uses to parse HTTP/2 requests, as a change that |
| 62 | +had gone out [on April 12th, two days |
| 63 | +earlier](https://github.com/hyperium/h2/pull/668). |
| 64 | + |
| 65 | +The fix was published in [h2 |
| 66 | +v0.3.17](https://rustsec.org/advisories/RUSTSEC-2023-0034.html). Linkerd |
| 67 | +automatically pulled in that dependency [on April |
| 68 | +13th](https://github.com/linkerd/linkerd2-proxy/commit/67306bc7ba19286352762362e4e1876ce5924442) |
| 69 | +via [GitHub's Dependabot](https://github.com/dependabot), the automated |
| 70 | +dependency tool that Linkerd uses to ensure it stays up-to-date with critical |
| 71 | +dependencies, where it was published as [proxy release |
| 72 | +v2.198.1](https://github.com/linkerd/linkerd2-proxy/releases/tag/release%2Fv2.198.1). |
| 73 | + |
| 74 | +On April 13th, the proxy version [was pulled into the main Linkerd |
| 75 | +repo](https://github.com/linkerd/linkerd2/commit/19a404fd196e251e969ac6c4a552a3c7af698dc5). |
| 76 | +On April 14th, we pushed it to [Linkerd |
| 77 | +2.13.1](https://github.com/linkerd/linkerd2/releases/tag/stable-2.13.1)—two days |
| 78 | +after the underlying fix in h2, and the same day it was recognized as an |
| 79 | +vulnerability in the Rust ecosystem. The fix also went out on |
| 80 | +[edge-23.4.2](https://github.com/linkerd/linkerd2/releases/tag/edge-23.4.2) on |
| 81 | +April 21st, and from there it was in all future and stable releases. |
| 82 | + |
| 83 | +In short: two days after the fix was made in the underlying Rust HTTP/2 library, |
| 84 | +it was already in the hands of Linkerd users as a stable release, and all |
| 85 | +Linkerd releases since April have been protected against this vulnerability. |
| 86 | +While this vulnerability is making the news this week, Linkerd adopters have |
| 87 | +been protected for almost 6 months. |
| 88 | + |
| 89 | +## Linkerd is for everyone |
| 90 | + |
| 91 | +Linkerd is a graduated project of the [Cloud Native Computing |
| 92 | +Foundation](https://cncf.io/). Linkerd is [committed to open |
| 93 | +governance.](/2019/10/03/linkerds-commitment-to-open-governance/) If you have |
| 94 | +feature requests, questions, or comments, we'd love to have you join our |
| 95 | +rapidly-growing community! Linkerd is hosted on |
| 96 | +[GitHub](https://github.com/linkerd/), and we have a thriving community on |
| 97 | +[Slack](https://slack.linkerd.io/), [Twitter](https://twitter.com/linkerd), and |
| 98 | +the [mailing lists](/community/get-involved/). Come and join the fun! |
| 99 | + |
| 100 | +(Photo by [Djim |
| 101 | +Loic](https://unsplash.com/@loic?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash) |
| 102 | +on |
| 103 | +[Unsplash](https://unsplash.com/photos/ft0-Xu4nTvA?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash). |
| 104 | + |
0 commit comments