Bug 1445207 (CVE-2017-7477) - CVE-2017-7477 kernel: net: Heap overflow in skb_to_sgvec in macsec.c
Summary: CVE-2017-7477 kernel: net: Heap overflow in skb_to_sgvec in macsec.c
Alias: CVE-2017-7477
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
Target Milestone: ---
Assignee: Red Hat Product Security
QA Contact:
Depends On: 1445208 1445545 1445546 1445547 1445548 1445549
Blocks: 1445173
TreeView+ depends on / blocked
Reported: 2017-04-25 09:10 UTC by Andrej Nemec
Modified: 2021-02-17 02:13 UTC (History)
40 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
A flaw was found in the way Linux kernel allocates heap memory to build the scattergather list from a fragment list(skb_shinfo(skb)->frag_list) in the socket buffer(skb_buff). The heap overflow occurred if 'MAX_SKB_FRAGS + 1' parameter and 'NETIF_F_FRAGLIST' feature are both used together. A remote user or process could use this flaw to potentially escalate their privilege on a system.
Clone Of:
Last Closed: 2017-09-05 05:07:46 UTC

Attachments (Terms of Use)

System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2017:1615 0 normal SHIPPED_LIVE Important: kernel security and bug fix update 2017-06-29 16:41:56 UTC
Red Hat Product Errata RHSA-2017:1616 0 normal SHIPPED_LIVE Important: kernel-rt security and bug fix update 2017-06-28 20:57:58 UTC

Description Andrej Nemec 2017-04-25 09:10:38 UTC
A heap overflow vulnerability was found in the Linux kernel in macsec module. Specifying MAX_SKB_FRAGS + 1 and using NETIF_F_FRAGLIST which calls skb_to_sgvec will overflow the heap.

Upstream patches:


Comment 1 Andrej Nemec 2017-04-25 09:11:27 UTC
Created kernel tracking bugs for this issue:

Affects: fedora-all [bug 1445208]

Comment 2 Andrej Nemec 2017-04-25 09:38:00 UTC


Comment 3 Jason A. Donenfeld 2017-04-25 12:37:30 UTC
I found this vulnerability and reported it prior to oss-sec. The original email to oss-sec is here:


The LKML discussion took place here:


Comment 4 Petr Matousek 2017-04-25 14:02:41 UTC

This issue does not affect the Linux kernel packages as shipped with Red Hat Enterprise Linux 5, 6 and Red Hat Enterprise MRG 2.

This issue affects the Linux kernel packages as shipped with Red Hat Enterprise Linux 7 starting with the version kernel-3.10.0-514.el7, that is with Red Hat Enterprise Linux 7.3 GA. Prior Red Hat Enterprise Linux 7 kernel versions are not affected.

In order to exploit this issue, the system needs to be manually configured by privileged user. The default Red Hat Enterprise Linux 7 configuration is not vulnerable.

Comment 7 Jason A. Donenfeld 2017-04-26 20:28:49 UTC
A subsequent upstream patch is here:


This *must* be applied to receive protection.

Comment 8 Wade Mealing 2017-04-27 00:36:08 UTC

Red Hat recommends blacklisting the kernel module to prevent its use. This will prevent accidental version loading by administration and also mitigate the flaw if a kernel with the affected module is booted.

As the macsec module will be auto-loaded when required, its use can be disabled by preventing the module from loading with the following instructions:

  # echo "install macsec /bin/true" >> /etc/modprobe.d/disable-macsec.conf 

If macsec functionality is in use as a functional part of the system a kernel upgrade is required.

Comment 9 errata-xmlrpc 2017-06-28 17:05:26 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 7

Via RHSA-2017:1615 https://access.redhat.com/errata/RHSA-2017:1615

Comment 10 errata-xmlrpc 2017-06-28 17:08:46 UTC
This issue has been addressed in the following products:

  Red Hat Enterprise Linux 7

Via RHSA-2017:1616 https://access.redhat.com/errata/RHSA-2017:1616

Note You need to log in before you can comment on or make changes to this bug.