Skip to content
CVE PROGRAM SOURCE RECORD7.8 High

CVE-2022-48751

net/smc: Transitional solution for clcsock race issue

Description

In the Linux kernel, the following vulnerability has been resolved: net/smc: Transitional solution for clcsock race issue We encountered a crash in smc_setsockopt() and it is caused by accessing smc->clcsock after clcsock was released. BUG: kernel NULL pointer dereference, address: 0000000000000020 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page PGD 0 P4D 0 Oops: 0000 [#1] PREEMPT SMP PTI CPU: 1 PID: 50309 Comm: nginx Kdump: loaded Tainted: G E 5.16.0-rc4+ #53 RIP: 0010:smc_setsockopt+0x59/0x280 [smc] Call Trace: <TASK> __sys_setsockopt+0xfc/0x190 __x64_sys_setsockopt+0x20/0x30 do_syscall_64+0x34/0x90 entry_SYSCALL_64_after_hwframe+0x44/0xae RIP: 0033:0x7f16ba83918e </TASK> This patch tries to fix it by holding clcsock_release_lock and checking whether clcsock has already been released before access. In case that a crash of the same reason happens in smc_getsockopt() or smc_switch_to_fallback(), this patch also checkes smc->clcsock in them too. And the caller of smc_switch_to_fallback() will identify whether fallback succeeds according to the return value.

Affected products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

Linux Linux

Default version status: unaffected

  • fd57770dd198f5b2ddd5b9e6bf282cf98d63adb9 to < 38f0bdd548fd2ef5d481b88d8a2bfef968452e34affected
  • fd57770dd198f5b2ddd5b9e6bf282cf98d63adb9 to < 4284225cd8001e134f5cf533a7cd244bbb654d0faffected
  • fd57770dd198f5b2ddd5b9e6bf282cf98d63adb9 to < c0bf3d8a943b6f2e912b7c1de03e2ef28e76f760affected
  • d1d004585b40c212b338fc8a40cbaaf230ea4703affected
  • 4.19.299 to < 4.20affected

Linux Linux

Default version status: affected

  • 5.1affected
  • 0 to < 5.1unaffected
  • 5.15.19 to ≤ 5.15.*unaffected
  • 5.16.5 to ≤ 5.16.*unaffected
  • 5.17 to ≤ *unaffected

References