---
id: CVE-2021-46998
title: |-
  In the Linux kernel, the following vulnerability has been resolved:

  ethernet:enic: Fix a use after free bug in enic_hard_start_xmit

  In enic_hard_start_xmit, it calls enic_queue_wq_skb()
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  ethernet:enic: Fix a use after free bug in enic_hard_start_xmit

  In enic_hard_start_xmit, it calls enic_queue_wq_skb(). Inside
  enic_queue_wq_skb, if some error happens,…
severity: high
cvss: 7.8
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'
cwe:
  - CWE-416
vendor: linux
product: linux_kernel
affected:
  - 'linux_kernel >= 4.16, < 4.19.191'
  - 'linux_kernel >= 4.20, < 5.4.120'
  - 'linux_kernel >= 5.5, < 5.10.38'
  - 'linux_kernel >= 5.11, < 5.11.22'
  - 'linux_kernel >= 5.12, < 5.12.5'
patched:
  - linux_kernel 5.12.5
published: '2024-02-28'
updated: '2026-08-04'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2021-46998'
references:
  - url: 'https://git.kernel.org/stable/c/25a87b1f566b5eb2af2857a928f0e2310d900976'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/643001b47adc844ae33510c4bb93c236667008a3'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/6892396ebf04ea2c021d80e10f4075e014cd7cc3'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/7afdd6aba95c8a526038e7abe283eeac3e4320f1'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/d90529392aaf498dafa95d212295d64b2cea4e24'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/f7f6f07774091a6ddd98500b85386c3c6afb30d3'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/25a87b1f566b5eb2af2857a928f0e2310d900976'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://git.kernel.org/stable/c/643001b47adc844ae33510c4bb93c236667008a3'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://git.kernel.org/stable/c/6892396ebf04ea2c021d80e10f4075e014cd7cc3'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://git.kernel.org/stable/c/7afdd6aba95c8a526038e7abe283eeac3e4320f1'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://git.kernel.org/stable/c/d90529392aaf498dafa95d212295d64b2cea4e24'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://git.kernel.org/stable/c/f7f6f07774091a6ddd98500b85386c3c6afb30d3'
    label: af854a3a-2127-422b-91ae-364da2661108
tags:
  - nvd
epss: 0.00242
epssPercentile: 0.13763
ingestedAt: '2026-08-04T10:39:38.971Z'
---

## Overview

In the Linux kernel, the following vulnerability has been resolved:

ethernet:enic: Fix a use after free bug in enic_hard_start_xmit

In enic_hard_start_xmit, it calls enic_queue_wq_skb(). Inside
enic_queue_wq_skb, if some error happens, the skb will be freed
by dev_kfree_skb(skb). But the freed skb is still used in
skb_tx_timestamp(skb).

My patch makes enic_queue_wq_skb() return error and goto spin_unlock()
incase of error. The solution is provided by Govind.
See https://lkml.org/lkml/2021/4/30/961.

## Affected

- `linux_kernel >= 4.16, < 4.19.191`
- `linux_kernel >= 4.20, < 5.4.120`
- `linux_kernel >= 5.5, < 5.10.38`
- `linux_kernel >= 5.11, < 5.11.22`
- `linux_kernel >= 5.12, < 5.12.5`

## Remediation

Upgrade past the affected range:

- `linux_kernel 5.12.5`
