CVE-2022-48820 – phy: stm32: fix a refcount leak in stm32_usbphyc_pll_enable()
https://notcve.org/view.php?id=CVE-2022-48820
In the Linux kernel, the following vulnerability has been resolved: phy: stm32: fix a refcount leak in stm32_usbphyc_pll_enable() This error path needs to decrement "usbphyc->n_pll_cons.counter" before returning. • https://git.kernel.org/stable/c/5b1af71280abd82efbe28cd28d553363dfde0a34 https://git.kernel.org/stable/c/94b16ca86ab688ed6fad4548f70137f93cf1f0a9 https://git.kernel.org/stable/c/0ad1a88fa3eb0ded7798f52b79bc33f75fc9a6d2 https://git.kernel.org/stable/c/cfc826c88a79e22ba5d8001556eb2c7efd8a01b6 •
CVE-2022-48819 – tcp: take care of mixed splice()/sendmsg(MSG_ZEROCOPY) case
https://notcve.org/view.php?id=CVE-2022-48819
In the Linux kernel, the following vulnerability has been resolved: tcp: take care of mixed splice()/sendmsg(MSG_ZEROCOPY) case syzbot found that mixing sendpage() and sendmsg(MSG_ZEROCOPY) calls over the same TCP socket would again trigger the infamous warning in inet_sock_destruct() WARN_ON(sk_forward_alloc_get(sk)); While Talal took into account a mix of regular copied data and MSG_ZEROCOPY one in the same skb, the sendpage() path has been forgotten. We want the charging to happen for sendpage(), because pages could be coming from a pipe. What is missing is the downgrading of pure zerocopy status to make sure sk_forward_alloc will stay synced. Add tcp_downgrade_zcopy_pure() helper so that we can use it from the two callers. • https://git.kernel.org/stable/c/9b65b17db72313b7a4fe9bc9502928c88be57986 https://git.kernel.org/stable/c/47f3860c4931175f112f28dcac66eacca9b1040f https://git.kernel.org/stable/c/f8d9d938514f46c4892aff6bfe32f425e84d81cc •
CVE-2022-48818 – net: dsa: mv88e6xxx: don't use devres for mdiobus
https://notcve.org/view.php?id=CVE-2022-48818
In the Linux kernel, the following vulnerability has been resolved: net: dsa: mv88e6xxx: don't use devres for mdiobus As explained in commits: 74b6d7d13307 ("net: dsa: realtek: register the MDIO bus under devres") 5135e96a3dd2 ("net: dsa: don't allocate the slave_mii_bus using devres") mdiobus_free() will panic when called from devm_mdiobus_free() <- devres_release_all() <- __device_release_driver(), and that mdiobus was not previously unregistered. The mv88e6xxx is an MDIO device, so the initial set of constraints that I thought would cause this (I2C or SPI buses which call ->remove on ->shutdown) do not apply. But there is one more which applies here. If the DSA master itself is on a bus that calls ->remove from ->shutdown (like dpaa2-eth, which is on the fsl-mc bus), there is a device link between the switch and the DSA master, and device_links_unbind_consumers() will unbind the Marvell switch driver on shutdown. systemd-shutdown[1]: Powering off. mv88e6085 0x0000000008b96000:00 sw_gl0: Link is Down fsl-mc dpbp.9: Removing from iommu group 7 fsl-mc dpbp.8: Removing from iommu group 7 ------------[ cut here ]------------ kernel BUG at drivers/net/phy/mdio_bus.c:677! Internal error: Oops - BUG: 0 [#1] PREEMPT SMP Modules linked in: CPU: 0 PID: 1 Comm: systemd-shutdow Not tainted 5.16.5-00040-gdc05f73788e5 #15 pc : mdiobus_free+0x44/0x50 lr : devm_mdiobus_free+0x10/0x20 Call trace: mdiobus_free+0x44/0x50 devm_mdiobus_free+0x10/0x20 devres_release_all+0xa0/0x100 __device_release_driver+0x190/0x220 device_release_driver_internal+0xac/0xb0 device_links_unbind_consumers+0xd4/0x100 __device_release_driver+0x4c/0x220 device_release_driver_internal+0xac/0xb0 device_links_unbind_consumers+0xd4/0x100 __device_release_driver+0x94/0x220 device_release_driver+0x28/0x40 bus_remove_device+0x118/0x124 device_del+0x174/0x420 fsl_mc_device_remove+0x24/0x40 __fsl_mc_device_remove+0xc/0x20 device_for_each_child+0x58/0xa0 dprc_remove+0x90/0xb0 fsl_mc_driver_remove+0x20/0x5c __device_release_driver+0x21c/0x220 device_release_driver+0x28/0x40 bus_remove_device+0x118/0x124 device_del+0x174/0x420 fsl_mc_bus_remove+0x80/0x100 fsl_mc_bus_shutdown+0xc/0x1c platform_shutdown+0x20/0x30 device_shutdown+0x154/0x330 kernel_power_off+0x34/0x6c __do_sys_reboot+0x15c/0x250 __arm64_sys_reboot+0x20/0x30 invoke_syscall.constprop.0+0x4c/0xe0 do_el0_svc+0x4c/0x150 el0_svc+0x24/0xb0 el0t_64_sync_handler+0xa8/0xb0 el0t_64_sync+0x178/0x17c So the same treatment must be applied to all DSA switch drivers, which is: either use devres for both the mdiobus allocation and registration, or don't use devres at all. The Marvell driver already has a good structure for mdiobus removal, so just plug in mdiobus_free and get rid of devres. • https://git.kernel.org/stable/c/ac3a68d56651c3dad2c12c7afce065fe15267f44 https://git.kernel.org/stable/c/8ccebe77df6e0d88c72ba5e69cf1835927e53b6c https://git.kernel.org/stable/c/8b626d45127d6f5ada7d815b83cfdc09e8cb1394 https://git.kernel.org/stable/c/1b451c3994a2d322f8e55032c62c8b47b7d95900 https://git.kernel.org/stable/c/f53a2ce893b2c7884ef94471f170839170a4eba0 •
CVE-2022-48817 – net: dsa: ar9331: register the mdiobus under devres
https://notcve.org/view.php?id=CVE-2022-48817
In the Linux kernel, the following vulnerability has been resolved: net: dsa: ar9331: register the mdiobus under devres As explained in commits: 74b6d7d13307 ("net: dsa: realtek: register the MDIO bus under devres") 5135e96a3dd2 ("net: dsa: don't allocate the slave_mii_bus using devres") mdiobus_free() will panic when called from devm_mdiobus_free() <- devres_release_all() <- __device_release_driver(), and that mdiobus was not previously unregistered. The ar9331 is an MDIO device, so the initial set of constraints that I thought would cause this (I2C or SPI buses which call ->remove on ->shutdown) do not apply. But there is one more which applies here. If the DSA master itself is on a bus that calls ->remove from ->shutdown (like dpaa2-eth, which is on the fsl-mc bus), there is a device link between the switch and the DSA master, and device_links_unbind_consumers() will unbind the ar9331 switch driver on shutdown. So the same treatment must be applied to all DSA switch drivers, which is: either use devres for both the mdiobus allocation and registration, or don't use devres at all. The ar9331 driver doesn't have a complex code structure for mdiobus removal, so just replace of_mdiobus_register with the devres variant in order to be all-devres and ensure that we don't free a still-registered bus. • https://git.kernel.org/stable/c/ac3a68d56651c3dad2c12c7afce065fe15267f44 https://git.kernel.org/stable/c/475ce5dcf2d88fd4f3c213a0ac944e3e40702970 https://git.kernel.org/stable/c/aae1c6a1d3d696fc33b609fb12fe744a556d1dc5 https://git.kernel.org/stable/c/f1842a8cb71de4d7eb75a86f76e88c7ee739218c https://git.kernel.org/stable/c/50facd86e9fbc4b93fe02e5fe05776047f45dbfb •
CVE-2022-48816 – SUNRPC: lock against ->sock changing during sysfs read
https://notcve.org/view.php?id=CVE-2022-48816
In the Linux kernel, the following vulnerability has been resolved: SUNRPC: lock against ->sock changing during sysfs read ->sock can be set to NULL asynchronously unless ->recv_mutex is held. So it is important to hold that mutex. Otherwise a sysfs read can trigger an oops. Commit 17f09d3f619a ("SUNRPC: Check if the xprt is connected before handling sysfs reads") appears to attempt to fix this problem, but it only narrows the race window. • https://git.kernel.org/stable/c/a8482488a7d6d320f63a9ee1912dbb5ae5b80a61 https://git.kernel.org/stable/c/21a2be1a5145d072deedc7cdc5b2d17380abea75 https://git.kernel.org/stable/c/77876473912d1bf1ed16bffa1674e5ff0f499f25 https://git.kernel.org/stable/c/9482ab4540f5bcc869b44c067ae99b5fca16bd07 https://git.kernel.org/stable/c/b49ea673e119f59c71645e2f65b3ccad857c90ee https://access.redhat.com/security/cve/CVE-2022-48816 https://bugzilla.redhat.com/show_bug.cgi?id=2298155 • CWE-476: NULL Pointer Dereference •