IPBUF安全漏洞报告
English
CVE-2026-35490 CVSS 9.8 严重

CVE-2026-35490 changedetection.io认证绕过漏洞

披露日期: 2026-04-07

漏洞信息

漏洞编号
CVE-2026-35490
漏洞类型
认证绕过
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
changedetection.io

相关标签

认证绕过changedetection.ioFlask权限漏洞CVE-2026-35490

漏洞概述

changedetection.io 0.54.8 之前版本存在严重认证绕过漏洞。由于Flask框架中装饰器顺序配置错误,导致关键路由的认证检查机制失效。未授权攻击者可无需任何凭证,直接访问受保护的管理接口及敏感功能,完全绕过身份验证,从而获取敏感数据或控制权。

技术细节

该漏洞源于Python Flask框架中装饰器的堆叠顺序错误。在changedetection.io的0.54.8版本之前,开发者错误地将`@login_optionally_required`认证装饰器放置在`@blueprint.route()`路由注册装饰器之前(即外层)。根据Flask的运行机制,`@route()`必须作为最外层装饰器,因为它负责将下方的函数注册到URL路由映射表中。当装饰器顺序反转时,`@route()`实际上注册的是未经认证包装的原始函数,导致后续的认证逻辑完全被剥离出调用链。这使得本应受保护的端点对未授权网络请求完全开放,攻击者无需提供任何凭证即可直接访敏感功能。

攻击链分析

STEP 1
1. 发现目标
攻击者识别出运行changedetection.io 0.54.8之前版本的目标服务。
STEP 2
2. 发送请求
攻击者直接向受保护的API端点或管理页面发送HTTP请求,且不携带任何认证Cookie或Token。
STEP 3
3. 绕过认证
由于Flask装饰器顺序错误,服务器端未执行认证逻辑,直接返回了敏感数据或页面内容。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL (Example of a protected endpoint) target_url = "http://target-ip:5000/api/v1/watches" # Send a request without authentication headers # Due to the decorator order bug, the authentication check is skipped response = requests.get(target_url) if response.status_code == 200: print("[+] Vulnerability confirmed! Access granted without authentication.") print("[+] Response data:", response.text) else: print("[-] Target may not be vulnerable or patched.")

影响范围

changedetection.io < 0.54.8

防御指南

临时缓解措施
建议立即升级至0.54.8或更高版本。若无法立即升级,应通过网络ACL限制访问来源IP,或在反向代理层增加额外的身份验证机制(如Basic Auth)以阻断未授权访问。

参考链接

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