The I3C IBI subsystem in drivers/i3c/i3cibiworkq.c hands out statically-allocated work nodes through a free-list i3cibiworknodesfree implemented as a plain sysslistt, which provides no synchronization. The allocation helpers (i3cibiworkenqueue, i3cibiworkenqueuetargetirq, i3cibiworkenqueuehotjoin, i3cibiworkenqueuecontrollerrequest, i3cibiworkenqueuecb) called sysslistget() directly from ISR context, while the workqueue handler i3cibiworkhandler() returned nodes with sysslistappend() from the workqueue thread, with no lock on either side.
Because sysslistget() and sysslistappend() are neither atomic nor interrupt-safe, an IBI interrupt that fires while the workqueue thread is mid-append (or a truly parallel access under CONFIGSMP) races on the shared list. This corrupts the list linkage: a node may be handed to two consumers, a node may be lost, or the head/tail pointers may be left inconsistent so sysslistget() returns a stale or garbage pointer. In the double-hand-out case the subsequent memcpy(ibinode, ibiwork, sizeof(*ibinode)) overwrites a node still in flight; a garbage pointer turns the same memcpy into an out-of-bounds write.
The race is driven by I3C bus traffic — IBIs, hot-joins, and controller-role requests originate from target devices on the bus, and I3C supports hot-joining devices. An attacker controlling an I3C peripheral on the board's chip-to-chip bus can generate high-frequency interrupts timed to collide with the free operation. Exploitation requires physical access to the bus and winning a narrow timing window; the most realistic impact is a crash or hang (denial of service), with memory corruption possible but hard to control.
The fix wraps all free-list sysslistget()/sysslistappend() operations in the new ibiworkalloc()/ibiworkfree() helpers, each guarded by a kspinlock (ibiwork_lock), closing the race across ISR and thread contexts.
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/14xxx/CVE-2026-14367.json",
"cna_assigner": "zephyr",
"cwe_ids": [
"CWE-362"
]
}[
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 2013.0,
"function_hash": "272255904022761334324969246021023830247"
},
"id": "CVE-2026-14367-53012308",
"target": {
"function": "i3c_ibi_work_handler",
"file": "drivers/i3c/i3c_ibi_workq.c"
},
"source": "https://github.com/zephyrproject-rtos/zephyr/commit/e87e7e2ac7c5ded0af3fb5934518cc5688e458cc",
"signature_version": "v1"
},
{
"signature_type": "Line",
"deprecated": false,
"digest": {
"line_hashes": [
"214670425338353404436501673949915951892",
"171235512154751973838649447351216274501",
"48918003839189766745104941314046669024",
"8767354229259807487863073445320701529",
"258044901122772059813860144767523487741",
"215888717602986581480611818046207687163",
"64093506358938322256435977547051713310",
"26601582307578820198425184371002004315",
"292073259630724876043871324088588455750",
"335746605222840410194617116794563461261",
"223426563587465698151271650911479191200",
"106787159439333510125892618262047656741",
"306671596105021606723565840279316935555",
"4492242070341436705545112940525600498",
"60117476739214021112355815935311301786",
"130954374578358842421548033130687406430",
"123631467600494053246138250245989334155",
"283761261295960780233506868346239201658",
"80616835497015648332642079971510457545",
"29103807711737593254871103867565087583",
"292073259630724876043871324088588455750",
"335746605222840410194617116794563461261",
"223426563587465698151271650911479191200",
"106787159439333510125892618262047656741",
"306671596105021606723565840279316935555",
"4492242070341436705545112940525600498",
"60117476739214021112355815935311301786",
"48986700975387457319246976089563895381",
"72007034279595099422976621220921363626",
"155067900394381029960935636547336216665",
"226934284455791990700566954274304827675",
"185614181937380049309500859076183877609",
"292073259630724876043871324088588455750",
"335746605222840410194617116794563461261",
"223426563587465698151271650911479191200",
"106787159439333510125892618262047656741",
"306671596105021606723565840279316935555",
"4492242070341436705545112940525600498",
"60117476739214021112355815935311301786",
"210592834916847224449871921571960640883",
"124802572908700230836561118527635428243",
"1349704617031324451493231169501776235",
"135657150478516685984201204836354267074",
"216324117239004919782130260005097416330",
"292073259630724876043871324088588455750",
"335746605222840410194617116794563461261",
"223426563587465698151271650911479191200",
"106787159439333510125892618262047656741",
"306671596105021606723565840279316935555",
"4492242070341436705545112940525600498",
"60117476739214021112355815935311301786",
"309146729886983787285324704882213669978",
"182907737596055987208627226691267704953",
"166046051446706218114862849717433707601",
"8702105953136714921256932522822576423",
"131758218639255507263100341373317018189",
"292073259630724876043871324088588455750",
"335746605222840410194617116794563461261",
"223426563587465698151271650911479191200",
"106787159439333510125892618262047656741",
"306671596105021606723565840279316935555",
"4492242070341436705545112940525600498",
"60117476739214021112355815935311301786",
"18981400529909147456947956943410928559",
"184669478060621684186088749202409463731",
"155907154279887056948780149075951569391",
"163073795711991950841407472437900477066",
"27943772441096713304485705657252416609",
"188517695459517058715089519874443722389",
"112201012433687254665181844656843702710"
],
"threshold": 0.9
},
"id": "CVE-2026-14367-8b389718",
"target": {
"file": "drivers/i3c/i3c_ibi_workq.c"
},
"source": "https://github.com/zephyrproject-rtos/zephyr/commit/e87e7e2ac7c5ded0af3fb5934518cc5688e458cc",
"signature_version": "v1"
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 509.0,
"function_hash": "228175844605962670338607669149061533440"
},
"id": "CVE-2026-14367-ae2bdb59",
"target": {
"function": "i3c_ibi_work_enqueue_target_irq",
"file": "drivers/i3c/i3c_ibi_workq.c"
},
"source": "https://github.com/zephyrproject-rtos/zephyr/commit/e87e7e2ac7c5ded0af3fb5934518cc5688e458cc",
"signature_version": "v1"
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 328.0,
"function_hash": "247168384817398977281801354843534960016"
},
"id": "CVE-2026-14367-ba0223c4",
"target": {
"function": "i3c_ibi_work_enqueue",
"file": "drivers/i3c/i3c_ibi_workq.c"
},
"source": "https://github.com/zephyrproject-rtos/zephyr/commit/e87e7e2ac7c5ded0af3fb5934518cc5688e458cc",
"signature_version": "v1"
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 343.0,
"function_hash": "264768707350783351056997890833665864976"
},
"id": "CVE-2026-14367-c80b04e1",
"target": {
"function": "i3c_ibi_work_enqueue_controller_request",
"file": "drivers/i3c/i3c_ibi_workq.c"
},
"source": "https://github.com/zephyrproject-rtos/zephyr/commit/e87e7e2ac7c5ded0af3fb5934518cc5688e458cc",
"signature_version": "v1"
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 380.0,
"function_hash": "137317057183191495203517575389439799353"
},
"id": "CVE-2026-14367-ca32fd62",
"target": {
"function": "i3c_ibi_work_enqueue_cb",
"file": "drivers/i3c/i3c_ibi_workq.c"
},
"source": "https://github.com/zephyrproject-rtos/zephyr/commit/e87e7e2ac7c5ded0af3fb5934518cc5688e458cc",
"signature_version": "v1"
},
{
"signature_type": "Function",
"deprecated": false,
"digest": {
"length": 373.0,
"function_hash": "253658208096532482155938579098336766024"
},
"id": "CVE-2026-14367-e332f9b9",
"target": {
"function": "i3c_ibi_work_enqueue_hotjoin",
"file": "drivers/i3c/i3c_ibi_workq.c"
},
"source": "https://github.com/zephyrproject-rtos/zephyr/commit/e87e7e2ac7c5ded0af3fb5934518cc5688e458cc",
"signature_version": "v1"
}
]
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-14367.json"
"2026-09-03T08:07:09Z"