CVE-2023-52510: ieee802154: ca8210: Fix a potential UAF in ca8210_probe

Description

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

ieee802154: ca8210: Fix a potential UAF in ca8210_probe

If of_clk_add_provider() fails in ca8210_register_ext_clock(),
it calls clk_unregister() to release priv->clk and returns an
error. However, the caller ca8210_probe() then calls ca8210_remove(),
where priv->clk is freed again in ca8210_unregister_ext_clock(). In
this case, a use-after-free may happen in the second time we call
clk_unregister().

Fix this by removing the first clk_unregister(). Also, priv->clk could
be an error code on failure of clk_register_fixed_rate(). Use
IS_ERR_OR_NULL to catch this case in ca8210_unregister_ext_clock().

Classification

CVE ID: CVE-2023-52510

Affected Products

Vendor: Linux

Product: Linux

Exploit Prediction Scoring System (EPSS)

EPSS Score: 0.04% (probability of being exploited)

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

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

References

https://git.kernel.org/stable/c/28b68cba378e3e50a4082b65f262bc4f2c7c2add
https://git.kernel.org/stable/c/cdb46be93c1f7bbf2c4649e9fc5fb147cfb5245d
https://git.kernel.org/stable/c/85c2857ef90041f567ce98722c1c342c4d31f4bc
https://git.kernel.org/stable/c/55e06850c7894f00d41b767c5f5665459f83f58f
https://git.kernel.org/stable/c/84c6aa0ae5c4dc121f9996bb8fed46c80909d80e
https://git.kernel.org/stable/c/217efe32a45249eb07dcd7197e8403de98345e66
https://git.kernel.org/stable/c/becf5c147198f4345243c5df0c4f035415491640
https://git.kernel.org/stable/c/f990874b1c98fe8e57ee9385669f501822979258

Timeline