In the Linux kernel, the following vulnerability has been resolved:
xprtrdma: treat all calls not a bcall when bc_serv is NULL
When a rdma server returns a fault format reply, nfs v3 client may treats it as a bcall when bc service is not exist.
The debug message at rpcrdmabcreceive_call are,
[56579.837169] RPC: rpcrdmabcreceivecall: callback XID 00000001, length=20 [56579.837174] RPC: rpcrdmabcreceivecall: 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04
After that, rpcrdmabcreceive_call will meets NULL pointer as,
[ 226.057890] BUG: unable to handle kernel NULL pointer dereference at 00000000000000c8 ... [ 226.058704] RIP: 0010:rawspinlock+0xc/0x20 ... [ 226.059732] Call Trace: [ 226.059878] rpcrdmabcreceivecall+0x138/0x327 [rpcrdma] [ 226.060011] _ibprocesscq+0x89/0x170 [ibcore] [ 226.060092] ibcqpollwork+0x26/0x80 [ibcore] [ 226.060257] processonework+0x1a7/0x360 [ 226.060367] ? createworker+0x1a0/0x1a0 [ 226.060440] workerthread+0x30/0x390 [ 226.060500] ? createworker+0x1a0/0x1a0 [ 226.060574] kthread+0x116/0x130 [ 226.060661] ? kthreadflushworkfn+0x10/0x10 [ 226.060724] retfromfork+0x35/0x40 ...