Skip to content
OpenAdvisories
Unscored Public exploit CVE-2017-1000112 EUVD-2017-1407GHSA-r7cm-47vv-77vj

Linux kernel: Exploitable memory corruption due to UFO to non-UFO path switch. When building a UFO packet with MSG_MORE __ip_append_data() …

Published Oct 4, 2017 · Updated Aug 5, 2024 · Assigned by mitre

Description

Linux kernel: Exploitable memory corruption due to UFO to non-UFO path switch. When building a UFO packet with MSG_MORE __ip_append_data() calls ip_ufo_append_data() to append. However in between two send() calls, the append path can be switched from UFO to non-UFO one, which leads to a memory corruption. In case UFO packet lengths exceeds MTU, copy = maxfraglen - skb->len becomes negative on the non-UFO path and the branch to allocate new skb is taken. This triggers fragmentation and computation of fraggap = skb_prev->len - maxfraglen. Fraggap can exceed MTU, causing copy = datalen - transhdrlen - fraggap to become negative. Subsequently skb_copy_and_csum_bits() writes out-of-bounds. A similar issue is present in IPv6 code. The bug was introduced in e89e9cf539a2 ("[IPv4/IPv6]: UFO Scatter-gather approach") on Oct 18 2005.

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 linux 4.12.6-1 —
Debian 13 linux 4.12.6-1 —
Debian 12 linux 4.12.6-1 —
Debian 9 linux 4.9.30-2+deb9u5 DSA-3981-1
Debian 8 linux 3.16.43-2+deb8u5 DSA-3981-1
ReleasePackageFixed inAdvisory
Ubuntu 24.04 LTS linux-raspi-realtime No fix yet —
Ubuntu 22.04 LTS linux-riscv +2 No fix yet —
Ubuntu 20.04 LTS linux-gke +3 No fix yet —
Ubuntu 16.04 LTS linux 4.4.0-91.114 USN-3385-1
Ubuntu 16.04 LTS linux-aws 4.4.0-1030.39 USN-3385-1
Ubuntu 16.04 LTS linux-gke 4.4.0-1026.26 USN-3385-1
Ubuntu 16.04 LTS linux-hwe 4.10.0-32.36~16.04.1 USN-3384-2
Ubuntu 16.04 LTS linux-raspi2 4.4.0-1069.77 USN-3385-1
Ubuntu 16.04 LTS linux-snapdragon 4.4.0-1071.76 USN-3385-1
Ubuntu 14.04 LTS linux 3.13.0-128.177 USN-3386-1
Ubuntu 14.04 LTS linux-lts-xenial 4.4.0-91.114~14.04.1 USN-3385-2
ReleasePackageFixed inAdvisory
RHEL 7 kernel-rt +10 3.10.0-693.5.2.rt56.626.el7 RHSA-2017:2931
RHEL 7 perf +18 3.10.0-693.5.2.el7 RHSA-2017:2930
RHEL 6 perf +16 2.6.32-696.16.1.el6 RHSA-2017:3200
Show 6 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
RHEL 7.3 TUS perf +12 3.10.0-514.71.1.el7 RHSA-2019:4159
RHEL 7.3 E4S perf +14 3.10.0-514.71.1.el7 RHSA-2019:4159
RHEL 7.3 AUS perf +12 3.10.0-514.71.1.el7 RHSA-2019:4159
RHEL 5.9 AUS kernel +10 2.6.18-348.44.1.el5 RHSA-2019:1932
RHEL 5 ELS kernel +12 2.6.18-438.el5 RHSA-2019:1931
Red Hat MRG 2 kernel-rt +10 1:3.10.0-693.5.2.rt56.592.el6rt RHSA-2017:2918
ReleasePackageFixed inAdvisory
SLES 12 SP3 kernel-docs 4.4.82-6.3.5 SUSE-SU-2017:2286-1
SLES 12 SP3 kernel-obs-build 4.4.82-6.3.3 SUSE-SU-2017:2286-1
SLES 12 SP3 kernel-syms +2 4.4.82-6.3.1 SUSE-SU-2017:2286-1
SLES 12 SP2 kernel-docs 4.4.74-92.35.3 SUSE-SU-2017:2131-1
SLES 12 SP2 kernel-syms +3 4.4.74-92.35.1 SUSE-SU-2017:2131-1
SLES 12 SP1 kernel-xen +3 3.12.74-60.64.54.1 SUSE-SU-2017:2150-1
SLES 12 SP1 kgraft-patch-SLE12-SP1_Update_10 9-2.2 SUSE-SU-2017:2424-1
SLES 12 SP1 kgraft-patch-SLE12-SP1_Update_11 8-2.1 SUSE-SU-2017:2423-1
SLES 12 SP1 kgraft-patch-SLE12-SP1_Update_12 7-2.1 SUSE-SU-2017:2437-1
SLES 12 SP1 kgraft-patch-SLE12-SP1_Update_13 6-2.1 SUSE-SU-2017:2440-1
SLES 12 SP1 kgraft-patch-SLE12-SP1_Update_14 5-2.1 SUSE-SU-2017:2442-1
SLES 12 SP1 kgraft-patch-SLE12-SP1_Update_15 +1 4-2.1 SUSE-SU-2017:2439-1, SUSE-SU-2017:2436-1
SLES 12 SP1 kgraft-patch-SLE12-SP1_Update_17 3-2.1 SUSE-SU-2017:2441-1
SLES 12 SP1 kgraft-patch-SLE12-SP1_Update_18 +1 2-2.1 SUSE-SU-2017:2448-1, SUSE-SU-2017:2447-1
SLES 12 SP1 kgraft-patch-SLE12-SP1_Update_19 1-2.1 SUSE-SU-2017:2446-1, SUSE-SU-2017:2150-1
SLES 12 SP1 kgraft-patch-SLE12-SP1_Update_21 2-4.1 SUSE-SU-2017:2791-1
SLES 12 SP1 kgraft-patch-SLE12-SP1_Update_8 11-2.1 SUSE-SU-2017:2438-1
SLES 12 SP1 kgraft-patch-SLE12-SP1_Update_9 10-2.1 SUSE-SU-2017:2443-1
SLES 12 kernel-ec2 +4 3.12.61-52.86.1 SUSE-SU-2017:2150-1, SUSE-SU-2017:2142-1
SLES 12 kgraft-patch-SLE12_Update_16 9-2.2 SUSE-SU-2017:2509-1
SLES 12 kgraft-patch-SLE12_Update_17 +1 8-2.2 SUSE-SU-2017:2508-1, SUSE-SU-2017:2506-1
SLES 12 kgraft-patch-SLE12_Update_19 7-2.2 SUSE-SU-2017:2510-1
SLES 12 kgraft-patch-SLE12_Update_20 5-2.2 SUSE-SU-2017:2498-1
SLES 12 kgraft-patch-SLE12_Update_21 +1 4-2.2 SUSE-SU-2017:2511-1, SUSE-SU-2017:2499-1
SLES 12 kgraft-patch-SLE12_Update_23 3-2.2 SUSE-SU-2017:2500-1
SLES 12 kgraft-patch-SLE12_Update_24 +1 2-2.2 SUSE-SU-2017:2497-1, SUSE-SU-2017:2476-1
SLES 12 kgraft-patch-SLE12_Update_25 1-2.1 SUSE-SU-2017:2475-1, SUSE-SU-2017:2142-1
SLES 12 kgraft-patch-SLE12_Update_27 2-4.1 SUSE-SU-2017:2775-1
SLES 11 SP4 kernel-docs 3.0.101-108.18.3 SUSE-SU-2017:3265-1
SLES 11 SP4 kernel-ec2 +8 3.0.101-108.18.1 SUSE-SU-2017:3265-1
Show 12 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
SLES 11 SP3 kernel-ec2 +7 3.0.101-0.47.106.5.1 SUSE-SU-2017:2525-1
SLES for SAP 12 SP3 kernel-syms +2 4.4.82-6.3.1 SUSE-SU-2017:2286-1
SLES for SAP 12 SP2 kernel-syms +2 4.4.74-92.35.1 SUSE-SU-2017:2131-1
SLES for SAP 12 SP1 kernel-xen +3 3.12.74-60.64.54.1 SUSE-SU-2017:2150-1
SLES for SAP 12 SP1 kgraft-patch-SLE12-SP1_Update_10 9-2.2 SUSE-SU-2017:2424-1
SLES for SAP 12 SP1 kgraft-patch-SLE12-SP1_Update_11 8-2.1 SUSE-SU-2017:2423-1
SLES for SAP 12 SP1 kgraft-patch-SLE12-SP1_Update_12 7-2.1 SUSE-SU-2017:2437-1
SLES for SAP 12 SP1 kgraft-patch-SLE12-SP1_Update_13 6-2.1 SUSE-SU-2017:2440-1
SLES for SAP 12 SP1 kgraft-patch-SLE12-SP1_Update_14 5-2.1 SUSE-SU-2017:2442-1
SLES for SAP 12 SP1 kgraft-patch-SLE12-SP1_Update_15 +1 4-2.1 SUSE-SU-2017:2439-1, SUSE-SU-2017:2436-1
SLES for SAP 12 SP1 kgraft-patch-SLE12-SP1_Update_17 3-2.1 SUSE-SU-2017:2441-1
SLES for SAP 12 SP1 kgraft-patch-SLE12-SP1_Update_18 +1 2-2.1 SUSE-SU-2017:2448-1, SUSE-SU-2017:2447-1
SLES for SAP 12 SP1 kgraft-patch-SLE12-SP1_Update_19 1-2.1 SUSE-SU-2017:2446-1, SUSE-SU-2017:2150-1
SLES for SAP 12 SP1 kgraft-patch-SLE12-SP1_Update_21 2-4.1 SUSE-SU-2017:2791-1
SLES for SAP 12 SP1 kgraft-patch-SLE12-SP1_Update_8 11-2.1 SUSE-SU-2017:2438-2
SLES for SAP 12 SP1 kgraft-patch-SLE12-SP1_Update_9 10-2.1 SUSE-SU-2017:2443-1
SLES for SAP 12 kernel-xen +3 3.12.61-52.86.1 SUSE-SU-2017:2142-1
SLES for SAP 12 kgraft-patch-SLE12_Update_25 1-2.1 SUSE-SU-2017:2142-1
SLES for SAP 11 SP4 kernel-ec2 +8 3.0.101-108.18.1 SUSE-SU-2017:3265-1
SLE Real Time 12 SP2 kernel-rt +3 4.4.88-18.1 SUSE-SU-2017:2956-1
SLE Real Time 11 SP4 kernel-rt +3 3.0.101.rt130-69.8.1 SUSE-SU-2017:2694-1
SLE Live Patching 12 SP3 kgraft-patch-SLE12-SP3_Update_1 1-2.1 SUSE-SU-2017:2286-1
SLE Live Patching 12 kgraft-patch-SLE12-SP2_Update_0 9-18.10.1 SUSE-SU-2017:2474-1
SLE Live Patching 12 kgraft-patch-SLE12-SP2_Update_1 9-2.1 SUSE-SU-2017:2458-1
SLE Live Patching 12 kgraft-patch-SLE12-SP2_Update_11 2-2.1 SUSE-SU-2017:2473-1
SLE Live Patching 12 kgraft-patch-SLE12-SP2_Update_12 1-2.1 SUSE-SU-2017:2456-1, SUSE-SU-2017:2131-1
SLE Live Patching 12 kgraft-patch-SLE12-SP2_Update_13 2-4.1 SUSE-SU-2017:2813-1
SLE Live Patching 12 kgraft-patch-SLE12-SP2_Update_2 +2 8-2.1 SUSE-SU-2017:2471-1, SUSE-SU-2017:2464-1, SUSE-SU-2017:2454-1
SLE Live Patching 12 kgraft-patch-SLE12-SP2_Update_5 6-2.1 SUSE-SU-2017:2457-1
SLE Live Patching 12 kgraft-patch-SLE12-SP2_Update_6 5-2.1 SUSE-SU-2017:2467-1
SLE Live Patching 12 kgraft-patch-SLE12-SP2_Update_7 +1 4-2.1 SUSE-SU-2017:2465-1, SUSE-SU-2017:2455-1
SLE Live Patching 12 kgraft-patch-SLE12-SP2_Update_9 +1 3-2.1 SUSE-SU-2017:2472-1, SUSE-SU-2017:2469-1
SUSE OpenStack Cloud 6 kernel-xen +3 3.12.74-60.64.54.1 SUSE-SU-2017:2150-1
SUSE OpenStack Cloud 6 kgraft-patch-SLE12-SP1_Update_19 1-2.1 SUSE-SU-2017:2150-1
SUSE Linux Enterprise Point of Sale 11 SP3 kernel-ec2 +6 3.0.101-0.47.106.5.1 SUSE-SU-2017:2525-1

Oracle Linux

ReleasePackageFixed inAdvisory
Oracle Linux 7 kernel-uek +5 4.1.12-103.7.4.el7uek ELSA-2017-3631
Oracle Linux 7 perf +11 3.10.0-693.5.2.el7 ELSA-2017-2930

Public exploits

Exploit or proof-of-concept code for this vulnerability is publicly available, which lowers the bar for attackers. Treat it as a reason to patch sooner.

Third-party code, not reviewed by us. Public PoCs are sometimes fake or contain malware. Read the code first and run it only in an isolated lab, against systems you are authorised to test.

Metasploit 1 module

GitHub 5 repositories

Sources: PoC-in-GitHub, Metasploit Framework, Exploit-DB — updated daily. Only links are listed; no exploit code is hosted here.

Advisories 50

References