{"id":"CVE-2017-1000112","state":"PUBLISHED","title":"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. How","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.","publishedAt":"2017-10-04T01:00:00.000Z","updatedAt":"2024-08-05T21:53:06.785Z","severity":null,"assigner":"mitre","products":["n/a n/a"],"affected":[{"vendor":"n/a","product":"n/a","versions":[{"version":"n/a","status":"affected"}]}],"references":["http://seclists.org/oss-sec/2017/q3/277","https://access.redhat.com/errata/RHSA-2017:3200","http://www.securityfocus.com/bid/100262","https://access.redhat.com/errata/RHSA-2017:2918","https://access.redhat.com/errata/RHSA-2017:2931","http://www.debian.org/security/2017/dsa-3981","https://github.com/xairy/kernel-exploits/tree/master/CVE-2017-1000112","http://www.securitytracker.com/id/1039162","https://www.exploit-db.com/exploits/45147/","https://access.redhat.com/errata/RHSA-2017:2930","https://access.redhat.com/errata/RHSA-2019:1932","https://access.redhat.com/errata/RHSA-2019:1931","https://access.redhat.com/errata/RHSA-2019:4159"],"weaknesses":[],"ingestedAt":"2026-10-29T19:43:03.788Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2017/1000xxx/CVE-2017-1000112.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.1","cveMetadata":{"cveId":"CVE-2017-1000112","state":"PUBLISHED","datePublished":"2017-10-04T01:00:00.000Z","dateUpdated":"2024-08-05T21:53:06.785Z","assignerShortName":"mitre","assignerOrgId":"8254265b-2729-46b6-b9e3-3dfca2d5bfca","dateReserved":"2017-10-03T00:00:00.000Z"},"containers":{"cna":{"descriptions":[{"lang":"en","value":"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."}],"affected":[{"vendor":"n/a","product":"n/a","versions":[{"version":"n/a","status":"affected"}]}],"references":[{"url":"http://seclists.org/oss-sec/2017/q3/277","name":"[oss-security] 20170810 Linux kernel: CVE-2017-1000112: Exploitable memory corruption due to UFO to non-UFO path switch","tags":["mailing-list","x_refsource_MLIST"]},{"url":"https://access.redhat.com/errata/RHSA-2017:3200","name":"RHSA-2017:3200","tags":["vendor-advisory","x_refsource_REDHAT"]},{"url":"http://www.securityfocus.com/bid/100262","name":"100262","tags":["vdb-entry","x_refsource_BID"]},{"url":"https://access.redhat.com/errata/RHSA-2017:2918","name":"RHSA-2017:2918","tags":["vendor-advisory","x_refsource_REDHAT"]},{"url":"https://access.redhat.com/errata/RHSA-2017:2931","name":"RHSA-2017:2931","tags":["vendor-advisory","x_refsource_REDHAT"]},{"url":"http://www.debian.org/security/2017/dsa-3981","name":"DSA-3981","tags":["vendor-advisory","x_refsource_DEBIAN"]},{"url":"https://github.com/xairy/kernel-exploits/tree/master/CVE-2017-1000112","tags":["x_refsource_MISC"]},{"url":"http://www.securitytracker.com/id/1039162","name":"1039162","tags":["vdb-entry","x_refsource_SECTRACK"]},{"url":"https://www.exploit-db.com/exploits/45147/","name":"45147","tags":["exploit","x_refsource_EXPLOIT-DB"]},{"url":"https://access.redhat.com/errata/RHSA-2017:2930","name":"RHSA-2017:2930","tags":["vendor-advisory","x_refsource_REDHAT"]},{"url":"https://access.redhat.com/errata/RHSA-2019:1932","name":"RHSA-2019:1932","tags":["vendor-advisory","x_refsource_REDHAT"]},{"url":"https://access.redhat.com/errata/RHSA-2019:1931","name":"RHSA-2019:1931","tags":["vendor-advisory","x_refsource_REDHAT"]},{"url":"https://access.redhat.com/errata/RHSA-2019:4159","name":"RHSA-2019:4159","tags":["vendor-advisory","x_refsource_REDHAT"]}],"problemTypes":[{"descriptions":[{"description":"n/a","lang":"en","type":"text"}]}],"providerMetadata":{"shortName":"mitre","dateUpdated":"2019-12-10T15:06:14.000Z","orgId":"8254265b-2729-46b6-b9e3-3dfca2d5bfca"},"dateAssigned":"2017-08-22T00:00:00.000Z","datePublic":"2017-10-03T00:00:00.000Z","x_legacyV4Record":{"CVE_data_meta":{"ASSIGNER":"cve@mitre.org","DATE_ASSIGNED":"2017-08-22T17:29:33.325175","ID":"CVE-2017-1000112","REQUESTER":"willemdebruijn.kernel@gmail.com","STATE":"PUBLIC"},"affects":{"vendor":{"vendor_data":[{"product":{"product_data":[{"product_name":"n/a","version":{"version_data":[{"version_value":"n/a"}]}}]},"vendor_name":"n/a"}]}},"data_format":"MITRE","data_type":"CVE","data_version":"4.0","description":{"description_data":[{"lang":"eng","value":"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."}]},"problemtype":{"problemtype_data":[{"description":[{"lang":"eng","value":"n/a"}]}]},"references":{"reference_data":[{"name":"[oss-security] 20170810 Linux kernel: CVE-2017-1000112: Exploitable memory corruption due to UFO to non-UFO path switch","refsource":"MLIST","url":"http://seclists.org/oss-sec/2017/q3/277"},{"name":"RHSA-2017:3200","refsource":"REDHAT","url":"https://access.redhat.com/errata/RHSA-2017:3200"},{"name":"100262","refsource":"BID","url":"http://www.securityfocus.com/bid/100262"},{"name":"RHSA-2017:2918","refsource":"REDHAT","url":"https://access.redhat.com/errata/RHSA-2017:2918"},{"name":"RHSA-2017:2931","refsource":"REDHAT","url":"https://access.redhat.com/errata/RHSA-2017:2931"},{"name":"DSA-3981","refsource":"DEBIAN","url":"http://www.debian.org/security/2017/dsa-3981"},{"name":"https://github.com/xairy/kernel-exploits/tree/master/CVE-2017-1000112","refsource":"MISC","url":"https://github.com/xairy/kernel-exploits/tree/master/CVE-2017-1000112"},{"name":"1039162","refsource":"SECTRACK","url":"http://www.securitytracker.com/id/1039162"},{"name":"45147","refsource":"EXPLOIT-DB","url":"https://www.exploit-db.com/exploits/45147/"},{"name":"RHSA-2017:2930","refsource":"REDHAT","url":"https://access.redhat.com/errata/RHSA-2017:2930"},{"name":"RHSA-2019:1932","refsource":"REDHAT","url":"https://access.redhat.com/errata/RHSA-2019:1932"},{"name":"RHSA-2019:1931","refsource":"REDHAT","url":"https://access.redhat.com/errata/RHSA-2019:1931"},{"name":"RHSA-2019:4159","refsource":"REDHAT","url":"https://access.redhat.com/errata/RHSA-2019:4159"}]}}},"adp":[{"title":"CVE Program Container","references":[{"url":"http://seclists.org/oss-sec/2017/q3/277","name":"[oss-security] 20170810 Linux kernel: CVE-2017-1000112: Exploitable memory corruption due to UFO to non-UFO path switch","tags":["mailing-list","x_refsource_MLIST","x_transferred"]},{"url":"https://access.redhat.com/errata/RHSA-2017:3200","name":"RHSA-2017:3200","tags":["vendor-advisory","x_refsource_REDHAT","x_transferred"]},{"url":"http://www.securityfocus.com/bid/100262","name":"100262","tags":["vdb-entry","x_refsource_BID","x_transferred"]},{"url":"https://access.redhat.com/errata/RHSA-2017:2918","name":"RHSA-2017:2918","tags":["vendor-advisory","x_refsource_REDHAT","x_transferred"]},{"url":"https://access.redhat.com/errata/RHSA-2017:2931","name":"RHSA-2017:2931","tags":["vendor-advisory","x_refsource_REDHAT","x_transferred"]},{"url":"http://www.debian.org/security/2017/dsa-3981","name":"DSA-3981","tags":["vendor-advisory","x_refsource_DEBIAN","x_transferred"]},{"url":"https://github.com/xairy/kernel-exploits/tree/master/CVE-2017-1000112","tags":["x_refsource_MISC","x_transferred"]},{"url":"http://www.securitytracker.com/id/1039162","name":"1039162","tags":["vdb-entry","x_refsource_SECTRACK","x_transferred"]},{"url":"https://www.exploit-db.com/exploits/45147/","name":"45147","tags":["exploit","x_refsource_EXPLOIT-DB","x_transferred"]},{"url":"https://access.redhat.com/errata/RHSA-2017:2930","name":"RHSA-2017:2930","tags":["vendor-advisory","x_refsource_REDHAT","x_transferred"]},{"url":"https://access.redhat.com/errata/RHSA-2019:1932","name":"RHSA-2019:1932","tags":["vendor-advisory","x_refsource_REDHAT","x_transferred"]},{"url":"https://access.redhat.com/errata/RHSA-2019:1931","name":"RHSA-2019:1931","tags":["vendor-advisory","x_refsource_REDHAT","x_transferred"]},{"url":"https://access.redhat.com/errata/RHSA-2019:4159","name":"RHSA-2019:4159","tags":["vendor-advisory","x_refsource_REDHAT","x_transferred"]}],"providerMetadata":{"shortName":"CVE","orgId":"af854a3a-2127-422b-91ae-364da2661108","dateUpdated":"2024-08-05T21:53:06.785Z"}}]}}}