首页 网络安全 正文
  • 本文约2331字,阅读需12分钟
  • 1
  • 0

Traccar 任意文件读取漏洞CVE-2025-61666

摘要

栋科技漏洞库关注到Traccar for Windows 操作系统上的旧版本存在任意文件读取漏洞,追踪为CVE-2025-61666,CVSS 3.X评分7.2。

Traccar 是一款免费、开源、跨平台 GPS 追踪系统,主打车辆/设备实时定位、电子围栏、报警与报表,兼容 200+ 协议、2000+ 终端。

一、基本情况

Traccar是一个开源的 GPS 跟踪系统,轻量稳定,资源占用低,适合小团队/个人/中小企业,无授权费、无订阅,可以完全私有化部署。

Traccar 任意文件读取漏洞CVE-2025-61666

Traccar 可以有效实现实时追踪、电子围栏、报警、报表、多地图、API 集成功能,支持手机/平板/电脑多端查看,可自托管或云部署。

栋科技漏洞库关注到Traccar for Windows 操作系统上的旧版本存在任意文件读取漏洞,追踪为CVE-2025-61666,CVSS 3.X评分7.2。

二、漏洞分析

CVE-2025-61666漏洞是存在于Windows操作系统上的 Traccar 旧版本中的一个存在任意文件读取漏洞,可能导致敏感信息泄漏风险。

Windows 版Traccar 版本 6.1 至 6.8.1 默认存在该漏洞,而 Traccar 版本 5.8 至 6.0 需要配置启用web.override,才会受到该漏洞影响。

这是因为静态资产Override Servlet旨在用于从覆盖目录中提供自定义徽标等服务,而此Servlet直接在用户提供的路径上调用addPath。

Jetty 中的此方法不会拒绝Windows中的反斜杠,因此在Windows上安装时可能会滥用此功能从文件系统中检索任意文件导致数据泄露。

这源于他们的立场是 Traccar 代码跳过捕获此情况的ResourceService和ContextHandler层,因此关闭为N/A。

简单来说,Windows 版Traccar 版本 5.8-6.0 仅在<entry key='web.override'>时易受攻击。/override</entry>在配置文件中设置。

默认情况下,版本6.1-6.8.1易受攻击,因为默认情况下启用了web覆盖。版本>6.8.1并不容易受到攻击,但我没有仔细分析新代码。

未经授权远程攻击者可利用该接口读取系统重要文件,攻击者可检索Traccar配置文件:https://www.traccar.org/configuration-file/

此文件包含LDAP密码和其他系统的其他密码,这些密码可用于进一步的攻击,而未经身份验证的用户可以检索文件系统上的任何文件。

漏洞代码:https://github.com/traccar/traccar/blob/v6.8.1/src/main/java/org/traccar/web/DefaultOverrideServlet.java

/*
 * Copyright 2023 - 2024 Anton Tananaev (anton@traccar.org)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.traccar.web;

import org.eclipse.jetty.servlet.DefaultServlet;
import org.eclipse.jetty.util.resource.Resource;
import org.traccar.config.Config;
import org.traccar.config.Keys;

import jakarta.inject.Inject;
import java.io.File;
import java.io.IOException;

public class DefaultOverrideServlet extends DefaultServlet {

    private Resource overrideResource;

    @Inject
    public DefaultOverrideServlet(Config config) {
        String override = config.getString(Keys.WEB_OVERRIDE);
        if (override != null) {
            overrideResource = Resource.newResource(new File(override));
        }
    }

    @Override
    public Resource getResource(String pathInContext) {
        if (overrideResource != null) {
            try {
                Resource override = overrideResource.addPath(pathInContext);
                if (override.exists()) {
                    return override;
                }
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
        return super.getResource(pathInContext.indexOf('.') < 0 ? "/" : pathInContext);
    }

    @Override
    public String getWelcomeFile(String pathInContext) {
        return super.getWelcomeFile("/");
    }

}

三、POC概念验证

对于版本5.8-6.8.1,可以通过以下方式简单复制:

在Windows上安装服务或在Windows中将其作为JAR运行

确保启用web.override。

从Linux运行以下命令:

管理员已设置登录后刷新可查看

Traccar 任意文件读取漏洞CVE-2025-61666

四、影响范围

Windows Traccar 版本 6.1 至 6.8.1 

五、修复建议

1、升级至最新版本。

2、利用安全组设置其仅对可信地址开放。

六、参考链接

管理员已设置登录后刷新可查看



扫描二维码,在手机上阅读
评论
更换验证码
友情链接