CVE-2015-3636 Use after free in n/a
Local attackers can exploit a use-after-free in the Linux kernel ping implementation to escalate privileges or crash the system.
- Exploited in the wild
- Not known
- Login needed
- Any signed-in user
- Attackable
- Local or same network only
- Victim action needed
- Not needed
- Fix
- Available
What is CVE-2015-3636?
CVE-2015-3636 is a medium-severity use after free vulnerability in Canonical Ubuntu Linux, published on 6 Aug 2015. It can only be exploited from the same machine or local network, with no action from the victim.
Official description
The ping_unhash function in net/ipv4/ping.c in the Linux kernel before 4.0.3 does not initialize a certain list data structure during an unhash operation, which allows local users to gain privileges or cause a denial of service (use-after-free and system crash) by leveraging the ability to make a SOCK_DGRAM socket system call for the IPPROTO_ICMP or IPPROTO_ICMPV6 protocol, and then making a connect system call after a disconnect.
Which versions are affected by CVE-2015-3636?
It affects 4 products.
Linux distribution packages (40)
kernel Red Hat:rhel_aus:6.4::server | All versions | 0:2.6.32-358.65.1.el6 |
kernel-debug Red Hat:rhel_aus:6.4::server | All versions | 0:2.6.32-358.65.1.el6 |
kernel-debug-debuginfo Red Hat:rhel_aus:6.4::server | All versions | 0:2.6.32-358.65.1.el6 |
kernel-debug-devel Red Hat:rhel_aus:6.4::server | All versions | 0:2.6.32-358.65.1.el6 |
kernel-debuginfo Red Hat:rhel_aus:6.4::server | All versions | 0:2.6.32-358.65.1.el6 |
kernel-debuginfo-common-x86_64 Red Hat:rhel_aus:6.4::server | All versions | 0:2.6.32-358.65.1.el6 |
kernel-devel Red Hat:rhel_aus:6.4::server | All versions | 0:2.6.32-358.65.1.el6 |
kernel-doc Red Hat:rhel_aus:6.4::server | All versions | 0:2.6.32-358.65.1.el6 |
kernel-firmware Red Hat:rhel_aus:6.4::server | All versions | 0:2.6.32-358.65.1.el6 |
kernel-headers Red Hat:rhel_aus:6.4::server | All versions | 0:2.6.32-358.65.1.el6 |
perf Red Hat:rhel_aus:6.4::server | All versions | 0:2.6.32-358.65.1.el6 |
perf-debuginfo Red Hat:rhel_aus:6.4::server | All versions | 0:2.6.32-358.65.1.el6 |
python-perf Red Hat:rhel_aus:6.4::server | All versions | 0:2.6.32-358.65.1.el6 |
python-perf-debuginfo Red Hat:rhel_aus:6.4::server | All versions | 0:2.6.32-358.65.1.el6 |
kernel Red Hat:rhel_eus:6.5::computenode | All versions | 0:2.6.32-431.61.2.el6 |
kernel-abi-whitelists Red Hat:rhel_eus:6.5::computenode | All versions | 0:2.6.32-431.61.2.el6 |
kernel-debug Red Hat:rhel_eus:6.5::computenode | All versions | 0:2.6.32-431.61.2.el6 |
kernel-debug-debuginfo Red Hat:rhel_eus:6.5::computenode | All versions | 0:2.6.32-431.61.2.el6 |
kernel-debug-devel Red Hat:rhel_eus:6.5::computenode | All versions | 0:2.6.32-431.61.2.el6 |
kernel-debuginfo Red Hat:rhel_eus:6.5::computenode | All versions | 0:2.6.32-431.61.2.el6 |
kernel-debuginfo-common-x86_64 Red Hat:rhel_eus:6.5::computenode | All versions | 0:2.6.32-431.61.2.el6 |
kernel-devel Red Hat:rhel_eus:6.5::computenode | All versions | 0:2.6.32-431.61.2.el6 |
kernel-doc Red Hat:rhel_eus:6.5::computenode | All versions | 0:2.6.32-431.61.2.el6 |
kernel-firmware Red Hat:rhel_eus:6.5::computenode | All versions | 0:2.6.32-431.61.2.el6 |
kernel-headers Red Hat:rhel_eus:6.5::computenode | All versions | 0:2.6.32-431.61.2.el6 |
perf Red Hat:rhel_eus:6.5::computenode | All versions | 0:2.6.32-431.61.2.el6 |
perf-debuginfo Red Hat:rhel_eus:6.5::computenode | All versions | 0:2.6.32-431.61.2.el6 |
python-perf Red Hat:rhel_eus:6.5::computenode | All versions | 0:2.6.32-431.61.2.el6 |
python-perf-debuginfo Red Hat:rhel_eus:6.5::computenode | All versions | 0:2.6.32-431.61.2.el6 |
kernel Red Hat:rhel_eus:6.5::server | All versions | 0:2.6.32-431.61.2.el6 |
kernel-abi-whitelists Red Hat:rhel_eus:6.5::server | All versions | 0:2.6.32-431.61.2.el6 |
kernel-bootwrapper Red Hat:rhel_eus:6.5::server | All versions | 0:2.6.32-431.61.2.el6 |
kernel-debug Red Hat:rhel_eus:6.5::server | All versions | 0:2.6.32-431.61.2.el6 |
kernel-debug-debuginfo Red Hat:rhel_eus:6.5::server | All versions | 0:2.6.32-431.61.2.el6 |
kernel-debug-devel Red Hat:rhel_eus:6.5::server | All versions | 0:2.6.32-431.61.2.el6 |
kernel-debuginfo Red Hat:rhel_eus:6.5::server | All versions | 0:2.6.32-431.61.2.el6 |
kernel-debuginfo-common-i686 Red Hat:rhel_eus:6.5::server | All versions | 0:2.6.32-431.61.2.el6 |
kernel-debuginfo-common-ppc64 Red Hat:rhel_eus:6.5::server | All versions | 0:2.6.32-431.61.2.el6 |
kernel-debuginfo-common-s390x Red Hat:rhel_eus:6.5::server | All versions | 0:2.6.32-431.61.2.el6 |
kernel-debuginfo-common-x86_64 Red Hat:rhel_eus:6.5::server | All versions | 0:2.6.32-431.61.2.el6 |
Products include Canonical Ubuntu Linux, Debian Debian Linux, Linux kernel, Redhat Enterprise Linux.
How do I fix CVE-2015-3636?
Apply the vendor's patch.
Upgrade to the fixed version. These bugs are found with fuzzing and sanitisers and avoided by memory-safe languages. More about Use after free.
Is CVE-2015-3636 being exploited?
There is no known exploitation of CVE-2015-3636 in the wild and no public exploit code.
Public exploit code: 7 proofs of concept on GitHub.
Other vulnerabilities in Canonical Ubuntu Linux
Sources
Also known as DEBIAN-CVE-2015-3636, GHSA-67pv-68g5-4j93, RHSA-2015:1583, RHSA-2015:1643, UBUNTU-CVE-2015-3636.