CVE-2022-49195

net: dsa: fix panic on shutdown if multi-chip tree failed to probe

published February 26, 2025

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

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

net: dsa: fix panic on shutdown if multi-chip tree failed to probe

DSA probing is atypical because a tree of devices must probe all at

once, so out of N switches which call dsa_tree_setup_routing_table()

during probe, for (N - 1) of them, "complete" will return false and they

will exit probing early. The Nth switch will set up the whole tree on

their behalf.

The implication is that for (N - 1) switches, the driver binds to the

device successfully, without doing anything. When the driver is bound,

the ->shutdown() method may run. But if the Nth switch has failed to

initialize the tree, there is nothing to do for the (N - 1) driver

instances, since the slave devices have not been created, etc. Moreover,

dsa_switch_shutdown() expects that the calling @ds has been in fact

initialized, so it jumps at dereferencing the various data structures,

which is incorrect.

Avoid the ensuing NULL pointer dereferences by simply checking whether

the Nth switch has previously set "ds->setup = true" for the switch

which is currently shutting down. The entire setup is serialized under

dsa2_mutex which we already hold.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00261 · 16.9th percentile
Published
2025-02-26T01:55Z
EPSS history
Timeline
  • 26 FEB 01:55Z
    net: dsa: fix panic on shutdown if multi-chip tree failed to probe
    cvelistv5