Skip to content
CVE PROGRAM SOURCE RECORD7.5 High

CVE-2021-47515

seg6: fix the iif in the IPv6 socket control block

Description

In the Linux kernel, the following vulnerability has been resolved: seg6: fix the iif in the IPv6 socket control block When an IPv4 packet is received, the ip_rcv_core(...) sets the receiving interface index into the IPv4 socket control block (v5.16-rc4, net/ipv4/ip_input.c line 510): IPCB(skb)->iif = skb->skb_iif; If that IPv4 packet is meant to be encapsulated in an outer IPv6+SRH header, the seg6_do_srh_encap(...) performs the required encapsulation. In this case, the seg6_do_srh_encap function clears the IPv6 socket control block (v5.16-rc4 net/ipv6/seg6_iptunnel.c line 163): memset(IP6CB(skb), 0, sizeof(*IP6CB(skb))); The memset(...) was introduced in commit ef489749aae5 ("ipv6: sr: clear IP6CB(skb) on SRH ip4ip6 encapsulation") a long time ago (2019-01-29). Since the IPv6 socket control block and the IPv4 socket control block share the same memory area (skb->cb), the receiving interface index info is lost (IP6CB(skb)->iif is set to zero). As a side effect, that condition triggers a NULL pointer dereference if commit 0857d6f8c759 ("ipv6: When forwarding count rx stats on the orig netdev") is applied. To fix that issue, we set the IP6CB(skb)->iif with the index of the receiving interface once again.

Affected products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

Linux Linux

Default version status: unaffected

  • c630ec8bdadae9d557b1ceb9d6c06e149108a0d4 to < b16d412e5f79734033df04e97d7ea2f50a8e9fe3affected
  • 2f704348c93ff8119e642dae6a72327f90b82810 to < 6431e71093f3da586a00c6d931481ffb0dc2db0eaffected
  • ef489749aae508e6f17886775c075f12ff919fb1 to < ef8804e47c0a44ae106ead1740408af5ea6c6ee9affected
  • ef489749aae508e6f17886775c075f12ff919fb1 to < 666521b3852d2b2f52d570f9122b1e4b50d96831affected
  • ef489749aae508e6f17886775c075f12ff919fb1 to < 98adb2bbfa407c9290bda299d4c6f7a1c4ebd5e1affected
  • ef489749aae508e6f17886775c075f12ff919fb1 to < ae68d93354e5bf5191ee673982251864ea24dd5caffected
  • b71b7e0280f47b4ac633fbfd153423814ea87810affected
  • 4.14.98 to < 4.14.258affected
  • 4.19.20 to < 4.19.221affected
  • 4.20.7 to < 4.21affected

Linux Linux

Default version status: affected

  • 5.0affected
  • 0 to < 5.0unaffected
  • 4.14.258 to ≤ 4.14.*unaffected
  • 4.19.221 to ≤ 4.19.*unaffected
  • 5.4.165 to ≤ 5.4.*unaffected
  • 5.10.85 to ≤ 5.10.*unaffected
  • 5.15.8 to ≤ 5.15.*unaffected
  • 5.16 to ≤ *unaffected

References