Bug 1220654 (CVE-2021-46994)

Summary: VUL-0: CVE-2021-46994: kernel: can: mcp251x: fix resume from sleep before interface was brought up
Product: [Novell Products] SUSE Security Incidents Reporter: SMASH SMASH <smash_bz>
Component: IncidentsAssignee: Security Team bot <security-team>
Status: RESOLVED FIXED QA Contact: Security Team bot <security-team>
Severity: Normal    
Priority: P3 - Medium CC: gabriele.sonnu, mhocko
Version: unspecified   
Target Milestone: ---   
Hardware: Other   
OS: Other   
URL: https://smash.suse.de/issue/395443/
Whiteboard:
Found By: Security Response Team Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description SMASH SMASH 2024-02-29 10:32:42 UTC
In the Linux kernel, the following vulnerability has been resolved:

can: mcp251x: fix resume from sleep before interface was brought up

Since 8ce8c0abcba3 the driver queues work via priv->restart_work when
resuming after suspend, even when the interface was not previously
enabled. This causes a null dereference error as the workqueue is only
allocated and initialized in mcp251x_open().

To fix this we move the workqueue init to mcp251x_can_probe() as there
is no reason to do it later and repeat it whenever mcp251x_open() is
called.

[mkl: fix error handling in mcp251x_stop()]

References:
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2021-46994
https://www.cve.org/CVERecord?id=CVE-2021-46994
https://git.kernel.org/stable/c/03c427147b2d3e503af258711af4fc792b89b0af
https://git.kernel.org/stable/c/6f8f1c27b577de15f69fefce3c502bb6300d825c
https://git.kernel.org/stable/c/e1e10a390fd9479209c4d834d916ca5e6d5d396b
https://git.kernel.org/stable/c/eecb4df8ec9f896b19ee05bfa632ac6c1dcd8f21
Comment 1 Gabriele Sonnu 2024-02-29 10:41:47 UTC
All affected branches already contain the fix. Closing.
Comment 4 Andrea Mattiazzo 2024-05-31 13:17:07 UTC
All done, closing.