Was DDEV Affected by the xz Backdoor?
DDEV was not affected by the XZ backdoor
Some of you have been asking whether DDEV was affected by the XZ backdoor that has the internet buzzing, CVE-2024-3094.
When news of this originally hit I quickly investigated and found no reason to think that we’re affected in any way by the XZ backdoor. Here’s why:
- The XZ Backdoor only found its way into distributions like Arch Linux and Debian Testing (and Homebrew) that have rolling releases, meaning that they take every upstream release as it comes in. DDEV images use only stable upstream distributions, including Debian 11 Bullseye, Debian 12 Bookworm, and Ubuntu 20.04, which don’t receive “hot” releases like that.
- DDEV bundles
xz
only inddev-dbserver
. We can see thatddev-dbserver
has an unaffected version of xz. In any version of DDEV we can useddev exec -s db xz --version
to see the installed version. In various versions of the ddev-dbserver I am only able to see version 5.2.5 and 5.2.4, but check it for yourself:$ ddev exec -s db xz --version xz (XZ Utils) 5.2.5 liblzma 5.2.5
- All distributed DDEV images were built before the threat landed and were not rebuilt while the backdoor existed.
- In its Golang code, DDEV uses ulikunitz/xz, which is quite stable and unrelated to the release in question. DDEV includes ulikunitz/xz 0.5.11, the most recent stable version, from December 2022.
How can I find out if I have an affected xz
version?
In general, the affected versions of xz
were 5.6.0 and 5.6.1.
xz --version
will tell you about your host machine, and ddev exec -s db xz --version
will tell you about xz
in the DDEV database container.
What is xz
anyway and how does DDEV use xz
?
xz
is a powerful compression tool, like gzip
but with more effective compression.
DDEV uses xz
so that it can read or create xz
-compressed database dumps, and so it can read xz
-compressed files tarballs. The significant and long-term DDEV sponsor B13 sponsored this feature in 2022 🙏🏼.
How can I fix my host computer if I have an affected xz
version?
Unless you use Homebrew, you probably don’t have the affected version on your host computer, and there is probably no imminent threat for Homebrew users affected. However, brew upgrade
will downgrade xz
to 5.4.6. Arch Linux and derived distrbutions need to upgrade to get 5.6.1-2, which is built from source.
What does this mean for small open-source projects like DDEV?
For me, the story here isn’t about the vulnerability that didn’t actually make it into the real world, but about the open-source story behind it. A small project with an overworked maintainer and insufficient community support got a new maintainer who spent two years gaining trust and then essentially took over the project and released code that had been carefully placed over that whole time. We all know that we depend on hundreds of these projects.
DDEV is one of those tiny projects that you depend on! You know that we’ve been working on building our maintainer team and training contributors. We absolutely need to continue building DDEV’s financial stability and train contributors and maintainers. Please:
- Join us in financially supporting the project. You or your company can support us directly (we invoice for support, accept funds many ways) or you can support via GitHub Sponsors.
- Join us as we restart the Contributor Training in coming months. We need lots of competent eyes on the project.
- Take security seriously! Pay attention. Although DDEV may seem to be too small for an attacker to take time with, it probably isn’t. Imagine the consequences if someone were able to plant something that affected your project code or your computer in general. It might be worth it to attack DDEV. It’s possible to imagine a targeted multilevel attack that used DDEV to compromise a particular site that just one team was working on.
Resources
- Ars Technica summary has links to many important summaries.
- Changelog news links
- Timeline and links
- Arch Linux information.
Thanks to all of you for working toward realizing our goal of a sustainable project! For more information about how you can support the project, the various ways are explained in sponsors page. See more about our long-term financial goals at Expanding the DDEV maintainer team - how we’ll fund it.