---
id: CVE-2026-80931
title: 'w1: ds28e17: reject an oversize length on an I2C block read'
summary: |-
  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 …
severity: high
cvss: 7.8
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'
cvssSource: cna
cwe:
  - CWE-125
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= ebc4768ac4971eab4b570e733e47ac9dfd0e4175 <
    b30c021c6073559ea6851b522d8a17a524a27b4a
  - >-
    Linux >= ebc4768ac4971eab4b570e733e47ac9dfd0e4175 <
    1d08877fc37e90945df38d255715bd1d6c052d46
  - >-
    Linux >= ebc4768ac4971eab4b570e733e47ac9dfd0e4175 <
    bf76d61e118b7044600a65775a3bf8adc2c6823d
  - >-
    Linux >= ebc4768ac4971eab4b570e733e47ac9dfd0e4175 <
    0f6496b34cc2919420f303b2aabdd9f71e084b56
  - >-
    Linux >= ebc4768ac4971eab4b570e733e47ac9dfd0e4175 <
    cb55c5da9828f77db2a2701316949d4de1e9b773
  - >-
    Linux >= ebc4768ac4971eab4b570e733e47ac9dfd0e4175 <
    ae0c79a8527044e54d81fd5a3b49ce6177633758
  - >-
    Linux >= ebc4768ac4971eab4b570e733e47ac9dfd0e4175 <
    6df05f630c84a109736642362e452089886f9974
  - >-
    Linux >= ebc4768ac4971eab4b570e733e47ac9dfd0e4175 <
    169ae5e65e5aaf213b6a578f6478a9fd2e523606
  - Linux 4.15
published: '2026-09-11'
updated: '2026-10-19'
sourceUpdated: '2026-10-19T08:45:15.065Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-80931'
references:
  - url: 'https://git.kernel.org/stable/c/b30c021c6073559ea6851b522d8a17a524a27b4a'
  - url: 'https://git.kernel.org/stable/c/1d08877fc37e90945df38d255715bd1d6c052d46'
  - url: 'https://git.kernel.org/stable/c/bf76d61e118b7044600a65775a3bf8adc2c6823d'
  - url: 'https://git.kernel.org/stable/c/0f6496b34cc2919420f303b2aabdd9f71e084b56'
  - url: 'https://git.kernel.org/stable/c/cb55c5da9828f77db2a2701316949d4de1e9b773'
  - url: 'https://git.kernel.org/stable/c/ae0c79a8527044e54d81fd5a3b49ce6177633758'
  - url: 'https://git.kernel.org/stable/c/6df05f630c84a109736642362e452089886f9974'
  - url: 'https://git.kernel.org/stable/c/169ae5e65e5aaf213b6a578f6478a9fd2e523606'
  - url: >-
      https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-80931.json
  - url: 'https://access.redhat.com/security/cve/CVE-2026-80931'
  - url: 'https://bugzilla.redhat.com/show_bug.cgi?id=2532277'
  - url: 'https://www.cve.org/CVERecord?id=CVE-2026-80931'
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-80931'
  - url: >-
      https://git.kernel.org/pub/scm/linux/security/vulns.git/plain/cve/published/2026/CVE-2026-80931.mbox
tags:
  - cve.org
  - csaf
  - vex
  - red-hat
  - score-dispute
epss: 0.00129
epssPercentile: 0.02553
scores:
  cna: 7.8
  vendor: 5.5
ingestedAt: '2026-09-14T15:23:07.455Z'
---

## Overview

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.

## Affected

- `Linux >= ebc4768ac4971eab4b570e733e47ac9dfd0e4175 < b30c021c6073559ea6851b522d8a17a524a27b4a`
- `Linux >= ebc4768ac4971eab4b570e733e47ac9dfd0e4175 < 1d08877fc37e90945df38d255715bd1d6c052d46`
- `Linux >= ebc4768ac4971eab4b570e733e47ac9dfd0e4175 < bf76d61e118b7044600a65775a3bf8adc2c6823d`
- `Linux >= ebc4768ac4971eab4b570e733e47ac9dfd0e4175 < 0f6496b34cc2919420f303b2aabdd9f71e084b56`
- `Linux >= ebc4768ac4971eab4b570e733e47ac9dfd0e4175 < cb55c5da9828f77db2a2701316949d4de1e9b773`
- `Linux >= ebc4768ac4971eab4b570e733e47ac9dfd0e4175 < ae0c79a8527044e54d81fd5a3b49ce6177633758`
- `Linux >= ebc4768ac4971eab4b570e733e47ac9dfd0e4175 < 6df05f630c84a109736642362e452089886f9974`
- `Linux >= ebc4768ac4971eab4b570e733e47ac9dfd0e4175 < 169ae5e65e5aaf213b6a578f6478a9fd2e523606`
- `Linux 4.15`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

## Vendor advisories

- **Red Hat VEX** · Moderate · updated 2026-09-14 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-80931.json)
