CVE-2026-79976
Last modified
CVE-2026-79976 is a high-severity vulnerability rated 7.1/10 on the CVSS scale. The MCTP-over-I2C+GPIO target binding in subsys/pmci/mctp/mctp_i2c_gpio_target.c emulates a small pseudo-register file, where the bus controller first writes a register number and then writes or reads payload bytes. The selected register (b->reg_addr) and the data-phase flag (b->rxtx) were never cleared when the controller issued an I2C STOP, so after a completed transfer the target still had a data register selected while the packet buffer that register refers to had already been consumed and set to NULL by mctp_i2c_gpio_target_stop(). A controller on the bus can re-enter the same branch of mctp_i2c_gpio_target_stop() with a NULL buffer using two ordinary transactions and no authentication: first a normal packet write to MCTP_I2C_GPIO_RX_MSG_ADDR followed by STOP (which delivers and frees b->rx_pkt), then a bare read transaction followed by STOP. EPSS estimates a 0.21% chance of exploitation in the next 30 days.
Description
The MCTP-over-I2C+GPIO target binding in subsys/pmci/mctp/mctp_i2c_gpio_target.c emulates a small pseudo-register file, where the bus controller first writes a register number and then writes or reads payload bytes. The selected register (b->reg_addr) and the data-phase flag (b->rxtx) were never cleared when the controller issued an I2C STOP, so after a completed transfer the target still had a data register selected while the packet buffer that register refers to had already been consumed and set to NULL by mctp_i2c_gpio_target_stop(). A controller on the bus can re-enter the same branch of mctp_i2c_gpio_target_stop() with a NULL buffer using two ordinary transactions and no authentication: first a normal packet write to MCTP_I2C_GPIO_RX_MSG_ADDR followed by STOP (which delivers and frees b->rx_pkt), then a bare read transaction followed by STOP. The failing read_requested() call leaves the stale state untouched and the I2C driver still delivers the STOP callback, which then calls mctp_bus_rx() with a NULL packet. The symmetric case exists on the transmit side, where the stale MCTP_I2C_GPIO_TX_MSG_ADDR selection dereferences b->tx_pkt->end after b->tx_pkt has been cleared and additionally signals b->tx_complete a second time, causing the next outbound packet to be dropped. The dereference happens in the I2C target interrupt handler, so on any target that traps accesses to address 0 the result is a fatal exception and a device reset or halt — a denial of service inflicted by any device able to act as controller on the shared management bus (for example compromised firmware on a peer MCTP endpoint or on the BMC). On parts where address 0 is readable, the impact degrades to a malformed packet buffer being handed to the MCTP stack and lost transmit packets. No attacker-controlled value is written and no confidentiality or integrity boundary is crossed. The fix resets b->reg_addr to MCTP_I2C_GPIO_INVALID_ADDR and clears b->rxtx at every STOP, so a new register must be selected before any data phase can run again. Only builds that opt into the experimental CONFIG_MCTP subsystem with CONFIG_MCTP_I2C_GPIO_TARGET=y are affected.
Metrics
Weakness Enumeration
Affected Software
Source: CNA advisory (CVE.org). NVD analysis pending.
| Vendor | Product | Versions |
|---|---|---|
| zephyrproject | zephyr | >= 4.3.0, <= 4.4.2 |
References
Timeline
- Published
- Last Modified
- Status
- Awaiting Analysis
Frequently Asked Questions
What is CVE-2026-79976?
How severe is CVE-2026-79976?
How do I fix CVE-2026-79976?
How Strix Helps
- How Strix found a critical auth bypass in etcdStrix autonomously discovered a critical authentication bypass in etcd, later designated CVE-2026-33413.
- Autonomous PentestingAI agents that find and validate exploitable vulnerabilities like this one across your applications.
- PR ReviewsPentest every pull request so vulnerable code is caught before it ships to production.
- AI Penetration TestingHow AI-driven penetration testing continuously covers your attack surface.
Related CVEs from 2026
- CVE-2026-79970Dell SCG 5.0 Appliance versions prior to 5.36.00.16 and Dell…5.6
- CVE-2026-79971Dell SCG 5.0 Appliance versions prior to 5.36.00.16 and Dell…5.3
- CVE-2026-79972Dell SCG 5.0 Appliance versions prior to 5.36.00.16 and Dell…7.2
- CVE-2026-79973Dell SCG 5.0 Appliance versions prior to 5.36.00.16 and Dell…6.3
- CVE-2026-79974Dell SCG 5.0 Appliance versions prior to 5.36.00.16 and Dell…6.4
- CVE-2026-79975Dell SCG 5.0 Appliance versions prior to 5.36.00.16 and Dell…5.5
- CVE-2026-79977The WireGuard VPN service in subsys/net/lib/wireguard/wg.c u…8.2
- CVE-2026-79978The RTIO streaming completion callback adxl345_process_fifo_…3.6
- CVE-2026-79979The arm64 MMU backend invalidates a single virtual address f…7.8
- CVE-2026-7998Insufficient validation of untrusted input in Dialog in Goog…5.4
- CVE-2026-79980The DHCPv4 client in subsys/net/lib/dhcpv4/dhcpv4.c maintain…5.6
- CVE-2026-79981The DNS stub resolver in subsys/net/lib/dns/resolve.c binds …6.5
Are you affected by CVE-2026-79976?
Run a free Strix scan to check your systems for this vulnerability.
Scan your code nowSource: NVD / NIST
