CVE-2022-48645

net: enetc: deny offload of tc-based TSN features on VF interfaces

published April 28, 2024

CVSS
—
EPSS
0%
Percentile
12.4
In the wild
Unconfirmed
What it is

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

net: enetc: deny offload of tc-based TSN features on VF interfaces

TSN features on the ENETC (taprio, cbs, gate, police) are configured

through a mix of command BD ring messages and port registers:

enetc_port_rd(), enetc_port_wr().

Port registers are a region of the ENETC memory map which are only

accessible from the PCIe Physical Function. They are not accessible from

the Virtual Functions.

Moreover, attempting to access these registers crashes the kernel:

$ echo 1 > /sys/bus/pci/devices/0000\:00\:00.0/sriov_numvfs

pci 0000:00:01.0: [1957:ef00] type 00 class 0x020001

fsl_enetc_vf 0000:00:01.0: Adding to iommu group 15

fsl_enetc_vf 0000:00:01.0: enabling device (0000 -> 0002)

fsl_enetc_vf 0000:00:01.0 eno0vf0: renamed from eth0

$ tc qdisc replace dev eno0vf0 root taprio num_tc 8 map 0 1 2 3 4 5 6 7 \

queues 1@0 1@1 1@2 1@3 1@4 1@5 1@6 1@7 base-time 0 \

sched-entry S 0x7f 900000 sched-entry S 0x80 100000 flags 0x2

Unable to handle kernel paging request at virtual address ffff800009551a08

Internal error: Oops: 96000007 [#1] PREEMPT SMP

pc : enetc_setup_tc_taprio+0x170/0x47c

lr : enetc_setup_tc_taprio+0x16c/0x47c

Call trace:

enetc_setup_tc_taprio+0x170/0x47c

enetc_setup_tc+0x38/0x2dc

taprio_change+0x43c/0x970

taprio_init+0x188/0x1e0

qdisc_create+0x114/0x470

tc_modify_qdisc+0x1fc/0x6c0

rtnetlink_rcv_msg+0x12c/0x390

Split enetc_setup_tc() into separate functions for the PF and for the

VF drivers. Also remove enetc_qos.o from being included into

enetc-vf.ko, since it serves absolutely no purpose there.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00225 · 12.4th percentile
Published
2024-04-28T13:00Z
EPSS history
Timeline
  • 28 APR 13:00Z
    net: enetc: deny offload of tc-based TSN features on VF interfaces
    cvelistv5