Skip to content
CVE PROGRAM SOURCE RECORDUnscored

CVE-2022-48715

scsi: bnx2fc: Make bnx2fc_recv_frame() mp safe

Description

In the Linux kernel, the following vulnerability has been resolved: scsi: bnx2fc: Make bnx2fc_recv_frame() mp safe Running tests with a debug kernel shows that bnx2fc_recv_frame() is modifying the per_cpu lport stats counters in a non-mpsafe way. Just boot a debug kernel and run the bnx2fc driver with the hardware enabled. [ 1391.699147] BUG: using smp_processor_id() in preemptible [00000000] code: bnx2fc_ [ 1391.699160] caller is bnx2fc_recv_frame+0xbf9/0x1760 [bnx2fc] [ 1391.699174] CPU: 2 PID: 4355 Comm: bnx2fc_l2_threa Kdump: loaded Tainted: G B [ 1391.699180] Hardware name: HP ProLiant DL120 G7, BIOS J01 07/01/2013 [ 1391.699183] Call Trace: [ 1391.699188] dump_stack_lvl+0x57/0x7d [ 1391.699198] check_preemption_disabled+0xc8/0xd0 [ 1391.699205] bnx2fc_recv_frame+0xbf9/0x1760 [bnx2fc] [ 1391.699215] ? do_raw_spin_trylock+0xb5/0x180 [ 1391.699221] ? bnx2fc_npiv_create_vports.isra.0+0x4e0/0x4e0 [bnx2fc] [ 1391.699229] ? bnx2fc_l2_rcv_thread+0xb7/0x3a0 [bnx2fc] [ 1391.699240] bnx2fc_l2_rcv_thread+0x1af/0x3a0 [bnx2fc] [ 1391.699250] ? bnx2fc_ulp_init+0xc0/0xc0 [bnx2fc] [ 1391.699258] kthread+0x364/0x420 [ 1391.699263] ? _raw_spin_unlock_irq+0x24/0x50 [ 1391.699268] ? set_kthread_struct+0x100/0x100 [ 1391.699273] ret_from_fork+0x22/0x30 Restore the old get_cpu/put_cpu code with some modifications to reduce the size of the critical section.

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

  • d576a5e80cd07ea7049f8fd7b303c14df7b5d7d2 to < 3a345198a7c2d1db2526dc60b77052f75de019d3affected
  • d576a5e80cd07ea7049f8fd7b303c14df7b5d7d2 to < 471085571f926a1fe6b1bed095638994dbf23990affected
  • d576a5e80cd07ea7049f8fd7b303c14df7b5d7d2 to < 003bcee66a8f0e76157eb3af369c173151901d97affected
  • d576a5e80cd07ea7049f8fd7b303c14df7b5d7d2 to < 53e4f71763c61a557283eb43301efd671922d1e8affected
  • d576a5e80cd07ea7049f8fd7b303c14df7b5d7d2 to < ec4334152dae175dbd8fd5bde1d2139bbe7b42d0affected
  • d576a5e80cd07ea7049f8fd7b303c14df7b5d7d2 to < 2f5a1ac68bdf2899ce822ab845081922ea8c588eaffected
  • d576a5e80cd07ea7049f8fd7b303c14df7b5d7d2 to < 2d24336c7214b281b51860e54783dfc65f1248dfaffected
  • d576a5e80cd07ea7049f8fd7b303c14df7b5d7d2 to < 936bd03405fc83ba039d42bc93ffd4b88418f1d3affected

Linux Linux

Default version status: affected

  • 3.16affected
  • 0 to < 3.16unaffected
  • 4.9.300 to ≤ 4.9.*unaffected
  • 4.14.265 to ≤ 4.14.*unaffected
  • 4.19.228 to ≤ 4.19.*unaffected
  • 5.4.178 to ≤ 5.4.*unaffected
  • 5.10.99 to ≤ 5.10.*unaffected
  • 5.15.22 to ≤ 5.15.*unaffected
  • 5.16.8 to ≤ 5.16.*unaffected
  • 5.17 to ≤ *unaffected

References