Public mode

No access to your tenant or devices. Every item links to its source. What this means

Sources need attention Customize Public modeDiscuss ChangeIntel on Discord

Out-of-bounds write in it51xxx I2C target FIFO ISR on oversized write transaction

CVSS 3.1 6.8 MEDIUMCheck source for fixed versionsKEV status unknown

cve-program · CVE-2026-14986

Published

The ITE it51xxx I2C driver, when operating as an I2C target (slave) in buffer mode (CONFIG_I2C_TARGET + CONFIG_I2C_TARGET_BUFFER_MODE), copies host-supplied write data into the fixed-size data->target_in_buffer inside its target FIFO interrupt handler target_i2c_isr_fifo() in drivers/i2c/i2c_ite_it51xxx.c. The copy loop stores to target_in_buffer[i + data->w_index] and only checks data->w_index against sizeof(data->target_in_buffer) after the write has already completed, so the bounds check cannot prevent the overflow. The running index data->w_index accumulates count bytes on every FIFO-fill interrupt of an ongoing transaction and is reset to zero only on a STOP or timeout condition. An I2C host that streams a single write transaction longer than the buffer (default CONFIG_I2C_TARGET_IT51XXX_MAX_BUF_SIZE = 256 bytes) drives data->w_index past the end of the buffer, and each subsequent host byte is written out of bounds into the adjacent data->target_out_buffer and following static device data. The trigger is a malicious or misbehaving I2C master on the same bus (for example a compromised application processor or a rogue device on an exposed I2C bus); no software privilege on the victim is required and the handler runs in the target's kernel/firmware context. Because both the written values and the overflow length are attacker-controlled, this is an out-of-bounds write that can crash the controller or be shaped toward code execution. The fix adds a pre-write bounds check in target_i2c_fifo_read_to_buf() that aborts and resets the FIFO before any out-of-bounds store.

Read the publisher's advisory

Affected versions, risk and source history

cve-program · CVE-2026-14986

Published

zephyr

https://github.com/zephyrproject-rtos/zephyr

Publisher's version information

Shown as published. These rules are not interpreted as NuGet package version ranges.

{
                    "vendor": "zephyrproject",
                    "product": "zephyr",
                    "collectionURL": "https://github.com/zephyrproject-rtos/zephyr",
                    "packageName": "zephyr",
                    "defaultStatus": "unaffected",
                    "programFiles": [
                        "drivers/i2c/Kconfig.it51xxx",
                        "drivers/i2c/i2c_ite_it51xxx.c"
                    ],
                    "programRoutines": [
                        {
                            "name": "target_i2c_isr_fifo"
                        }
                    ],
                    "versions": [
                        {
                            "version": "4.2.0",
                            "status": "affected",
                            "versionType": "semver",
                            "lessThan": "4.4.2"
                        }
                    ]
                }

Original source record · Cite this exact observation · Complete original publisher JSON

ChangeIntel

An IT change radar: releases, security, known issues, retirements, documentation changes, and service status from public sources. Every item links to supporting evidence; dates and statuses can change after they are read.

Sources read 13 Nov 14:14 UTC · 274 of 275 readable · 273 fully read · documentation 469/469 current