Integer overflow in the fb_mmap function in drivers/video/fbmem.c in the Linux kernel before 3.8.9, as used in a certain Motorola build of Android 4.1.2 and other products, allows local users to create a read-write memory mapping for the entirety of kernel memory, and consequently gain privileges, via crafted /dev/graphics/fb0 mmap2 system calls, as demonstrated by the Motochopper pwn program.
The product performs a calculation that can produce an integer overflow or wraparound, when the logic assumes that the resulting value will always be larger than the original value. This can introduce other weaknesses when the calculation is used for resource management or execution control.
Name | Vendor | Start Version | End Version |
---|---|---|---|
Linux_kernel | Linux | 2.6.12 (including) | 3.0.75 (excluding) |
Linux_kernel | Linux | 3.1 (including) | 3.2.45 (excluding) |
Linux_kernel | Linux | 3.3 (including) | 3.4.42 (excluding) |
Linux_kernel | Linux | 3.5 (including) | 3.8.9 (excluding) |
Android | Motorola | 4.1.2 (including) | 4.1.2 (including) |
Red Hat Enterprise Linux 5 | RedHat | kernel-0:2.6.18-409.el5 | * |
Red Hat Enterprise Linux 6 | RedHat | kernel-0:2.6.32-504.el6 | * |
Red Hat Enterprise Linux 6.2 Advanced Update Support | RedHat | kernel-0:2.6.32-220.60.2.el6 | * |
Red Hat Enterprise Linux 6.4 Advanced Update Support | RedHat | kernel-0:2.6.32-358.59.1.el6 | * |
Red Hat Enterprise Linux 6.5 Extended Update Support | RedHat | kernel-0:2.6.32-431.53.2.el6 | * |
Linux | Ubuntu | trusty | * |
Linux | Ubuntu | upstream | * |
Linux-aws | Ubuntu | trusty | * |
Linux-aws | Ubuntu | upstream | * |
Linux-aws-5.0 | Ubuntu | bionic | * |
Linux-aws-5.0 | Ubuntu | esm-infra/bionic | * |
Linux-aws-5.0 | Ubuntu | upstream | * |
Linux-aws-5.3 | Ubuntu | upstream | * |
Linux-aws-5.4 | Ubuntu | upstream | * |
Linux-aws-hwe | Ubuntu | upstream | * |
Linux-azure | Ubuntu | bionic | * |
Linux-azure | Ubuntu | esm-infra/bionic | * |
Linux-azure | Ubuntu | trusty | * |
Linux-azure | Ubuntu | upstream | * |
Linux-azure-4.15 | Ubuntu | upstream | * |
Linux-azure-5.3 | Ubuntu | upstream | * |
Linux-azure-5.4 | Ubuntu | upstream | * |
Linux-azure-edge | Ubuntu | bionic | * |
Linux-azure-edge | Ubuntu | esm-infra/bionic | * |
Linux-azure-edge | Ubuntu | upstream | * |
Linux-gcp | Ubuntu | bionic | * |
Linux-gcp | Ubuntu | esm-infra/bionic | * |
Linux-gcp | Ubuntu | upstream | * |
Linux-gcp-4.15 | Ubuntu | upstream | * |
Linux-gcp-5.3 | Ubuntu | upstream | * |
Linux-gcp-5.4 | Ubuntu | upstream | * |
Linux-gcp-edge | Ubuntu | bionic | * |
Linux-gcp-edge | Ubuntu | esm-infra/bionic | * |
Linux-gcp-edge | Ubuntu | upstream | * |
Linux-gke-4.15 | Ubuntu | upstream | * |
Linux-gke-5.0 | Ubuntu | upstream | * |
Linux-gke-5.3 | Ubuntu | upstream | * |
Linux-gke-5.4 | Ubuntu | upstream | * |
Linux-gkeop-5.4 | Ubuntu | upstream | * |
Linux-hwe | Ubuntu | upstream | * |
Linux-hwe-5.4 | Ubuntu | upstream | * |
Linux-hwe-5.8 | Ubuntu | upstream | * |
Linux-hwe-edge | Ubuntu | bionic | * |
Linux-hwe-edge | Ubuntu | esm-infra/bionic | * |
Linux-hwe-edge | Ubuntu | esm-infra/xenial | * |
Linux-hwe-edge | Ubuntu | upstream | * |
Linux-hwe-edge | Ubuntu | xenial | * |
Linux-kvm | Ubuntu | upstream | * |
Linux-lts-trusty | Ubuntu | upstream | * |
Linux-lts-xenial | Ubuntu | trusty | * |
Linux-lts-xenial | Ubuntu | upstream | * |
Linux-oem | Ubuntu | upstream | * |
Linux-oem | Ubuntu | xenial | * |
Linux-oem-5.6 | Ubuntu | upstream | * |
Linux-oem-osp1 | Ubuntu | upstream | * |
Linux-oracle | Ubuntu | upstream | * |
Linux-oracle-5.0 | Ubuntu | bionic | * |
Linux-oracle-5.0 | Ubuntu | esm-infra/bionic | * |
Linux-oracle-5.0 | Ubuntu | upstream | * |
Linux-oracle-5.3 | Ubuntu | upstream | * |
Linux-oracle-5.4 | Ubuntu | upstream | * |
Linux-raspi | Ubuntu | upstream | * |
Linux-raspi-5.4 | Ubuntu | upstream | * |
Linux-raspi2 | Ubuntu | focal | * |
Linux-raspi2 | Ubuntu | upstream | * |
Linux-raspi2-5.3 | Ubuntu | upstream | * |
Linux-riscv | Ubuntu | upstream | * |
Linux-snapdragon | Ubuntu | upstream | * |