漏洞复现|ReactRouter未授权路径遍历(CVE-2025-61686)导致任意文件操作漏洞

admin 2026-01-20 01:33:42 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文复现ReactRouterCVE-2025-61686未授权路径遍历漏洞,根源在于文件存储函数缺少路径校验。攻击者可利用../实现任意文件操作,但受限于是否配置Session加密密钥。文章详述了代码分析与复现过程,提供了读写删接口的代码示例,强调了安全配置的关键性。 综合评分: 88 文章分类: 漏洞分析,漏洞POC,代码审计,WEB安全


cover_image

漏洞复现 | React Router 未授权路径遍历(CVE-2025-61686)导致任意文件操作漏洞

原创

俺不是鸡哥 俺不是鸡哥

渗透结束-非常安全

2026年1月19日 11:00 北京

前言

这里简单记录一下React Router 未授权路径遍历漏洞 (CVE-2025-61686)复现过程,如有写的不正确的地方欢迎各位师傅指正。

参考

提交人:brophdawg11

CVE编号:CVE-2025-61686

漏洞危害:严重

项目star量:56.1k

项目地址:

https://github.com/remix-run/react-router

参考地址:

https://github.com/remix-run/react-router/security/advisories/GHSA-9583-h5hc-x8cw

流程

位置:

packages/react-router-node/sessions/fileStorage.ts

问题出现在createFileSessionStorage核心工具函数,该函数的作用是创建一个基于本地文件系统来持久化存储用户Session会话数据的管理器

通过查看发现createData、readData、updateData和deleteData内部方法都调用了getFile函数,并在对比新旧代码处,可以看到历史版本中getFile函数无任何校验和拦截处理,在新版本中限制必须是16位的字符

那么就攻击者可以通过传入../来控制要新增、删除、查看和覆盖文件,如下所示为删除方法的内容

跟进上层

位置:

packages/react-router/lib/server-runtime/sessions.ts

里面有getSession、commitSession和destroySession方法,分别用于读取、提交和删除会话所用

跟进commitSession方法调用的cookie.serialize()

位置:

packages/react-router/lib/server-runtime/cookies.ts

查看内容后继续跟到encodeCookieValue方法,这里会判断开发者是否设置secrets密钥

如有设置则会调用sign方法加密

位置:

packages/react-router/lib/server-runtime/crypto.ts

如果开启加密,则不能通过getSession方法的校验,从而篡改session值,漏洞也就不可被利用了。

解密流程:

getSession — cookie.parse — decodeCookieValue — decodeCookieValue — unsign

该漏洞还是有限制的,主要还是看开发宝宝怎么写,感觉可以做成ctf题用来学习也不错。

复现

初始化项目目录

安装有漏洞的@react-router/node依赖,会收到官方风险提示有7个漏洞

查看漏洞详细内容,这里无视风险继续安装

继续安装其他所需依赖

安装完毕后编写项目文件,利用ai简单写3个存在漏洞的接口,首先是写入文件接口传入两个值,通过cookie传入的值到存在漏洞的commitSession函数中来控制文件写入的位置,而body传入内容则是session对象set方法设置文件中的内容

读取文件接口则是cookie传入参数可控,文件内容由session对象的get方法获取,最后给打印出来

删除文件接口也是cookie传入参数可控,进入存在漏洞的destroySession函数导致文件被删除

启动服务,测试一下

请求写入的接口,当写入的文件存在时则会覆盖

请求删除的接口

请求读取的接口

查看写入和删除的效果

最后


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:渗透结束-非常安全 俺不是鸡哥 俺不是鸡哥《漏洞复现 | React Router 未授权路径遍历(CVE-2025-61686)导致任意文件操作漏洞》

评论:0   参与:  0