{"id":"CVE-2026-89722","title":"PCI/sysfs: Fix out-of-bounds read in pci_write_legacy_io()","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nPCI/sysfs: Fix out-of-bounds read in pci_write_legacy_io()\n\npci_write_legacy_io() loads 4 bytes from the kernfs write buffer\nregardless of how many bytes userspace wrot…","severity":"medium","cvss":5.5,"cvssVector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","cvssSource":"vendor","cwe":["CWE-125"],"vendor":"Linux","product":"Linux","affected":["Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < e892f05f1f790d5721cd8e3c561ed76da7e08bae","Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 7a99e9c7011905734cc2739038f2a224b6be0d1f","Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < dc76258d0132df1d831a5a29758bd448ca9c566e","Linux 2.6.12"],"published":"2026-09-11","updated":"2026-10-19","sourceUpdated":"2026-10-19T08:51:34.940Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-89722","references":[{"url":"https://git.kernel.org/stable/c/e892f05f1f790d5721cd8e3c561ed76da7e08bae"},{"url":"https://git.kernel.org/stable/c/7a99e9c7011905734cc2739038f2a224b6be0d1f"},{"url":"https://git.kernel.org/stable/c/dc76258d0132df1d831a5a29758bd448ca9c566e"},{"url":"https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-89722.json"},{"url":"https://access.redhat.com/security/cve/CVE-2026-89722"},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2532142"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-89722"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-89722"},{"url":"https://git.kernel.org/pub/scm/linux/security/vulns.git/plain/cve/published/2026/CVE-2026-89722.mbox"}],"tags":["cve.org","csaf","vex","red-hat"],"epss":0.00206,"epssPercentile":0.10626,"ingestedAt":"2026-09-14T15:23:07.476Z","slug":"CVE-2026-89722","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nPCI/sysfs: Fix out-of-bounds read in pci_write_legacy_io()\n\npci_write_legacy_io() loads 4 bytes from the kernfs write buffer\nregardless of how many bytes userspace wrote:\n\n  if (count != 1 && count != 2 && count != 4)\n          return -EINVAL;\n\n  return pci_legacy_write(bus, off, *(u32 *)buf, count);\n\nkernfs_fop_write_iter() allocates the buffer with kmalloc(len + 1),\nso a 1-byte write to the legacy_io sysfs file allocates 2 bytes and\nthe unconditional u32 load reads up to 2 bytes past the end of the\nallocation, which KASAN reports as a slab-out-of-bounds read.\nSimilarly, a 2-byte write overreads by 1 byte.\n\nThus, read only the number of bytes requested using get_unaligned_le16()\nand get_unaligned_le32() for the 2 and 4 byte cases, interpreting the\nbuffer as little-endian to match the byte ordering of PCI I/O port\nspace.\n\nThe PowerPC implementation previously compensated for the generic\ncode's native-endian 32-bit load by shifting the value into place\nfor the 1 and 2 byte cases.  The shifts were only correct on\nbig-endian kernels.\n\nOn little-endian PowerPC (POWER8 and later), they extracted the wrong\nbytes, so a 1-byte write wrote an out-of-bounds byte instead of the\nrequested value.  On big-endian, the native load also caused out_le16()\nand out_le32() to reverse the user's bytes on the wire for 2 and 4 byte\nwrites.  The little-endian helpers resolve both issues, so the shifts\nare removed.\n\nNo changes are needed for the Alpha platform.\n\nThe legacy_io file is root-only and exists only on Alpha and PowerPC,\nthe two architectures that define HAVE_PCI_LEGACY.\n\n## Affected\n\n- `Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < e892f05f1f790d5721cd8e3c561ed76da7e08bae`\n- `Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < 7a99e9c7011905734cc2739038f2a224b6be0d1f`\n- `Linux >= 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 < dc76258d0132df1d831a5a29758bd448ca9c566e`\n- `Linux 2.6.12`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.\n\n## Vendor advisories\n\n- **Red Hat VEX** · Moderate · affected: Red Hat Enterprise Linux 10, Red Hat Enterprise Linux 6, Red Hat Enterprise Linux 7, Red Hat Enterprise Linux 8, Red Hat Enterprise Linux 9, Red Hat OpenShift Container Platform 4 · no fix planned: Red Hat Enterprise Linux 6, Red Hat Enterprise Linux 10, Red Hat Enterprise Linux 7, Red Hat Enterprise Linux 8, … · updated 2026-09-15 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-89722.json)","depth":"sunlit","depthScore":30,"depthScoreParts":{"impact":30.3,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[{"seq":205525,"id":"CVE-2026-89722","ts":1789576723391,"field":"cvss","old":"4.7","new":"5.5"},{"seq":204087,"id":"CVE-2026-89722","ts":1789490231381,"field":"cvss","old":null,"new":"4.7"},{"seq":204086,"id":"CVE-2026-89722","ts":1789490231381,"field":"severity","old":"none","new":"medium"},{"seq":147684,"id":"CVE-2026-89722","ts":1789270211873,"field":"cvss","old":null,"new":"4.7"},{"seq":147683,"id":"CVE-2026-89722","ts":1789270211873,"field":"severity","old":"none","new":"medium"},{"seq":109440,"id":"CVE-2026-89722","ts":1789183731923,"field":"cvss","old":null,"new":"4.7"},{"seq":109439,"id":"CVE-2026-89722","ts":1789183731923,"field":"severity","old":"none","new":"medium"}]}