IPBUF安全漏洞报告
English
CVE-2025-67713 CVSS 6.1 中危

CVE-2025-67713 Miniflux 2 登录重定向钓鱼漏洞

披露日期: 2025-12-11

漏洞信息

漏洞编号
CVE-2025-67713
漏洞类型
URL重定向钓鱼攻击
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Miniflux 2

相关标签

URL重定向钓鱼攻击MinifluxCVE-2025-67713OpenSourceFeedReader认证绕过Go语言

漏洞概述

CVE-2025-67713是Miniflux 2订阅阅读器中存在的一个登录重定向钓鱼漏洞。该漏洞影响版本2.2.14及以下版本,攻击者可利用协议相对URL绕过安全检查,实现登录后的恶意重定向。Miniflux是一个用Go语言编写的开源RSS/Atom订阅阅读器,广泛应用于个人和组织的资讯聚合场景。由于该软件常被部署在私有环境中,用户对其信任度较高,因此钓鱼攻击的成功率也相应提升。攻击者通过构造特殊的redirect_url参数,利用Go语言url.Parse()函数对协议相对URL的处理特性,绕过IsAbs()检查,成功将用户重定向至恶意网站。此类钓鱼攻击可能导致用户凭据泄露、敏感信息被窃取等严重后果。漏洞已于2025年12月11日披露,厂商在2.2.15版本中进行了修复。建议所有使用Miniflux的用户立即升级到最新版本或采取临时缓解措施。

技术细节

Miniflux 2在处理登录后的重定向URL时存在安全缺陷。漏洞的核心问题在于对redirect_url参数的安全验证逻辑:当url.Parse(redirect_url).IsAbs()返回false时,系统错误地认为该URL是安全的,无需进一步验证。在Go语言中,url.Parse()函数对协议相对URL(如//ikotaslabs.com)的处理方式如下:解析后的URL对象,其Scheme字段为空字符串,而IsAbs()方法的判断依据是Scheme是否非空。因此,//ikotaslabs.com经过解析后,IsAbs()返回false,绕过了安全检查。然而,当浏览器实际访问//ikotaslabs.com时,会使用当前页面的协议(HTTP或HTTPS),将用户重定向到攻击者控制的域名。攻击者可以利用此漏洞构造钓鱼链接,诱骗已登录用户在不知情的情况下跳转到仿冒网站。由于Miniflux的用户已通过身份认证,攻击者可直接利用重定向后的页面进行凭据收集或会话劫持。修复方案在版本2.2.15中改进了URL验证逻辑,使用更严格的URL安全检查方法替代简单的IsAbs()判断。

攻击链分析

STEP 1
步骤1
攻击者注册一个与目标网站相似的钓鱼域名(如ikotaslabs.com),并搭建仿冒登录页面
STEP 2
步骤2
攻击者构造恶意链接:https://miniflux-instance/login?redirect_url=//ikotaslabs.com,该链接中的redirect_url使用协议相对URL格式
STEP 3
步骤3
受害者点击恶意链接访问Miniflux登录页面,使用正常凭据登录
STEP 4
步骤4
Miniflux服务器接收登录请求,解析redirect_url参数(//ikotaslabs.com),调用url.Parse().IsAbs()进行检查
STEP 5
步骤5
由于协议相对URL的Scheme为空,IsAbs()返回false,服务器错误地认为该URL安全,无需额外验证
STEP 6
步骤6
登录成功后,服务器执行302重定向,将用户浏览器重定向到//ikotaslabs.com
STEP 7
步骤7
浏览器根据当前页面协议(https://)自动补全URL为https://ikotaslabs.com,用户被带到攻击者控制的钓鱼网站
STEP 8
步骤8
受害者在钓鱼页面输入敏感信息(如凭据、API密钥等),攻击者窃取这些数据

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// PoC for CVE-2025-67713 - Protocol-relative URL bypass // The following URL bypasses IsAbs() check but redirects to attacker domain // Malicious redirect URL: // https://miniflux-instance/login?redirect_url=//ikotaslabs.com/phishing // In Go code, this would be parsed as: const maliciousUrl = '//ikotaslabs.com/phishing'; const url = new URL(maliciousUrl, 'https://miniflux.example.com'); console.log('Parsed URL scheme:', url.protocol); // Output: 'https:' console.log('Is absolute:', url.protocol !== ''); // Output: true // Example attack scenario: // 1. Attacker crafts: https://miniflux.example.com/login?redirect_url=//evil-phishing-site.com // 2. After successful login, Miniflux checks: url.Parse(redirectUrl).IsAbs() // 3. Result: false (scheme is empty in protocol-relative URL) // 4. Miniflux considers URL safe and performs redirect // 5. Browser interprets //evil-phishing-site.com as https://evil-phishing-site.com // 6. User is redirected to attacker's phishing site

影响范围

Miniflux 2.2.14及以下版本

防御指南

临时缓解措施
如果无法立即升级到最新版本,可采取以下临时缓解措施:1) 在反向代理层面(如Nginx)配置URL重定向限制规则,过滤协议相对URL(以//开头的URL);2) 限制Miniflux的网络访问,仅允许受信任的网络环境访问;3) 提醒用户不要点击来源不明的登录链接,在登录后注意检查浏览器地址栏的URL是否正确;4) 考虑使用浏览器安全插件识别钓鱼网站;5) 定期检查服务器访问日志,排查异常的登录和重定向行为。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表