GHSA-R88M-3GH4-8VP3

Vulnerability from github – Published: 2026-05-08 15:31 – Updated: 2026-05-15 18:30
VLAI
Details

In the Linux kernel, the following vulnerability has been resolved:

dm: remove fake timeout to avoid leak request

Since commit 15f73f5b3e59 ("blk-mq: move failure injection out of blk_mq_complete_request"), drivers are responsible for calling blk_should_fake_timeout() at appropriate code paths and opportunities.

However, the dm driver does not implement its own timeout handler and relies on the timeout handling of its slave devices.

If an io-timeout-fail error is injected to a dm device, the request will be leaked and never completed, causing tasks to hang indefinitely.

Reproduce: 1. prepare dm which has iscsi slave device 2. inject io-timeout-fail to dm echo 1 >/sys/class/block/dm-0/io-timeout-fail echo 100 >/sys/kernel/debug/fail_io_timeout/probability echo 10 >/sys/kernel/debug/fail_io_timeout/times 3. read/write dm 4. iscsiadm -m node -u

Result: hang task like below [ 862.243768] INFO: task kworker/u514:2:151 blocked for more than 122 seconds. [ 862.244133] Tainted: G E 6.19.0-rc1+ #51 [ 862.244337] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. [ 862.244718] task:kworker/u514:2 state:D stack:0 pid:151 tgid:151 ppid:2 task_flags:0x4288060 flags:0x00080000 [ 862.245024] Workqueue: iscsi_ctrl_3:1 __iscsi_unbind_session [scsi_transport_iscsi] [ 862.245264] Call Trace: [ 862.245587] [ 862.245814] __schedule+0x810/0x15c0 [ 862.246557] schedule+0x69/0x180 [ 862.246760] blk_mq_freeze_queue_wait+0xde/0x120 [ 862.247688] elevator_change+0x16d/0x460 [ 862.247893] elevator_set_none+0x87/0xf0 [ 862.248798] blk_unregister_queue+0x12e/0x2a0 [ 862.248995] __del_gendisk+0x231/0x7e0 [ 862.250143] del_gendisk+0x12f/0x1d0 [ 862.250339] sd_remove+0x85/0x130 [sd_mod] [ 862.250650] device_release_driver_internal+0x36d/0x530 [ 862.250849] bus_remove_device+0x1dd/0x3f0 [ 862.251042] device_del+0x38a/0x930 [ 862.252095] __scsi_remove_device+0x293/0x360 [ 862.252291] scsi_remove_target+0x486/0x760 [ 862.252654] __iscsi_unbind_session+0x18a/0x3e0 [scsi_transport_iscsi] [ 862.252886] process_one_work+0x633/0xe50 [ 862.253101] worker_thread+0x6df/0xf10 [ 862.253647] kthread+0x36d/0x720 [ 862.254533] ret_from_fork+0x2a6/0x470 [ 862.255852] ret_from_fork_asm+0x1a/0x30 [ 862.256037]

Remove the blk_should_fake_timeout() check from dm, as dm has no native timeout handling and should not attempt to fake timeouts.

Show details on source website

{
  "affected": [],
  "aliases": [
    "CVE-2026-43314"
  ],
  "database_specific": {
    "cwe_ids": [
      "CWE-772"
    ],
    "github_reviewed": false,
    "github_reviewed_at": null,
    "nvd_published_at": "2026-05-08T14:16:39Z",
    "severity": "MODERATE"
  },
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\ndm: remove fake timeout to avoid leak request\n\nSince commit 15f73f5b3e59 (\"blk-mq: move failure injection out of\nblk_mq_complete_request\"), drivers are responsible for calling\nblk_should_fake_timeout() at appropriate code paths and opportunities.\n\nHowever, the dm driver does not implement its own timeout handler and\nrelies on the timeout handling of its slave devices.\n\nIf an io-timeout-fail error is injected to a dm device, the request\nwill be leaked and never completed, causing tasks to hang indefinitely.\n\nReproduce:\n1. prepare dm which has iscsi slave device\n2. inject io-timeout-fail to dm\n   echo 1 \u003e/sys/class/block/dm-0/io-timeout-fail\n   echo 100 \u003e/sys/kernel/debug/fail_io_timeout/probability\n   echo 10 \u003e/sys/kernel/debug/fail_io_timeout/times\n3. read/write dm\n4. iscsiadm -m node -u\n\nResult: hang task like below\n[  862.243768] INFO: task kworker/u514:2:151 blocked for more than 122 seconds.\n[  862.244133]       Tainted: G            E       6.19.0-rc1+ #51\n[  862.244337] \"echo 0 \u003e /proc/sys/kernel/hung_task_timeout_secs\" disables this message.\n[  862.244718] task:kworker/u514:2  state:D stack:0     pid:151   tgid:151   ppid:2      task_flags:0x4288060 flags:0x00080000\n[  862.245024] Workqueue: iscsi_ctrl_3:1 __iscsi_unbind_session [scsi_transport_iscsi]\n[  862.245264] Call Trace:\n[  862.245587]  \u003cTASK\u003e\n[  862.245814]  __schedule+0x810/0x15c0\n[  862.246557]  schedule+0x69/0x180\n[  862.246760]  blk_mq_freeze_queue_wait+0xde/0x120\n[  862.247688]  elevator_change+0x16d/0x460\n[  862.247893]  elevator_set_none+0x87/0xf0\n[  862.248798]  blk_unregister_queue+0x12e/0x2a0\n[  862.248995]  __del_gendisk+0x231/0x7e0\n[  862.250143]  del_gendisk+0x12f/0x1d0\n[  862.250339]  sd_remove+0x85/0x130 [sd_mod]\n[  862.250650]  device_release_driver_internal+0x36d/0x530\n[  862.250849]  bus_remove_device+0x1dd/0x3f0\n[  862.251042]  device_del+0x38a/0x930\n[  862.252095]  __scsi_remove_device+0x293/0x360\n[  862.252291]  scsi_remove_target+0x486/0x760\n[  862.252654]  __iscsi_unbind_session+0x18a/0x3e0 [scsi_transport_iscsi]\n[  862.252886]  process_one_work+0x633/0xe50\n[  862.253101]  worker_thread+0x6df/0xf10\n[  862.253647]  kthread+0x36d/0x720\n[  862.254533]  ret_from_fork+0x2a6/0x470\n[  862.255852]  ret_from_fork_asm+0x1a/0x30\n[  862.256037]  \u003c/TASK\u003e\n\nRemove the blk_should_fake_timeout() check from dm, as dm has no\nnative timeout handling and should not attempt to fake timeouts.",
  "id": "GHSA-r88m-3gh4-8vp3",
  "modified": "2026-05-15T18:30:30Z",
  "published": "2026-05-08T15:31:23Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-43314"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/4f9e7ca933a9fbf9912a384b061a00c77332cbf0"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/6cdb21e0c9fdee484feba14fc9e72e9d07daf9f3"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/8200fca818c1e2f65bc6cb16d934ff6049302197"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/b307b6307f6459841312432bd4bc9519cbac97f5"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/c8a23d4c995ef4227bd4de64cd3910637ee6162e"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/cf2d06c9fd4b6521ea5b7f73c99c64c2c6f5e224"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/ece6720de9403260088209b0b92d45e0b49ff856"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/f3a9c95a15d2f4466acad5c68faeff79ca5e9f47"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H",
      "type": "CVSS_V3"
    }
  ]
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.


Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…