CVE-2023-52877: usb: typec: tcpm: Fix NULL pointer dereference in tcpm_pd_svdm()

Description

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

usb: typec: tcpm: Fix NULL pointer dereference in tcpm_pd_svdm()

It is possible that typec_register_partner() returns ERR_PTR on failure.
When port->partner is an error, a NULL pointer dereference may occur as
shown below.

[91222.095236][ T319] typec port0: failed to register partner (-17)
...
[91225.061491][ T319] Unable to handle kernel NULL pointer dereference
at virtual address 000000000000039f
[91225.274642][ T319] pc : tcpm_pd_data_request+0x310/0x13fc
[91225.274646][ T319] lr : tcpm_pd_data_request+0x298/0x13fc
[91225.308067][ T319] Call trace:
[91225.308070][ T319] tcpm_pd_data_request+0x310/0x13fc
[91225.308073][ T319] tcpm_pd_rx_handler+0x100/0x9e8
[91225.355900][ T319] kthread_worker_fn+0x178/0x58c
[91225.355902][ T319] kthread+0x150/0x200
[91225.355905][ T319] ret_from_fork+0x10/0x30

Add a check for port->partner to avoid dereferencing a NULL pointer.

Classification

CVE ID: CVE-2023-52877

Affected Products

Vendor: Linux

Product: Linux

Exploit Prediction Scoring System (EPSS)

EPSS Score: 0.04% (probability of being exploited)

EPSS Percentile: 5.06% (scored less or equal to compared to others)

EPSS Date: 2025-02-03 (when was this score calculated)

References

https://git.kernel.org/stable/c/e5f53a68a596e04df3fde3099273435a30b6fdac
https://git.kernel.org/stable/c/e7a802447c491903aa7cb45967aa2a934a4e63fc
https://git.kernel.org/stable/c/9ee038590d808a95d16adf92818dcd4752273c08
https://git.kernel.org/stable/c/b37a168c0137156042a0ca9626651b5a789e822b
https://git.kernel.org/stable/c/4987daf86c152ff882d51572d154ad12e4ff3a4b

Timeline