On October 19, 2016, a privilege escalation vulnerability in the Linux kernel was disclosed. The bug is nicknamed Dirty COW because the underlying issue was a race condition in the way kernel handles copy-on-write (COW). Dirty COW has existed for a long time — at least since 2007, with kernel version 2.6.22 — so the vast majority of servers are at risk.
Exploiting this bug means that a regular, unprivileged user on your server can gain write access to any file they can read, and can therefore increase their privileges on the system. More information can be found on CVE-2016-5195 from Canonical, Red Hat, and Debian.
Fortunately, most major distributions have already released a fix. All of the base images on DigitalOcean have been updated to include the patched kernel versions, so future Droplets you create will not need to be updated. However, if you're running an older server, you can follow this tutorial make sure you're protected.
To find out if your server is affected, check your kernel version.
You'll see output like this:
- uname -rv
Output4.4.0-42-generic #62-Ubuntu SMP Fri Oct 7 23:11:45 UTC 2016
If your version is earlier than the following, you are affected:
- 4.8.0-26.28 for Ubuntu 16.10
- 4.4.0-45.66 for Ubuntu 16.04 LTS
- 3.13.0-100.147 for Ubuntu 14.04 LTS
- 3.2.0-113.155 for Ubuntu 12.04 LTS
- 3.16.36-1+deb8u2 for Debian 8
- 3.2.82-1 for Debian 7
- 4.7.8-1 for Debian unstable
CentOSSome versions of CentOS can use this script provided by RedHat for RHEL to test your server's vulnerability. To try it, first download the script.
Then run it with
- wget https://access.redhat.com/sites/default/files/rh-cve-2016-5195_1.sh
If you're vulnerable, you'll see output like this:
- bash rh-cve-2016-5195_1.sh
Your kernel is 3.10.0-327.36.1.el7.x86_64 which IS vulnerable.
Red Hat recommends that you update your kernel. Alternatively, you can apply partial
mitigation described at https://access.redhat.com/security/vulnerabilities/2706661 .
Fix VulnerabilityFortunately, applying the fix is straightforward: update your system and reboot your server.
Ubuntu/DebianUpdate and upgrade your packages using
- sudo apt-get update && sudo apt-get dist-upgrade
Finally, you'll need to reboot your server to apply the changes.
- sudo reboot
CentOSAt this time, we're still waiting for Red Hat to release a patch. This tutorial will be updated with instructions on how to secure your CentOS server as soon as possible. In the interim, you can use this workaround from the Red Hat bug tracker.
Make sure to update your Linux servers to stay protected from this privilege escalation bug.