CVE Vulnerabilities

CVE-2017-13715

Improper Initialization

Published: Aug 29, 2017 | Modified: Apr 20, 2025
CVSS 3.x
9.8
CRITICAL
Source:
NVD
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS 2.x
10 HIGH
AV:N/AC:L/Au:N/C:C/I:C/A:C
RedHat/V2
RedHat/V3
7.5 IMPORTANT
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Ubuntu
MEDIUM
root.io logo minimus.io logo echo.ai logo

The __skb_flow_dissect function in net/core/flow_dissector.c in the Linux kernel before 4.3 does not ensure that n_proto, ip_proto, and thoff are initialized, which allows remote attackers to cause a denial of service (system crash) or possibly execute arbitrary code via a single crafted MPLS packet.

Weakness

The product does not initialize or incorrectly initializes a resource, which might leave the resource in an unexpected state when it is accessed or used.

Affected Software

NameVendorStart VersionEnd Version
Linux_kernelLinux4.2 (including)4.3 (excluding)
LinuxUbuntuupstream*
Linux-armadaxpUbuntuupstream*
Linux-awsUbuntuupstream*
Linux-azureUbuntuupstream*
Linux-euclidUbuntuupstream*
Linux-floUbuntutrusty*
Linux-floUbuntuupstream*
Linux-floUbuntuxenial*
Linux-gcpUbuntuupstream*
Linux-gkeUbuntuupstream*
Linux-goldfishUbuntutrusty*
Linux-goldfishUbuntuupstream*
Linux-grouperUbuntutrusty*
Linux-grouperUbuntuupstream*
Linux-hweUbuntuupstream*
Linux-hwe-edgeUbuntuupstream*
Linux-kvmUbuntuupstream*
Linux-linaro-omapUbuntuupstream*
Linux-linaro-sharedUbuntuupstream*
Linux-linaro-vexpressUbuntuupstream*
Linux-lts-quantalUbuntuprecise/esm*
Linux-lts-quantalUbuntuupstream*
Linux-lts-raringUbuntuprecise/esm*
Linux-lts-raringUbuntuupstream*
Linux-lts-saucyUbuntuprecise/esm*
Linux-lts-saucyUbuntuupstream*
Linux-lts-trustyUbuntuupstream*
Linux-lts-utopicUbuntutrusty*
Linux-lts-utopicUbuntuupstream*
Linux-lts-vividUbuntutrusty*
Linux-lts-vividUbuntutrusty/esm*
Linux-lts-vividUbuntuupstream*
Linux-lts-wilyUbuntutrusty*
Linux-lts-wilyUbuntuupstream*
Linux-lts-xenialUbuntuupstream*
Linux-maguroUbuntutrusty*
Linux-maguroUbuntuupstream*
Linux-makoUbuntutrusty*
Linux-makoUbuntuupstream*
Linux-makoUbuntuxenial*
Linux-mantaUbuntutrusty*
Linux-mantaUbuntuupstream*
Linux-oemUbuntuupstream*
Linux-qcm-msmUbuntuupstream*
Linux-raspi2Ubuntuupstream*
Linux-raspi2Ubuntuvivid/ubuntu-core*
Linux-snapdragonUbuntuupstream*
Linux-ti-omap4Ubuntuupstream*

Potential Mitigations

  • Use a language that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid.
  • For example, in Java, if the programmer does not explicitly initialize a variable, then the code could produce a compile-time error (if the variable is local) or automatically initialize the variable to the default value for the variable’s type. In Perl, if explicit initialization is not performed, then a default value of undef is assigned, which is interpreted as 0, false, or an equivalent value depending on the context in which the variable is accessed.

References