15年前的雷诺汽车 Linux 导航系统软件被破解 可执行任意 root 命令
代码卫士 2026-11-04 17:16 北京

研究人员不断在更新的车辆中发现同样的模式。
聚焦源代码安全,网罗国内外最新资讯!
安全研究员Rasmus Moorats发现,他可在2014款雷诺Latitude的导航单元上以root权限执行任意命令。
该单元是一台TomTom Carminat LIVE车机,运行基于Linux 2.6.28.10构建的定制系统。这一案例说明老旧的车上软件仍可能暗藏严重弱点。

夏令时结束后,时钟无法调整

研究员Rasmus Moorats想在爱沙尼亚夏令时结束后调整时钟时,发现“设置时间”选项消失,且在没有正版地图SD卡时,设置菜单无法打开。NNS.ee的分析师指出,问题源于该单元从SD卡读取脚本文件的方式。他们提到可组合利用多个小缺陷获得设备的完全控制权。这类汽车很常见,许多车机中存有多年积累的手机联系人和位置数据,而更新的车型也面临类似风险。例如,PerfektBlue蓝牙漏洞使数百万辆汽车处于风险之中。

破解15年前的Linux 导航系统软件

该单元的防护措施比人们对2011年软件的预期更严密。大多数分区为只读、禁止执行(noexec),或两者兼有。系统还会对SD卡进行DRM校验,因此空白卡或复制卡会被拒绝。更新镜像同样带有签名,因此研究员无法直接刷入修改过的系统镜像。
为安全地研究该单元,研究员用QEMU构建了一个模拟器。模拟器显示了单元启动时会从SD卡读取哪些文件。其中一个是master.script,它是用于自动化屏幕操作的小脚本;而名为ttn的程序负责解析该脚本,ttn以root身份运行。
该脚本中有两个命令被证明可利用。SHEX用于从系统运行程序,但它只接受一个单词,因此无法传递参数。LOG命令向文件写入一行纯文本,并存在路径遍历漏洞。在日志文件路径中加入“../”,写入者便可到达预期目录之外。由于ttn以root运行,每次写入也以root权限执行。
仅凭其中任何一个漏洞无法获取 root 权限,因为root文件系统为只读,SD卡也无法运行程序。研究员随后借用了内核漏洞利用中的一种技巧。他用LOG命令写入决定Linux在程序崩溃时执行何种操作的设置/proc/sys/kernel/core_pattern。他在其中写入一个管道命令,使内核从SD卡启动/bin/sh并执行脚本。内核随后以root权限运行该脚本。为触发崩溃,他用SHEX启动/bin/dbus-monitor;该程序在找不到系统总线时会中止。最终脚本只有三行。
他的第一个验证很简单:载荷重启了该单元。随后,他利用获得的访问权限,用dd备份了内部存储。他在/mnt/flash/settings.dat中找到时间设置,并将偏移量从UTC+3改为UTC+2。

并非远程威胁,但设计问题仍在

该案例是在可物理接触汽车的情况下开展的研究项目,因此不构成远程威胁。攻击者需要插入一张预先制作的SD卡,且驾驶员需在“Execute master.script?”提示下选择“是”。虽然这样做这限制了风险,但并未消除风险。共享汽车、租车或进店维修,都可能给他人提供可乘之机。更深层的问题在于设计。该单元信任来自可移动介质的脚本,以root身份运行解析器,且不清理文件路径。而这些是嵌入式设备中的常见错误,只要汽车还在路上行驶,它们就会一直存在。一辆车可以开15年甚至更久,但车机很少获得补丁。
研究人员不断在更新的车辆中发现同样的模式。比如日产Leaf的信息娱乐漏洞表明,薄弱的蓝牙组件可导致车门、后视镜和转向被控制。该单元运行源自2013年的Linux 3.14。车机也是以牟利为目的的犯罪分子的目标。最近一份关于Android车机屏幕恶意软件的报告描述了一个多阶段下载器,它利用内置更新路径,将受感染的屏幕接入广告欺诈和代理僵尸网络。即便在该案例中,报告也未显示攻击者能控制转向或制动。老旧Linux设备在其他方面同样暴露在外。例如,Kairos僵尸网络会接管允许无密码Telnet root登录的Linux设备。
老款汽车的车主可选的应对措施有限。他们应避免让来路不明的SD卡和USB存储设备接触车机,并且只从可信卖家处购买地图卡。此外,还应向经销商询问是否存在安全更新。
代码卫士试用地址:https://sast.qianxin.com/
开源卫士试用地址:https://oss.qianxin.com/
原文链接
https://cybersecuritynews.com/renault-cars/
题图:Pixabay License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。


奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。

觉得不错,就点个 “在看” 或 "赞”
本文转载自微信公众号「代码卫士」,查看原文。版权归原作者所有,如有侵权请联系删除。