CVE-2021-47515

seg6: fix the iif in the IPv6 socket control block

MEDIUM
5.5
CVSS Score
Published: May 24, 2024 at 03:09 PM UTC
Updated: August 5, 2026 at 09:24 AM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.5
Exploit prediction
EPSS 0.7%
SSVC
No known exploit

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

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

v ≥ 4.20.74.14.98 ≤ v < 4.14.2584.19.20 ≤ v < 4.19.2214.20.7 ≤ v < 4.214.20.7 ≤ v < 5.05.0 ≤ v < 5.10.855.0 ≤ v < 5.15.85.0 ≤ v < 5.165.0 ≤ v < 5.4.1655.0.1 ≤ v < 5.4.1655.11 ≤ v < 5.15.85.5 ≤ v < 5.10.852f704348c93ff8119e642dae6a72327f90b828104.14.984.19.204.20.75.05.0 rc65.0 rc75.0 rc85.16 rc15.16 rc25.16 rc35.16 rc4b71b7e0280f47b4ac633fbfd153423814ea87810c630ec8bdadae9d557b1ceb9d6c06e149108a0d4ef489749aae508e6f17886775c075f12ff919fb1
Vendor states this is fixed in 6431e71093f3da586a00c6d931481ffb0dc2db0e (fixed)
Vendor states this is fixed in 666521b3852d2b2f52d570f9122b1e4b50d96831 (fixed)
Vendor states this is fixed in 98adb2bbfa407c9290bda299d4c6f7a1c4ebd5e1 (fixed)
Vendor states this is fixed in ae68d93354e5bf5191ee673982251864ea24dd5c (fixed)
Vendor states this is fixed in b16d412e5f79734033df04e97d7ea2f50a8e9fe3 (fixed)
Vendor states this is fixed in ef8804e47c0a44ae106ead1740408af5ea6c6ee9 (fixed)
Vendor states this is fixed in 4.14.258 (unaffected)
Vendor states this is fixed in 4.19.221 (unaffected)
Affected range stops below 4.21, so it looks safe — our inference, not a vendor statement
Vendor states this is fixed in 5.0 (unaffected)
Vendor states this is fixed in 5.10.85 (unaffected)
Vendor states this is fixed in 5.15.8 (unaffected)
Vendor states this is fixed in 5.16 (unaffected)
Vendor states this is fixed in 5.4.165 (unaffected)

References (6)

Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/6431e71093f3da586a00c6d931481ffb0dc2db0e
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/666521b3852d2b2f52d570f9122b1e4b50d96831
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/98adb2bbfa407c9290bda299d4c6f7a1c4ebd5e1
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/ae68d93354e5bf5191ee673982251864ea24dd5c
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/b16d412e5f79734033df04e97d7ea2f50a8e9fe3
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/ef8804e47c0a44ae106ead1740408af5ea6c6ee9

SSVC — Action Prioritization

SSVCNo known exploitNot automatablePartial impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusMODIFIED
CWE
CWE-476

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card