开源 Traccar GPS 跟踪系统中已披露两个安全漏洞,在某些情况下,未经身份验证的攻击者可能会利用这些漏洞来实现远程代码执行。
Horizon3.ai 研究员 Naveen Sunkavally 表示,这两个漏洞都是路径遍历缺陷,如果启用访客注册,则可能会被武器化,这是 Traccar 5 的默认配置。
缺点的简要描述如下 –
- CVE-2024-24809(CVSS 评分:8.5)- 路径遍历:’dir/../../filename’ 和不受限制地上传危险类型的文件
- CVE-2024-31214 (CVSS score: 9.7) – 设备镜像上传中存在不受限制的文件上传漏洞,可能导致远程代码执行
“CVE-2024-31214 和 CVE-2024-24809 的最终结果是,攻击者可以将包含任意内容的文件放置在文件系统上的任何位置,”Sunkavally 说。“但是,攻击者只能部分控制文件名。”
这些问题与程序如何处理设备映像文件上传有关,有效地允许攻击者覆盖文件系统上的某些文件并触发代码执行。这包括与以下命名格式匹配的文件 –
- device.ext,攻击者可以在其中控制 ext,但必须有一个扩展
- blah“,其中攻击者可以控制 blah,但文件名必须以双引号结尾
- blah1“;blah2=blah3,攻击者可以控制 blah1、blah2 和 blah3,但必须存在双引号分号序列和等于符号
在 Horizon3.ai 设计的假设概念验证 (PoC) 中,攻击者可以利用 Content-Type 标头中的路径遍历来上传 crontab 文件并在攻击者主机上获得反向 shell。
但是,这种攻击方法不适用于基于 Debian/Ubuntu 的 Linux 系统,因为文件命名限制禁止 crontab 文件使用句点或双引号。
另一种机制需要利用以 root 用户身份安装的 Traccar 来删除内核模块,或配置 udev 规则以在每次引发硬件事件时运行任意命令。
在易受攻击的 Windows 实例上,还可以通过在 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp 文件夹中放置名为“device.lnk”的快捷方式 (LNK) 文件来实现远程代码执行,该文件随后在任何受害者用户登录到 Traccar 主机时执行。
Traccar 版本 5.1 到 5.12 容易受到 CVE-2024-31214 和 CVE-2024-2809 的攻击。这些问题已在 2024 年 4 月发布的 Traccar 6 中得到解决,该版本默认关闭自注册,从而减少攻击面。
“如果注册设置为 true,readOnly 为 false,deviceReadonly 为 false,则未经身份验证的攻击者可以利用这些漏洞,”Sunkavally 说。“这些是 Traccar 5 的默认设置。”