In the Linux kernel, the following vulnerability has been resolved:
net: dsa: Avoid cross-chip syncing of VLAN filtering
Changes to VLAN filtering are not applicable to cross-chip notifications.
On a system like this:
.-----. .-----. .-----. | sw1 +---+ sw2 +---+ sw3 | '-1-2-' '-1-2-' '-1-2-'
Before this change, upon sw1p1 leaving a bridge, a call to dsaportvlan_filtering would also be made to sw2p1 and sw3p1.
In this scenario:
.---------. .-----. .-----. | sw1 +---+ sw2 +---+ sw3 | '-1-2-3-4-' '-1-2-' '-1-2-'
When sw1p4 would leave a bridge, dsaportvlan_filtering would be called for sw2 and sw3 with a non-existing port - leading to array out-of-bounds accesses and crashes on mv88e6xxx.
[
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@108dc8741c203e9d6ce4e973367f1bac20c7192b",
"deprecated": false,
"id": "CVE-2022-49234-6825979f",
"target": {
"file": "net/dsa/switch.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"72491325651662770034184783924494467275",
"284642372898960029053980541546948383209",
"34034714824972842744254508236535150982",
"61661377128369735227466871228075315116",
"191382478294649715825899384355427232736",
"27531148344808130748387468851058538514"
]
},
"signature_type": "Line"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@108dc8741c203e9d6ce4e973367f1bac20c7192b",
"deprecated": false,
"id": "CVE-2022-49234-94632e64",
"target": {
"function": "dsa_switch_bridge_leave",
"file": "net/dsa/switch.c"
},
"digest": {
"function_hash": "234863718485398920145909501107360707966",
"length": 649.0
},
"signature_type": "Function"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e1f2a4dd8d433eec393d09273a78a3d3551339cf",
"deprecated": false,
"id": "CVE-2022-49234-ca83a198",
"target": {
"function": "dsa_switch_bridge_leave",
"file": "net/dsa/switch.c"
},
"digest": {
"function_hash": "234863718485398920145909501107360707966",
"length": 649.0
},
"signature_type": "Function"
},
{
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@e1f2a4dd8d433eec393d09273a78a3d3551339cf",
"deprecated": false,
"id": "CVE-2022-49234-e42813b9",
"target": {
"file": "net/dsa/switch.c"
},
"digest": {
"threshold": 0.9,
"line_hashes": [
"72491325651662770034184783924494467275",
"284642372898960029053980541546948383209",
"34034714824972842744254508236535150982",
"61661377128369735227466871228075315116",
"191382478294649715825899384355427232736",
"27531148344808130748387468851058538514"
]
},
"signature_type": "Line"
}
]