CVE-2026-14986: bounds in zephyrproject zephyr
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.
AI Analysis
Technical Summary
The ITE it51xxx I2C driver in Zephyr, when configured as an I2C target with buffer mode enabled, copies incoming write data into a fixed-size buffer without proper bounds checking before the write occurs. The index used for writing accumulates with each FIFO-fill interrupt and is only checked after the write, allowing an attacker controlling the I2C master to overflow the buffer by sending a write longer than the buffer size (default 256 bytes). This out-of-bounds write can corrupt adjacent memory, potentially crashing the device or enabling code execution. The vulnerability requires a malicious or compromised I2C master on the same bus and does not require software privileges on the victim. The fix adds a pre-write bounds check in the interrupt handler to prevent overflow by aborting and resetting the FIFO if the write would exceed buffer limits.
Potential Impact
An attacker with control over the I2C master on the same bus can cause an out-of-bounds write in the ITE it51xxx I2C driver running as a target, potentially leading to device crashes or code execution in the kernel/firmware context. This can compromise device stability and security without requiring software privileges on the victim device.
Mitigation Recommendations
A fix is available that adds a pre-write bounds check in the target_i2c_fifo_read_to_buf() function to prevent out-of-bounds writes by aborting and resetting the FIFO before any overflow occurs. Users should upgrade to Zephyr version 4.4.2 or later where this issue is addressed. No additional mitigations are indicated by the vendor advisory.
CVE-2026-14986: bounds in zephyrproject zephyr
Description
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.
CVSS v3.1
Score 6.8medium
Affected software
zephyrproject
zephyr
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The ITE it51xxx I2C driver in Zephyr, when configured as an I2C target with buffer mode enabled, copies incoming write data into a fixed-size buffer without proper bounds checking before the write occurs. The index used for writing accumulates with each FIFO-fill interrupt and is only checked after the write, allowing an attacker controlling the I2C master to overflow the buffer by sending a write longer than the buffer size (default 256 bytes). This out-of-bounds write can corrupt adjacent memory, potentially crashing the device or enabling code execution. The vulnerability requires a malicious or compromised I2C master on the same bus and does not require software privileges on the victim. The fix adds a pre-write bounds check in the interrupt handler to prevent overflow by aborting and resetting the FIFO if the write would exceed buffer limits.
Potential Impact
An attacker with control over the I2C master on the same bus can cause an out-of-bounds write in the ITE it51xxx I2C driver running as a target, potentially leading to device crashes or code execution in the kernel/firmware context. This can compromise device stability and security without requiring software privileges on the victim device.
Mitigation Recommendations
A fix is available that adds a pre-write bounds check in the target_i2c_fifo_read_to_buf() function to prevent out-of-bounds writes by aborting and resetting the FIFO before any overflow occurs. Users should upgrade to Zephyr version 4.4.2 or later where this issue is addressed. No additional mitigations are indicated by the vendor advisory.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- zephyr
- Date Reserved
- 2026-07-07T18:24:46.814Z
- Cvss Version
- 3.1
- State
- PUBLISHED
Threat ID: 6aa875f055bf5e2cf5ba9993
Added to database: 09/14/2026, 22:32:16 UTC
Last enriched: 09/14/2026, 22:46:51 UTC
Last updated: 09/15/2026, 02:31:27 UTC
Views: 8
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.