* Backporting of 3659fb5ac29a5e6102bebe494ac789fd47fb78f4 to 5.4?
@ 2025-09-30 8:34 Rolf Eike Beer
2025-09-30 8:43 ` [PATCH 5.4] nvme: fix multipath crash caused by flush request when blktrace is enabled Rolf Eike Beer
2025-09-30 12:34 ` Backporting of 3659fb5ac29a5e6102bebe494ac789fd47fb78f4 to 5.4? Keith Busch
0 siblings, 2 replies; 3+ messages in thread
From: Rolf Eike Beer @ 2025-09-30 8:34 UTC (permalink / raw)
To: Keith Busch, Jens Axboe, Christoph Hellwig, Sagi Grimberg
Cc: linux-nvme, stable
[-- Attachment #1: Type: text/plain, Size: 873 bytes --]
Hi all,
I just noticed that 3659fb5ac29a5e6102bebe494ac789fd47fb78f4 ("nvme: fix
multipath crash caused by flush request when blktrace is enabled") has not been
backported into 5.4 stable kernels, leaving CVE-2022-50388 unfixed. I assume
this has happened because it did not trivially apply.
Is this assumption correct? In this case please see the patch I'll send as
reply. If not, what is the reason?
Regards,
Eike
--
Rolf Eike Beer
emlix GmbH
Headquarters: Berliner Str. 12, 37073 Göttingen, Germany
Phone +49 (0)551 30664-0, e-mail info@emlix.com
District Court of Göttingen, Registry Number HR B 3160
Managing Directors: Heike Jordan, Dr. Uwe Kracke
VAT ID No. DE 205 198 055
Office Berlin: Panoramastr. 1, 10178 Berlin, Germany
Office Bonn: Bachstr. 6, 53115 Bonn, Germany
http://www.emlix.com
emlix - your embedded Linux partner
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 350 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 5.4] nvme: fix multipath crash caused by flush request when blktrace is enabled
2025-09-30 8:34 Backporting of 3659fb5ac29a5e6102bebe494ac789fd47fb78f4 to 5.4? Rolf Eike Beer
@ 2025-09-30 8:43 ` Rolf Eike Beer
2025-09-30 12:34 ` Backporting of 3659fb5ac29a5e6102bebe494ac789fd47fb78f4 to 5.4? Keith Busch
1 sibling, 0 replies; 3+ messages in thread
From: Rolf Eike Beer @ 2025-09-30 8:43 UTC (permalink / raw)
To: Keith Busch, Jens Axboe, Christoph Hellwig, Sagi Grimberg,
Yanjun Zhang
Cc: linux-nvme, stable
From: Yanjun Zhang <zhangyanjun@cestc.cn>
Date: Thu, 22 Dec 2022 09:57:21 +0800
commit 3659fb5ac29a5e6102bebe494ac789fd47fb78f4 upstream.
The flush request initialized by blk_kick_flush has NULL bio,
and it may be dealt with nvme_end_req during io completion.
When blktrace is enabled, nvme_trace_bio_complete with multipath
activated trying to access NULL pointer bio from flush request
results in the following crash:
[ 2517.831677] BUG: kernel NULL pointer dereference, address: 000000000000001a
[ 2517.835213] #PF: supervisor read access in kernel mode
[ 2517.838724] #PF: error_code(0x0000) - not-present page
[ 2517.842222] PGD 7b2d51067 P4D 0
[ 2517.845684] Oops: 0000 [#1] SMP NOPTI
[ 2517.849125] CPU: 2 PID: 732 Comm: kworker/2:1H Kdump: loaded Tainted: G S 5.15.67-0.cl9.x86_64 #1
[ 2517.852723] Hardware name: XFUSION 2288H V6/BC13MBSBC, BIOS 1.13 07/27/2022
[ 2517.856358] Workqueue: nvme_tcp_wq nvme_tcp_io_work [nvme_tcp]
[ 2517.859993] RIP: 0010:blk_add_trace_bio_complete+0x6/0x30
[ 2517.863628] Code: 1f 44 00 00 48 8b 46 08 31 c9 ba 04 00 10 00 48 8b 80 50 03 00 00 48 8b 78 50 e9 e5 fe ff ff 0f 1f 44 00 00 41 54 49 89 f4 55 <0f> b6 7a 1a 48 89 d5 e8 3e 1c 2b 00 48 89 ee 4c 89 e7 5d 89 c1 ba
[ 2517.871269] RSP: 0018:ff7f6a008d9dbcd0 EFLAGS: 00010286
[ 2517.875081] RAX: ff3d5b4be00b1d50 RBX: 0000000002040002 RCX: ff3d5b0a270f2000
[ 2517.878966] RDX: 0000000000000000 RSI: ff3d5b0b021fb9f8 RDI: 0000000000000000
[ 2517.882849] RBP: ff3d5b0b96a6fa00 R08: 0000000000000001 R09: 0000000000000000
[ 2517.886718] R10: 000000000000000c R11: 000000000000000c R12: ff3d5b0b021fb9f8
[ 2517.890575] R13: 0000000002000000 R14: ff3d5b0b021fb1b0 R15: 0000000000000018
[ 2517.894434] FS: 0000000000000000(0000) GS:ff3d5b42bfc80000(0000) knlGS:0000000000000000
[ 2517.898299] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 2517.902157] CR2: 000000000000001a CR3: 00000004f023e005 CR4: 0000000000771ee0
[ 2517.906053] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 2517.909930] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[ 2517.913761] PKRU: 55555554
[ 2517.917558] Call Trace:
[ 2517.921294] <TASK>
[ 2517.924982] nvme_complete_rq+0x1c3/0x1e0 [nvme_core]
[ 2517.928715] nvme_tcp_recv_pdu+0x4d7/0x540 [nvme_tcp]
[ 2517.932442] nvme_tcp_recv_skb+0x4f/0x240 [nvme_tcp]
[ 2517.936137] ? nvme_tcp_recv_pdu+0x540/0x540 [nvme_tcp]
[ 2517.939830] tcp_read_sock+0x9c/0x260
[ 2517.943486] nvme_tcp_try_recv+0x65/0xa0 [nvme_tcp]
[ 2517.947173] nvme_tcp_io_work+0x64/0x90 [nvme_tcp]
[ 2517.950834] process_one_work+0x1e8/0x390
[ 2517.954473] worker_thread+0x53/0x3c0
[ 2517.958069] ? process_one_work+0x390/0x390
[ 2517.961655] kthread+0x10c/0x130
[ 2517.965211] ? set_kthread_struct+0x40/0x40
[ 2517.968760] ret_from_fork+0x1f/0x30
[ 2517.972285] </TASK>
To avoid this situation, add a NULL check for req->bio before
calling trace_block_bio_complete.
Signed-off-by: Yanjun Zhang <zhangyanjun@cestc.cn>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Rolf Eike Beer <eb@emlix.com>
---
drivers/nvme/host/nvme.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Please check if I have messed up sending the original From:/Date:.
diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h
index c492d7d323987..e81bb16a19ebb 100644
--- a/drivers/nvme/host/nvme.h
+++ b/drivers/nvme/host/nvme.h
@@ -587,7 +587,7 @@ static inline void nvme_trace_bio_complete(struct request *req,
{
struct nvme_ns *ns = req->q->queuedata;
- if (req->cmd_flags & REQ_NVME_MPATH)
+ if ((req->cmd_flags & REQ_NVME_MPATH) && req->bio)
trace_block_bio_complete(ns->head->disk->queue,
req->bio, status);
}
--
2.51.0
--
Rolf Eike Beer
emlix GmbH
Headquarters: Berliner Str. 12, 37073 Göttingen, Germany
Phone +49 (0)551 30664-0, e-mail info@emlix.com
District Court of Göttingen, Registry Number HR B 3160
Managing Directors: Heike Jordan, Dr. Uwe Kracke
VAT ID No. DE 205 198 055
Office Berlin: Panoramastr. 1, 10178 Berlin, Germany
Office Bonn: Bachstr. 6, 53115 Bonn, Germany
http://www.emlix.com
emlix - your embedded Linux partner
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: Backporting of 3659fb5ac29a5e6102bebe494ac789fd47fb78f4 to 5.4?
2025-09-30 8:34 Backporting of 3659fb5ac29a5e6102bebe494ac789fd47fb78f4 to 5.4? Rolf Eike Beer
2025-09-30 8:43 ` [PATCH 5.4] nvme: fix multipath crash caused by flush request when blktrace is enabled Rolf Eike Beer
@ 2025-09-30 12:34 ` Keith Busch
1 sibling, 0 replies; 3+ messages in thread
From: Keith Busch @ 2025-09-30 12:34 UTC (permalink / raw)
To: Rolf Eike Beer
Cc: Jens Axboe, Christoph Hellwig, Sagi Grimberg, linux-nvme, stable
On Tue, Sep 30, 2025 at 10:34:35AM +0200, Rolf Eike Beer wrote:
> Hi all,
>
> I just noticed that 3659fb5ac29a5e6102bebe494ac789fd47fb78f4 ("nvme: fix
> multipath crash caused by flush request when blktrace is enabled") has not been
> backported into 5.4 stable kernels, leaving CVE-2022-50388 unfixed. I assume
> this has happened because it did not trivially apply.
>
> Is this assumption correct? In this case please see the patch I'll send as
> reply. If not, what is the reason?
It doesn't apply, though it's a trivial conflict resolution.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2025-09-30 12:34 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-09-30 8:34 Backporting of 3659fb5ac29a5e6102bebe494ac789fd47fb78f4 to 5.4? Rolf Eike Beer
2025-09-30 8:43 ` [PATCH 5.4] nvme: fix multipath crash caused by flush request when blktrace is enabled Rolf Eike Beer
2025-09-30 12:34 ` Backporting of 3659fb5ac29a5e6102bebe494ac789fd47fb78f4 to 5.4? Keith Busch
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox