{
    "dataType": "CVE_RECORD",
    "dataVersion": "5.2",
    "cveMetadata": {
        "cveId": "CVE-2026-79976",
        "assignerOrgId": "e2e69745-5e70-4e92-8431-deb5529a81ad",
        "state": "PUBLISHED",
        "assignerShortName": "zephyr",
        "dateReserved": "2026-08-25T16:06:27.086Z",
        "datePublished": "2026-10-21T18:19:34.519Z",
        "dateUpdated": "2026-10-23T21:27:29.128Z"
    },
    "containers": {
        "cna": {
            "providerMetadata": {
                "orgId": "e2e69745-5e70-4e92-8431-deb5529a81ad",
                "shortName": "zephyr",
                "dateUpdated": "2026-10-21T18:19:34.519Z"
            },
            "title": "NULL pointer dereference in the MCTP I2C+GPIO target binding triggerable by a peer I2C controller",
            "descriptions": [
                {
                    "lang": "en",
                    "value": "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().\n\nA 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.\n\nThe 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.\n\nThe 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."
                }
            ],
            "affected": [
                {
                    "vendor": "zephyrproject",
                    "product": "zephyr",
                    "collectionURL": "https://github.com/zephyrproject-rtos/zephyr",
                    "packageName": "zephyr",
                    "defaultStatus": "unaffected",
                    "programFiles": [
                        "subsys/pmci/mctp/mctp_i2c_gpio_target.c"
                    ],
                    "programRoutines": [
                        {
                            "name": "mctp_i2c_gpio_target_read_processed"
                        },
                        {
                            "name": "mctp_i2c_gpio_target_read_requested"
                        },
                        {
                            "name": "mctp_i2c_gpio_target_stop"
                        }
                    ],
                    "versions": [
                        {
                            "version": "4.3.0",
                            "status": "affected",
                            "versionType": "semver",
                            "lessThanOrEqual": "4.4.2"
                        }
                    ]
                }
            ],
            "references": [
                {
                    "url": "https://github.com/zephyrproject-rtos/zephyr/commit/60f7fee438504de29f2473d7a8d0535235b983ef",
                    "name": "Fix commit",
                    "tags": [
                        "patch"
                    ]
                },
                {
                    "url": "https://github.com/zephyrproject-rtos/zephyr/security/advisories/GHSA-76fx-m4mf-24gq",
                    "name": "GHSA-76fx-m4mf-24gq"
                }
            ],
            "metrics": [
                {
                    "format": "CVSS",
                    "cvssV3_1": {
                        "version": "3.1",
                        "vectorString": "CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:H",
                        "baseScore": 7.1,
                        "baseSeverity": "HIGH"
                    }
                }
            ],
            "problemTypes": [
                {
                    "descriptions": [
                        {
                            "lang": "en",
                            "description": "memory-safety",
                            "cweId": "CWE-476",
                            "type": "CWE"
                        }
                    ]
                }
            ],
            "x_generator": {
                "engine": "cvelib 1.8.0"
            }
        },
        "adp": [
            {
                "metrics": [
                    {
                        "other": {
                            "type": "ssvc",
                            "content": {
                                "timestamp": "2026-10-23T20:43:08.859407Z",
                                "id": "CVE-2026-79976",
                                "options": [
                                    {
                                        "Exploitation": "none"
                                    },
                                    {
                                        "Automatable": "no"
                                    },
                                    {
                                        "Technical Impact": "partial"
                                    }
                                ],
                                "role": "CISA Coordinator",
                                "version": "2.0.3"
                            }
                        }
                    }
                ],
                "title": "CISA ADP Vulnrichment",
                "providerMetadata": {
                    "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
                    "shortName": "CISA-ADP",
                    "dateUpdated": "2026-10-23T21:27:29.128Z"
                }
            }
        ]
    }
}