In the Linux kernel, the following vulnerability has been resolved:
scsi: qedf: Add pointer checks in qedfupdatelink_speed()
The following trace was observed:
[ 14.042059] Call Trace: [ 14.042061] <IRQ> [ 14.042068] qedflinkupdate+0x144/0x1f0 [qedf] [ 14.042117] qedlinkupdate+0x5c/0x80 [qed] [ 14.042135] qedmcphandlelinkchange+0x2d2/0x410 [qed] [ 14.042155] ? qedsetptt+0x70/0x80 [qed] [ 14.042170] ? qedsetptt+0x70/0x80 [qed] [ 14.042186] ? qedrd+0x13/0x40 [qed] [ 14.042205] qedmcphandleevents+0x437/0x690 [qed] [ 14.042221] ? qedsetptt+0x70/0x80 [qed] [ 14.042239] qedintspdpc+0x3a6/0x3e0 [qed] [ 14.042245] taskletactioncommon.isra.14+0x5a/0x100 [ 14.042250] _dosoftirq+0xe4/0x2f8 [ 14.042253] irqexit+0xf7/0x100 [ 14.042255] doIRQ+0x7f/0xd0 [ 14.042257] commoninterrupt+0xf/0xf [ 14.042259] </IRQ>
API qedflinkupdate() is getting called from QED but by that time shostdata is not initialised. This results in a NULL pointer dereference when we try to dereference shostdata while updating supported_speeds.
Add a NULL pointer check before dereferencing shost_data.