CVE Vulnerabilities

CVE-2018-20169

Uncontrolled Resource Consumption

Published: Dec 17, 2018 | Modified: Nov 21, 2024
CVSS 3.x
6.8
MEDIUM
Source:
NVD
CVSS:3.1/AV:P/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 2.x
7.2 HIGH
AV:L/AC:L/Au:N/C:C/I:C/A:C
RedHat/V2
RedHat/V3
6.4 MODERATE
CVSS:3.0/AV:P/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
Ubuntu
LOW
root.io logo minimus.io logo echo.ai logo

An issue was discovered in the Linux kernel before 4.19.9. The USB subsystem mishandles size checks during the reading of an extra descriptor, related to __usb_get_extra_descriptor in drivers/usb/core/usb.c.

Weakness

The product does not properly control the allocation and maintenance of a limited resource.

Affected Software

NameVendorStart VersionEnd Version
Linux_kernelLinux*3.16.63 (excluding)
Linux_kernelLinux3.17 (including)3.18.129 (excluding)
Linux_kernelLinux3.19 (including)4.4.167 (excluding)
Linux_kernelLinux4.5 (including)4.9.145 (excluding)
Linux_kernelLinux4.10 (including)4.14.88 (excluding)
Linux_kernelLinux4.15 (including)4.19.9 (excluding)
Red Hat Enterprise Linux 7RedHatkernel-rt-0:3.10.0-1127.rt56.1093.el7*
Red Hat Enterprise Linux 7RedHatkernel-0:3.10.0-1127.el7*
Red Hat Enterprise Linux 7.4 Advanced Update SupportRedHatkernel-0:3.10.0-693.69.1.el7*
Red Hat Enterprise Linux 7.4 Telco Extended Update SupportRedHatkernel-0:3.10.0-693.69.1.el7*
Red Hat Enterprise Linux 7.4 Update Services for SAP SolutionsRedHatkernel-0:3.10.0-693.69.1.el7*
Red Hat Enterprise Linux 7.6 Extended Update SupportRedHatkernel-0:3.10.0-957.56.1.el7*
Red Hat Enterprise Linux 7.7 Extended Update SupportRedHatkernel-0:3.10.0-1062.26.1.el7*
Red Hat Enterprise Linux 8RedHatkernel-rt-0:4.18.0-147.rt24.93.el8*
Red Hat Enterprise Linux 8RedHatkernel-0:4.18.0-147.el8*
Red Hat Enterprise MRG 2RedHatkernel-rt-1:3.10.0-693.69.1.rt56.667.el6rt*
Red Hat Virtualization 4.2 for Red Hat Enterprise Linux 7.6 EUSRedHatkernel-0:3.10.0-957.56.1.el7*
LinuxUbuntubionic*
LinuxUbuntucosmic*
LinuxUbuntuesm-infra-legacy/trusty*
LinuxUbuntuesm-infra/bionic*
LinuxUbuntuesm-infra/xenial*
LinuxUbuntuprecise/esm*
LinuxUbuntutrusty*
LinuxUbuntutrusty/esm*
LinuxUbuntuupstream*
LinuxUbuntuxenial*
Linux-awsUbuntubionic*
Linux-awsUbuntucosmic*
Linux-awsUbuntuesm-infra-legacy/trusty*
Linux-awsUbuntuesm-infra/bionic*
Linux-awsUbuntuesm-infra/xenial*
Linux-awsUbuntutrusty*
Linux-awsUbuntutrusty/esm*
Linux-awsUbuntuupstream*
Linux-awsUbuntuxenial*
Linux-aws-5.15Ubuntuupstream*
Linux-aws-5.4Ubuntuupstream*
Linux-aws-6.14Ubuntuupstream*
Linux-aws-6.8Ubuntuupstream*
Linux-aws-fipsUbuntufips-updates/bionic*
Linux-aws-fipsUbuntufips/bionic*
Linux-aws-fipsUbuntutrusty*
Linux-aws-fipsUbuntuupstream*
Linux-aws-fipsUbuntuxenial*
Linux-aws-hweUbuntuesm-infra/xenial*
Linux-aws-hweUbuntuupstream*
Linux-aws-hweUbuntuxenial*
Linux-azureUbuntubionic*
Linux-azureUbuntucosmic*
Linux-azureUbuntuesm-infra-legacy/trusty*
Linux-azureUbuntuesm-infra/bionic*
Linux-azureUbuntuesm-infra/xenial*
Linux-azureUbuntutrusty*
Linux-azureUbuntutrusty/esm*
Linux-azureUbuntuupstream*
Linux-azureUbuntuxenial*
Linux-azure-4.15Ubuntuupstream*
Linux-azure-5.15Ubuntuupstream*
Linux-azure-5.4Ubuntuupstream*
Linux-azure-6.11Ubuntuupstream*
Linux-azure-6.14Ubuntuupstream*
Linux-azure-6.8Ubuntuupstream*
Linux-azure-edgeUbuntubionic*
Linux-azure-edgeUbuntuesm-infra/bionic*
Linux-azure-edgeUbuntuupstream*
Linux-azure-fdeUbuntuesm-infra/focal*
Linux-azure-fdeUbuntufocal*
Linux-azure-fdeUbuntuupstream*
Linux-azure-fde-5.15Ubuntuupstream*
Linux-azure-fde-6.14Ubuntuupstream*
Linux-azure-fde-6.8Ubuntuupstream*
Linux-azure-fipsUbuntufips-updates/bionic*
Linux-azure-fipsUbuntufips/bionic*
Linux-azure-fipsUbuntutrusty*
Linux-azure-fipsUbuntuupstream*
Linux-azure-fipsUbuntuxenial*
Linux-azure-nvidiaUbuntuupstream*
Linux-azure-nvidia-6.14Ubuntuupstream*
Linux-bluefieldUbuntuupstream*
Linux-euclidUbuntuupstream*
Linux-euclidUbuntuxenial*
Linux-fipsUbuntufips-updates/xenial*
Linux-fipsUbuntufips/bionic*
Linux-fipsUbuntufips/xenial*
Linux-fipsUbuntuupstream*
Linux-floUbuntutrusty*
Linux-floUbuntuupstream*
Linux-floUbuntuxenial*
Linux-gcpUbuntubionic*
Linux-gcpUbuntucosmic*
Linux-gcpUbuntuesm-infra/bionic*
Linux-gcpUbuntuesm-infra/xenial*
Linux-gcpUbuntuupstream*
Linux-gcpUbuntuxenial*
Linux-gcp-4.15Ubuntuupstream*
Linux-gcp-5.15Ubuntuupstream*
Linux-gcp-5.4Ubuntuupstream*
Linux-gcp-6.11Ubuntuupstream*
Linux-gcp-6.14Ubuntuupstream*
Linux-gcp-6.8Ubuntuupstream*
Linux-gcp-edgeUbuntubionic*
Linux-gcp-edgeUbuntuesm-infra/bionic*
Linux-gcp-edgeUbuntuupstream*
Linux-gcp-fipsUbuntufips/bionic*
Linux-gcp-fipsUbuntutrusty*
Linux-gcp-fipsUbuntuupstream*
Linux-gcp-fipsUbuntuxenial*
Linux-gkeUbuntuesm-infra/focal*
Linux-gkeUbuntufocal*
Linux-gkeUbuntuupstream*
Linux-gkeUbuntuxenial*
Linux-gke-4.15Ubuntubionic*
Linux-gke-4.15Ubuntuesm-infra/bionic*
Linux-gke-4.15Ubuntuupstream*
Linux-gke-5.0Ubuntuupstream*
Linux-gkeopUbuntuupstream*
Linux-gkeop-5.15Ubuntuupstream*
Linux-goldfishUbuntutrusty*
Linux-goldfishUbuntuupstream*
Linux-goldfishUbuntuxenial*
Linux-grouperUbuntutrusty*
Linux-grouperUbuntuupstream*
Linux-hweUbuntubionic*
Linux-hweUbuntuesm-infra/bionic*
Linux-hweUbuntuesm-infra/xenial*
Linux-hweUbuntuupstream*
Linux-hweUbuntuxenial*
Linux-hwe-5.15Ubuntuupstream*
Linux-hwe-5.4Ubuntuupstream*
Linux-hwe-6.11Ubuntuupstream*
Linux-hwe-6.14Ubuntuupstream*
Linux-hwe-6.8Ubuntuupstream*
Linux-hwe-edgeUbuntuesm-infra/xenial*
Linux-hwe-edgeUbuntuupstream*
Linux-hwe-edgeUbuntuxenial*
Linux-ibmUbuntuupstream*
Linux-ibm-5.15Ubuntuupstream*
Linux-ibm-5.4Ubuntuupstream*
Linux-ibm-6.8Ubuntuupstream*
Linux-intelUbuntuupstream*
Linux-intel-iot-realtimeUbuntujammy*
Linux-intel-iot-realtimeUbuntuupstream*
Linux-intel-iotgUbuntuupstream*
Linux-intel-iotg-5.15Ubuntuupstream*
Linux-iotUbuntuupstream*
Linux-kvmUbuntubionic*
Linux-kvmUbuntucosmic*
Linux-kvmUbuntuesm-infra/bionic*
Linux-kvmUbuntuesm-infra/xenial*
Linux-kvmUbuntuupstream*
Linux-kvmUbuntuxenial*
Linux-lowlatencyUbuntuupstream*
Linux-lowlatency-hwe-5.15Ubuntuupstream*
Linux-lowlatency-hwe-6.11Ubuntuupstream*
Linux-lowlatency-hwe-6.8Ubuntuupstream*
Linux-lts-trustyUbuntuprecise/esm*
Linux-lts-trustyUbuntuupstream*
Linux-lts-utopicUbuntutrusty*
Linux-lts-utopicUbuntutrusty/esm*
Linux-lts-utopicUbuntuupstream*
Linux-lts-vividUbuntutrusty*
Linux-lts-vividUbuntutrusty/esm*
Linux-lts-vividUbuntuupstream*
Linux-lts-wilyUbuntutrusty*
Linux-lts-wilyUbuntutrusty/esm*
Linux-lts-wilyUbuntuupstream*
Linux-lts-xenialUbuntuesm-infra-legacy/trusty*
Linux-lts-xenialUbuntutrusty*
Linux-lts-xenialUbuntutrusty/esm*
Linux-lts-xenialUbuntuupstream*
Linux-maguroUbuntutrusty*
Linux-maguroUbuntuupstream*
Linux-makoUbuntutrusty*
Linux-makoUbuntuupstream*
Linux-makoUbuntuxenial*
Linux-mantaUbuntutrusty*
Linux-mantaUbuntuupstream*
Linux-nvidiaUbuntuupstream*
Linux-nvidia-6.11Ubuntuupstream*
Linux-nvidia-6.5Ubuntuupstream*
Linux-nvidia-6.8Ubuntuupstream*
Linux-nvidia-lowlatencyUbuntuupstream*
Linux-nvidia-tegraUbuntuupstream*
Linux-nvidia-tegra-5.15Ubuntuupstream*
Linux-nvidia-tegra-igxUbuntuupstream*
Linux-oemUbuntubionic*
Linux-oemUbuntucosmic*
Linux-oemUbuntudisco*
Linux-oemUbuntueoan*
Linux-oemUbuntuesm-infra/bionic*
Linux-oemUbuntuupstream*
Linux-oemUbuntuxenial*
Linux-oem-6.11Ubuntuupstream*
Linux-oem-6.14Ubuntuupstream*
Linux-oem-6.17Ubuntuupstream*
Linux-oem-6.8Ubuntuupstream*
Linux-oracleUbuntubionic*
Linux-oracleUbuntucosmic*
Linux-oracleUbuntudisco*
Linux-oracleUbuntuesm-infra/bionic*
Linux-oracleUbuntuesm-infra/xenial*
Linux-oracleUbuntuupstream*
Linux-oracleUbuntuxenial*
Linux-oracle-5.15Ubuntuupstream*
Linux-oracle-5.4Ubuntuupstream*
Linux-oracle-6.14Ubuntuupstream*
Linux-oracle-6.8Ubuntuupstream*
Linux-raspiUbuntuupstream*
Linux-raspi-5.4Ubuntuupstream*
Linux-raspi-realtimeUbuntunoble*
Linux-raspi-realtimeUbuntuupstream*
Linux-raspi2Ubuntubionic*
Linux-raspi2Ubuntucosmic*
Linux-raspi2Ubuntuesm-infra/focal*
Linux-raspi2Ubuntufocal*
Linux-raspi2Ubuntuupstream*
Linux-raspi2Ubuntuxenial*
Linux-realtimeUbuntujammy*
Linux-realtimeUbuntuupstream*
Linux-realtime-6.14Ubuntuupstream*
Linux-realtime-6.8Ubuntuupstream*
Linux-riscvUbuntuesm-infra/focal*
Linux-riscvUbuntufocal*
Linux-riscvUbuntujammy*
Linux-riscvUbuntuupstream*
Linux-riscv-5.15Ubuntuupstream*
Linux-riscv-6.14Ubuntuupstream*
Linux-riscv-6.8Ubuntuupstream*
Linux-snapdragonUbuntubionic*
Linux-snapdragonUbuntuupstream*
Linux-snapdragonUbuntuxenial*
Linux-xilinxUbuntuupstream*
Linux-xilinx-zynqmpUbuntuupstream*

Potential Mitigations

  • Mitigation of resource exhaustion attacks requires that the target system either:

  • The first of these solutions is an issue in itself though, since it may allow attackers to prevent the use of the system by a particular valid user. If the attacker impersonates the valid user, they may be able to prevent the user from accessing the server in question.

  • The second solution is simply difficult to effectively institute – and even when properly done, it does not provide a full solution. It simply makes the attack require more resources on the part of the attacker.

References