{"id":"DEBIAN-CVE-2024-35979","details":"In the Linux kernel, the following vulnerability has been resolved:  raid1: fix use-after-free for original bio in raid1_write_request()  r1_bio-\u003ebios[] is used to record new bios that will be issued to underlying disks, however, in raid1_write_request(), r1_bio-\u003ebios[] will set to the original bio temporarily. Meanwhile, if blocked rdev is set, free_r1bio() will be called causing that all r1_bio-\u003ebios[] to be freed:  raid1_write_request()  r1_bio = alloc_r1bio(mddev, bio); -\u003e r1_bio-\u003ebios[] is NULL  for (i = 0;  i \u003c disks; i++) -\u003e for each rdev in conf   // first rdev is normal   r1_bio-\u003ebios[0] = bio; -\u003e set to original bio   // second rdev is blocked   if (test_bit(Blocked, &rdev-\u003eflags))    break   if (blocked_rdev)   free_r1bio()    put_all_bios()     bio_put(r1_bio-\u003ebios[0]) -\u003e original bio is freed  Test scripts:  mdadm -CR /dev/md0 -l1 -n4 /dev/sd[abcd] --assume-clean fio -filename=/dev/md0 -ioengine=libaio -rw=write -bs=4k -numjobs=1 \\     -iodepth=128 -name=test -direct=1 echo blocked \u003e /sys/block/md0/md/rd2/state  Test result:  BUG bio-264 (Not tainted): Object already free -----------------------------------------------------------------------------  Allocated in mempool_alloc_slab+0x24/0x50 age=1 cpu=1 pid=869  kmem_cache_alloc+0x324/0x480  mempool_alloc_slab+0x24/0x50  mempool_alloc+0x6e/0x220  bio_alloc_bioset+0x1af/0x4d0  blkdev_direct_IO+0x164/0x8a0  blkdev_write_iter+0x309/0x440  aio_write+0x139/0x2f0  io_submit_one+0x5ca/0xb70  __do_sys_io_submit+0x86/0x270  __x64_sys_io_submit+0x22/0x30  do_syscall_64+0xb1/0x210  entry_SYSCALL_64_after_hwframe+0x6c/0x74 Freed in mempool_free_slab+0x1f/0x30 age=1 cpu=1 pid=869  kmem_cache_free+0x28c/0x550  mempool_free_slab+0x1f/0x30  mempool_free+0x40/0x100  bio_free+0x59/0x80  bio_put+0xf0/0x220  free_r1bio+0x74/0xb0  raid1_make_request+0xadf/0x1150  md_handle_request+0xc7/0x3b0  md_submit_bio+0x76/0x130  __submit_bio+0xd8/0x1d0  submit_bio_noacct_nocheck+0x1eb/0x5c0  submit_bio_noacct+0x169/0xd40  submit_bio+0xee/0x1d0  blkdev_direct_IO+0x322/0x8a0  blkdev_write_iter+0x309/0x440  aio_write+0x139/0x2f0  Since that bios for underlying disks are not allocated yet, fix this problem by using mempool_free() directly to free the r1_bio.","modified":"2026-09-15T09:03:14.076390582Z","published":"2024-05-20T10:15:12.480Z","upstream":["CVE-2024-35979"],"references":[{"type":"ADVISORY","url":"https://security-tracker.debian.org/tracker/CVE-2024-35979"}],"affected":[{"package":{"name":"linux","ecosystem":"Debian:13","purl":"pkg:deb/debian/linux?arch=source&distro=trixie"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.8.9-1"}]}],"ecosystem_specific":{"urgency":"not yet assigned"},"database_specific":{"source":"https://storage.googleapis.com/osv-test-debian-osv/debian-cve-osv/DEBIAN-CVE-2024-35979.json"}},{"package":{"name":"linux","ecosystem":"Debian:14","purl":"pkg:deb/debian/linux?arch=source&distro=forky"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.8.9-1"}]}],"ecosystem_specific":{"urgency":"not yet assigned"},"database_specific":{"source":"https://storage.googleapis.com/osv-test-debian-osv/debian-cve-osv/DEBIAN-CVE-2024-35979.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"}]}