In the Linux kernel, the following vulnerability has been resolved:
rtw89: ser: fix CAM leaks occurring in L2 reset
The CAM, meaning address CAM and bssid CAM here, will get leaks during SER (system error recover) L2 reset process and ieee80211restarthw() which is called by L2 reset process eventually.
The normal flow would be like -> add interface (acquire 1) -> enter ips (release 1) -> leave ips (acquire 1) -> connection (occupy 1) <(A) 1 leak after L2 reset if non-sec connection>
The ieee80211restarthw() flow (under connection) -> ieee80211 reconfig -> add interface (acquire 1) -> leave ips (acquire 1) -> connection (occupy (A) + 2) <(B) 1 more leak>
Originally, CAM is released before HW restart only if connection is under security. Now, release CAM whatever connection it is to fix leak in (A). OTOH, check if CAM is already valid to avoid acquiring multiple times to fix (B).
Besides, if AP mode, release address CAM of all stations before HW restart.
[
{
"signature_type": "Function",
"digest": {
"function_hash": "242123492443228769914205363856964949634",
"length": 703.0
},
"target": {
"file": "drivers/net/wireless/realtek/rtw89/cam.c",
"function": "rtw89_cam_init_addr_cam"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b169f877f001a474fb89939842c390518160bcc5",
"id": "CVE-2022-49539-0efe8934",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"297213909006213761492796119094311037195",
"6211393239731535108193666137253239380",
"293335105721325369981982205748444307913",
"223018339900978920204797437063288293863",
"123403527537348979603398653503492354817",
"182725378552473725348286219840287530842",
"48449379349258973105556764866005995454"
]
},
"target": {
"file": "drivers/net/wireless/realtek/rtw89/ser.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f6aff772c9978844529618d86aafb53e5d3ae161",
"id": "CVE-2022-49539-3f78fa7c",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Function",
"digest": {
"function_hash": "46152952159159870476877747566324028555",
"length": 425.0
},
"target": {
"file": "drivers/net/wireless/realtek/rtw89/cam.c",
"function": "rtw89_cam_init_bssid_cam"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b169f877f001a474fb89939842c390518160bcc5",
"id": "CVE-2022-49539-41008aea",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"193234159149452472543293123345343716106",
"252352625785535920239463927519215845200",
"35240685517833498434005048422034006696",
"184327700455132691024853671733879885435",
"176174878005180764222521493972084595369",
"97222202774614246636821165264031486676",
"212869200269695990421400716510237113401",
"48472884814151645110156479994326395704",
"7963877577158482090991705471266441033",
"237330653010110910378830507836772054378",
"276842468830673007654220963813511301845",
"308417819194221269163943717874593374412"
]
},
"target": {
"file": "drivers/net/wireless/realtek/rtw89/cam.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f6aff772c9978844529618d86aafb53e5d3ae161",
"id": "CVE-2022-49539-4c2d47dd",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Function",
"digest": {
"function_hash": "106057099724657482652810582799034651915",
"length": 263.0
},
"target": {
"file": "drivers/net/wireless/realtek/rtw89/cam.c",
"function": "rtw89_cam_reset_key_iter"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f6aff772c9978844529618d86aafb53e5d3ae161",
"id": "CVE-2022-49539-6494605b",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"297213909006213761492796119094311037195",
"6211393239731535108193666137253239380",
"293335105721325369981982205748444307913",
"223018339900978920204797437063288293863",
"123403527537348979603398653503492354817",
"182725378552473725348286219840287530842",
"48449379349258973105556764866005995454"
]
},
"target": {
"file": "drivers/net/wireless/realtek/rtw89/ser.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b169f877f001a474fb89939842c390518160bcc5",
"id": "CVE-2022-49539-71f5bed5",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Function",
"digest": {
"function_hash": "310000665020755685389964795460173395893",
"length": 201.0
},
"target": {
"file": "drivers/net/wireless/realtek/rtw89/ser.c",
"function": "ser_reset_mac_binding"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b169f877f001a474fb89939842c390518160bcc5",
"id": "CVE-2022-49539-795cbe75",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Function",
"digest": {
"function_hash": "242123492443228769914205363856964949634",
"length": 703.0
},
"target": {
"file": "drivers/net/wireless/realtek/rtw89/cam.c",
"function": "rtw89_cam_init_addr_cam"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f6aff772c9978844529618d86aafb53e5d3ae161",
"id": "CVE-2022-49539-b1a4d898",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Function",
"digest": {
"function_hash": "46152952159159870476877747566324028555",
"length": 425.0
},
"target": {
"file": "drivers/net/wireless/realtek/rtw89/cam.c",
"function": "rtw89_cam_init_bssid_cam"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f6aff772c9978844529618d86aafb53e5d3ae161",
"id": "CVE-2022-49539-b7fadb41",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Function",
"digest": {
"function_hash": "310000665020755685389964795460173395893",
"length": 201.0
},
"target": {
"file": "drivers/net/wireless/realtek/rtw89/ser.c",
"function": "ser_reset_mac_binding"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f6aff772c9978844529618d86aafb53e5d3ae161",
"id": "CVE-2022-49539-be429407",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Function",
"digest": {
"function_hash": "106057099724657482652810582799034651915",
"length": 263.0
},
"target": {
"file": "drivers/net/wireless/realtek/rtw89/cam.c",
"function": "rtw89_cam_reset_key_iter"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b169f877f001a474fb89939842c390518160bcc5",
"id": "CVE-2022-49539-bfc51c9c",
"deprecated": false,
"signature_version": "v1"
},
{
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"193234159149452472543293123345343716106",
"252352625785535920239463927519215845200",
"35240685517833498434005048422034006696",
"184327700455132691024853671733879885435",
"176174878005180764222521493972084595369",
"97222202774614246636821165264031486676",
"212869200269695990421400716510237113401",
"48472884814151645110156479994326395704",
"7963877577158482090991705471266441033",
"237330653010110910378830507836772054378",
"276842468830673007654220963813511301845",
"308417819194221269163943717874593374412"
]
},
"target": {
"file": "drivers/net/wireless/realtek/rtw89/cam.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b169f877f001a474fb89939842c390518160bcc5",
"id": "CVE-2022-49539-cda0e713",
"deprecated": false,
"signature_version": "v1"
}
]