Vulnerability · Published Aug 28, 2026 · Assigned by Linux

CVE-2026-80712spi: spi-qpic-snand: write the feature value before executing SET_FEATURE

High 8.4

In plain English

A high-severity security flaw in Linux from Linux. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.2% (higher than 9% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS 3.1)8.4High
Exploit odds (30 days)0.2%top 90.9% of all CVEs
Exploited in the wildNo reportsnot in CISA KEV
Attack toolingNoneno public tooling known

Official description

In the Linux kernel, the following vulnerability has been resolved: spi: spi-qpic-snand: write the feature value before executing SET_FEATURE qcom_spi_send_cmdaddr() programs NAND_FLASH_CMD/NAND_EXEC_CMD and submits the descriptors, which makes the controller execute the command immediately. For SPINAND_SET_FEATURE the value to be written is only placed into NAND_FLASH_FEATURES afterwards, by qcom_spi_io_op(), in a second submission - so the chip is programmed with whatever that register happened to hold from a previous operation, and the intended value is only applied by the *next* SET_FEATURE. Measured on a TP-Link Archer AX55 v1 (IPQ5018, ESMT F50L1G41LB): writing 0x40 to the configuration register (0xb0) leaves the chip at 0x00, and the subsequent write of 0x00 leaves it at 0x40 - every write lands one operation late. This stayed unnoticed until v6.18 added SPI-NAND OTP support together with OTP entries for ESMT chips. spinand_otp_rw() enables OTP mode, reads, and disables it again, and mtd_otp_nvmem_add() does this during MTD registration. With the off-by-one, the "disable" write actually applies the previously requested value, so CFG_OTP_ENABLE ends up set: the chip stays in OTP mode, every subsequent array read returns the OTP area instead of the array (UBI reports an empty device) and all writes fail with -EIO because the OTP area is write protected. On this board that makes the whole flash unusable and the device unbootable. Write the feature value into NAND_FLASH_FEATURES as part of the same transaction, before NAND_EXEC_CMD. While at it, copy only the bytes the operation actually carries - the previous code dereferenced a 4-byte pointer on a one-byte buffer (spinand->scratchbuf). With this patch the flash contents read back bit-identical to a known-good dump of the same board taken under the vendor firmware (md5-verified across partitions), and writes work.

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
Debian:14linux7.1.8-1DEBIAN-CVE-2026-80712
Ubuntu:26.04:LTSlinux7.0.0-42.42UBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-allwinner-5.19no fix listedUBUNTU-CVE-2026-80712
Ubuntu:26.04:LTSlinux-aws7.0.0-1016.17UBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-aws-5.19no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-aws-6.14no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-aws-6.17no fix listedUBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-aws-6.2no fix listedUBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-aws-6.5no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-aws-7.0no fix listedUBUNTU-CVE-2026-80712
Ubuntu:26.04:LTSlinux-azureno fix listedUBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-azure-5.19no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-azure-6.11no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-azure-6.14no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-azure-6.17no fix listedUBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-azure-6.2no fix listedUBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-azure-6.5no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-azure-7.0no fix listedUBUNTU-CVE-2026-80712
Ubuntu:26.04:LTSlinux-azure-fdeno fix listedUBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-azure-fde-5.19no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-azure-fde-6.14no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-azure-fde-6.17no fix listedUBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-azure-fde-6.2no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-azure-fde-7.0no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-azure-nvidia-6.14no fix listedUBUNTU-CVE-2026-80712
Ubuntu:26.04:LTSlinux-gcp7.0.0-1016.18UBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-gcp-5.19no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-gcp-6.11no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-gcp-6.14no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-gcp-6.17no fix listedUBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-gcp-6.2no fix listedUBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-gcp-6.5no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-gcp-7.0no fix listedUBUNTU-CVE-2026-80712
Ubuntu:26.04:LTSlinux-gkeno fix listedUBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-hwe-5.19no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-hwe-6.11no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-hwe-6.14no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-hwe-6.17no fix listedUBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-hwe-6.2no fix listedUBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-hwe-6.5no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-hwe-7.07.0.0-42.42~24.04.1UBUNTU-CVE-2026-80712
Ubuntu:26.04:LTSlinux-ibm7.0.0-1017.17UBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-intel-iot-realtimeno fix listedUBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-lowlatency-hwe-5.19no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-lowlatency-hwe-6.11no fix listedUBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.2no fix listedUBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-lowlatency-hwe-6.5no fix listedUBUNTU-CVE-2026-80712
Ubuntu:26.04:LTSlinux-nvidiano fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-nvidia-6.11no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-nvidia-6.17no fix listedUBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-nvidia-6.2no fix listedUBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-nvidia-6.5no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-nvidia-7.0no fix listedUBUNTU-CVE-2026-80712
Ubuntu:26.04:LTSlinux-nvidia-bosno fix listedUBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-oem-5.17no fix listedUBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-oem-6.0no fix listedUBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-oem-6.1no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-oem-6.11no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-oem-6.14no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-oem-6.17no fix listedUBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-oem-6.5no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-oem-6.8no fix listedUBUNTU-CVE-2026-80712
Ubuntu:26.04:LTSlinux-oem-7.07.0.0-1017.17UBUNTU-CVE-2026-80712
Ubuntu:26.04:LTSlinux-oracle7.0.0-1015.16UBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-oracle-6.14no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-oracle-6.17no fix listedUBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-oracle-6.5no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-oracle-7.0no fix listedUBUNTU-CVE-2026-80712
Ubuntu:26.04:LTSlinux-raspino fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-raspi-realtimeno fix listedUBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-80712
Ubuntu:26.04:LTSlinux-realtimeno fix listedUBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-riscvno fix listedUBUNTU-CVE-2026-80712
Ubuntu:26.04:LTSlinux-riscv7.0.0-42.42.1UBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-riscv-5.19no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-riscv-6.14no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-riscv-6.17no fix listedUBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-riscv-6.5no fix listedUBUNTU-CVE-2026-80712
Ubuntu:24.04:LTSlinux-riscv-7.07.0.0-42.42.1~24.04.1UBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-starfive-5.19no fix listedUBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-starfive-6.2no fix listedUBUNTU-CVE-2026-80712
Ubuntu:22.04:LTSlinux-starfive-6.5no fix listedUBUNTU-CVE-2026-80712

Affected products (as reported)

VendorProductVersions
Linux Linux 7304d1909080ef0c9da703500a97f46c98393fcd – before 581e5166f0780103dc91c0d8ebc801f9af4824b07304d1909080ef0c9da703500a97f46c98393fcd – before 3ba021079ef2ac6e21e3547328496ac42d22b56a7304d1909080ef0c9da703500a97f46c98393fcd – before 8fd62901d6bf03f274a49dd0060793cc07dd51b0
Linux Linux 6.15

References