Commit 6d6e54f
aoe: fix the potential use-after-free problem in more places
For fixing CVE-2023-6270, f98364e ("aoe: fix the potential
use-after-free problem in aoecmd_cfg_pkts") makes tx() calling dev_put()
instead of doing in aoecmd_cfg_pkts(). It avoids that the tx() runs
into use-after-free.
Then Nicolai Stange found more places in aoe have potential use-after-free
problem with tx(). e.g. revalidate(), aoecmd_ata_rw(), resend(), probe()
and aoecmd_cfg_rsp(). Those functions also use aoenet_xmit() to push
packet to tx queue. So they should also use dev_hold() to increase the
refcnt of skb->dev.
On the other hand, moving dev_put() to tx() causes that the refcnt of
skb->dev be reduced to a negative value, because corresponding
dev_hold() are not called in revalidate(), aoecmd_ata_rw(), resend(),
probe(), and aoecmd_cfg_rsp(). This patch fixed this issue.
Cc: stable@vger.kernel.org
Link: https://nvd.nist.gov/vuln/detail/CVE-2023-6270
Fixes: f98364e ("aoe: fix the potential use-after-free problem in aoecmd_cfg_pkts")
Reported-by: Nicolai Stange <nstange@suse.com>
Signed-off-by: Chun-Yi Lee <jlee@suse.com>
Link: https://lore.kernel.org/stable/20240624064418.27043-1-jlee%40suse.com
Link: https://lore.kernel.org/r/20241002035458.24401-1-jlee@suse.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>1 parent 14d57ec commit 6d6e54f
1 file changed
+12
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
361 | 361 | | |
362 | 362 | | |
363 | 363 | | |
| 364 | + | |
364 | 365 | | |
365 | 366 | | |
366 | 367 | | |
| |||
401 | 402 | | |
402 | 403 | | |
403 | 404 | | |
| 405 | + | |
| 406 | + | |
404 | 407 | | |
405 | 408 | | |
406 | 409 | | |
| |||
483 | 486 | | |
484 | 487 | | |
485 | 488 | | |
| 489 | + | |
486 | 490 | | |
487 | 491 | | |
488 | | - | |
| 492 | + | |
| 493 | + | |
489 | 494 | | |
| 495 | + | |
490 | 496 | | |
491 | 497 | | |
492 | 498 | | |
| |||
617 | 623 | | |
618 | 624 | | |
619 | 625 | | |
| 626 | + | |
| 627 | + | |
620 | 628 | | |
621 | 629 | | |
622 | 630 | | |
| |||
1395 | 1403 | | |
1396 | 1404 | | |
1397 | 1405 | | |
| 1406 | + | |
1398 | 1407 | | |
1399 | 1408 | | |
1400 | 1409 | | |
| |||
1404 | 1413 | | |
1405 | 1414 | | |
1406 | 1415 | | |
| 1416 | + | |
| 1417 | + | |
1407 | 1418 | | |
1408 | 1419 | | |
1409 | 1420 | | |
| |||
0 commit comments