Skip to content
Heist/ feed
High

i2c: smbus: reject oversized block transfers in the common path

Type: advisorySource: Official CVE List1 source record

In the Linux kernel, the following vulnerability has been resolved: i2c: smbus: reject oversized block transfers in the common path The SMBus block transfer length data->block[0] is validated in i2c_smbus_xfer_emulated() but that check runs too late for tracepoints and is skipped entirely when the adapter provides a native smbus_xfer implementation. This allows user-controlled oversized block lengths to reach tracepoint memcpy calls and driver callbacks unchecked. Add an early validation in __i2c_smbus_xfer() that rejects block transfers whose caller-supplied length is zero or exceeds I2C_SMBUS_BLOCK_MAX before any tracepoint fires or driver callback runs. data->block[0] is filled in by the device on SMBus block reads, so the check is scoped to operations where the length is actually supplied by the caller. This is consistent with the existing -EINVAL convention in the emulated path and protects all downstream consumers at once: the smbus_write tracepoint, all native smbus_xfer driver implementations, and the emulated path. Two distinct bugs are fixed by this change: Bug 1: smbus_write tracepoint OOB (include/trace/events/smbus.h) trace_smbus_write() fires before any validation and copies data->block[0]+1 bytes into a 34-byte event buffer. With block[0]=0xfe the tracepoint copies 255 bytes, overflowing by 221. BUG: KASAN: stack-out-of-bounds in trace_event_raw_event_smbus_write+0x27c/0x530 Read of size 255 at addr ffff88800d98fcf8 by task poc_smbus/91 Call Trace: __asan_memcp

Announced Source revision 1
Original source ↗

CVE-2026-93287

Primary source · Revision 1

Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.

Security context

Source reference: cve:CVE-2026-93287

Linux

Source reference: /containers/cna/affected/0/product

Affected versions
Not stated in this record
Fixed versions
Not stated in this record
Prerequisites
Not stated in this record

Linux

Source reference: /containers/cna/affected/1/product

Affected versions
Not stated in this record
Fixed versions
Not stated in this record
Prerequisites
Not stated in this record

Structured affected-version data

Original package identities and version rules from this source.

[
  {
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "vendor": "Linux",
    "product": "Linux",
    "versions": [
      {
        "status": "affected",
        "version": "4710317891e4824ce1510a6b5066abbd3e917750",
        "lessThan": "856dffcc097b3d8ed45a643ebda07cb92968cb33",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "4710317891e4824ce1510a6b5066abbd3e917750",
        "lessThan": "356875e33f2c6d2061a02c9dec1a1e639d265a55",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "4710317891e4824ce1510a6b5066abbd3e917750",
        "lessThan": "72ca5e0b8b7a62615758f8871c34d61616c2dc8b",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "4710317891e4824ce1510a6b5066abbd3e917750",
        "lessThan": "df077253f6405d67ad087538e495ef32a05717b7",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "4710317891e4824ce1510a6b5066abbd3e917750",
        "lessThan": "f09edffba97d37b1fdff5f818a9a45f8a98ac171",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "4710317891e4824ce1510a6b5066abbd3e917750",
        "lessThan": "c4b478bc50b7ca9865e237909941253a0f7111a2",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "4710317891e4824ce1510a6b5066abbd3e917750",
        "lessThan": "3051cd060fa496df42954291fa2306ed2eab4ecc",
        "versionType": "git"
      }
    ],
    "programFiles": [
      "drivers/i2c/i2c-core-smbus.c"
    ],
    "defaultStatus": "unaffected"
  },
  {
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "vendor": "Linux",
    "product": "Linux",
    "versions": [
      {
        "status": "affected",
        "version": "2.6.33"
      },
      {
        "status": "unaffected",
        "version": "0",
        "lessThan": "2.6.33",
        "versionType": "semver"
      },
      {
        "status": "unaffected",
        "version": "5.10.271",
        "versionType": "semver",
        "lessThanOrEqual": "5.10.*"
      },
      {
        "status": "unaffected",
        "version": "5.15.222",
        "versionType": "semver",
        "lessThanOrEqual": "5.15.*"
      },
      {
        "status": "unaffected",
        "version": "6.1.189",
        "versionType": "semver",
        "lessThanOrEqual": "6.1.*"
      },
      {
        "status": "unaffected",
        "version": "6.6.158",
        "versionType": "semver",
        "lessThanOrEqual": "6.6.*"
      },
      {
        "status": "unaffected",
        "version": "6.12.111",
        "versionType": "semver",
        "lessThanOrEqual": "6.12.*"
      },
      {
        "status": "unaffected",
        "version": "6.18.53",
        "versionType": "semver",
        "lessThanOrEqual": "6.18.*"
      },
      {
        "status": "unaffected",
        "version": "7.1",
        "versionType": "original_commit_for_fix",
        "lessThanOrEqual": "*"
      }
    ],
    "programFiles": [
      "drivers/i2c/i2c-core-smbus.c"
    ],
    "defaultStatus": "affected"
  }
]
Related CVEs
CVE-2026-93287

Source reference: /cveMetadata/cveId

Publisher severity

high

Source reference: /containers/cna/metrics

Event
#8261 · Revision 1
Added to Heist Feed
Publisher date
Read the original announcement