# CVE-2026-80931: w1: ds28e17: reject an oversize length on an I2C block read

> A buffer overflow in the Linux kernel DS28E17 driver allows out-of-bounds writes via malicious I2C responses, potentially leading to code execution or crashes.

- **Severity:** High 7.8 (`CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H`)
- **Exploited in the wild:** Not known
- **Login needed:** Any signed-in user
- **Attackable:** Local or same network only
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 11 Sep 2026
- **Updated:** 19 Oct 2026
- **Also known as:** AZL-100286, BELL-CVE-2026-80931, DEBIAN-CVE-2026-80931, GHSA-3cwq-59j3-h9hj, UBUNTU-CVE-2026-80931

## What is CVE-2026-80931?

CVE-2026-80931 is a high-severity memory corruption vulnerability in Linux, published on 11 Sep 2026. It can only be exploited from the same machine or local network, with no action from the victim.

### Official description

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

w1: ds28e17: reject an oversize length on an I2C block read

w1_f19_i2c_master_transfer() is the master_xfer for the DS28E17 1-Wire
to I2C bridge. On an I2C_M_RECV_LEN read, it takes the length from the
device. The downstream slave puts a length byte in buf[0]. The driver
then reads that many bytes into buf[1] with w1_f19_i2c_read().

buf[0] is controlled by the device and can be 0 to 255.
w1_f19_i2c_read() only rejects a zero count. The caller buffer is
I2C_SMBUS_BLOCK_MAX + 2, so 34 bytes. A length above 32 makes the read
run past it, up to about 222 bytes out of bounds.

The SMBus core does check buf[0] against I2C_SMBUS_BLOCK_MAX. That
check runs after master_xfer returns. By then the write is already
done. i2c-algo-bit rejects an oversize length before it copies, and
returns -EPROTO.

Reject a length above I2C_SMBUS_BLOCK_MAX at both RECV_LEN sites, the
same way i2c-algo-bit does.

## Which versions are affected by CVE-2026-80931?


## How do I fix CVE-2026-80931?

Apply the vendor's patch.

## Is CVE-2026-80931 being exploited?

There is no known exploitation of CVE-2026-80931 in the wild and no public exploit code.

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2026-80931 and fix it if it is affected.

What it is: CVE-2026-80931 is a high-severity memory corruption vulnerability in Linux, published on 11 Sep 2026. It can only be exploited from the same machine or local network, with no action from the victim.
Exploitation: There is no known exploitation of CVE-2026-80931 in the wild and no public exploit code.

Affected product: Linux. No package-level version data is available, so check the vendor advisory linked from the reference page.

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2026-80931/ (Markdown: https://insights.sbomify.com/CVE-2026-80931/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2026-80931
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-80931
- OSV: https://osv.dev/vulnerability/CVE-2026-80931

---
From sbomify Insights: https://insights.sbomify.com/CVE-2026-80931/
Summaries are generated and may contain mistakes; the official description above is the record.
