In the Linux kernel, the following vulnerability has been resolved: ASoC: wm_adsp: Fix NULL dereference when removing firmware controls In wm_adsp_control_remove() check that the priv pointer is not NULL before attempting to cleanup what it points to. When cs_dsp creates a control it calls wm_adsp_control_add_cb() so that wm_adsp can create its own private control data. There are two cases where private data is not created: 1. The control is a SYSTEM control, so an ALSA control is not created. 2. The codec driver has registered a control_add() callback that hides the control, so wm_adsp_control_add() is not called. When cs_dsp_remove destroys its control list it calls wm_adsp_control_remove() for each control. But wm_adsp_control_remove() was attempting to cleanup the private data pointed to by cs_ctl->priv without checking the pointer for NULL.
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
| Attack Vector | LOCAL |
|---|---|
| Attack Complexity | LOW |
| Privileges Required | LOW |
| User Interaction | NONE |
| Scope | UNCHANGED |
| Confidentiality Impact | NONE |
| Integrity Impact | NONE |
| Availability Impact | HIGH |
| Source | Type | Description |
|---|---|---|
| [email protected] | Primary |
en
CWE-476
|
| Vendor | Product | Version | Update | Type |
|---|---|---|---|---|
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd370399480> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd319c76e80> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd3408f4300> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd319eb9040> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7fd36b233480> | Operating System |
| linux | linux_kernel | 7.1 | <built-in method update of dict object at 0x7fd340144b00> | Operating System |
| linux | linux_kernel | 7.1 | <built-in method update of dict object at 0x7fd39c445540> | Operating System |
| linux | linux_kernel | 7.1 | <built-in method update of dict object at 0x7fd319eba800> | Operating System |
| linux | linux_kernel | 7.1 | <built-in method update of dict object at 0x7fd39c444180> | Operating System |
| linux | linux_kernel | 7.1 | <built-in method update of dict object at 0x7fd36b232840> | Operating System |
| linux | linux_kernel | 7.1 | <built-in method update of dict object at 0x7fd3694e5c80> | Operating System |
| linux | linux_kernel | 7.1 | <built-in method update of dict object at 0x7fd38677d080> | Operating System |
| Vulnerable | CPE |
|---|---|
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:7.1:rc1:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:7.1:rc2:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:7.1:rc3:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:7.1:rc4:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:7.1:rc5:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:7.1:rc6:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:7.1:rc7:*:*:*:*:*:* |