IPBUF安全漏洞报告
English
CVE-2026-33955 CVSS 8.6 高危

CVE-2026-33955 Notesnook 存储型XSS致远程代码执行漏洞

披露日期: 2026-03-27

漏洞信息

漏洞编号
CVE-2026-33955
漏洞类型
跨站脚本 (XSS), 远程代码执行 (RCE)
CVSS评分
8.6 高危
攻击向量
本地 (AV:L)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Notesnook

相关标签

XSSRCEElectronNotesnookCVE-2026-33955

漏洞概述

Notesnook是一款笔记应用。在3.3.11版本之前,其笔记历史比较查看器中存在存储型XSS漏洞。攻击者可控制笔记头并通过`dangerouslySetInnerHTML`渲染。在桌面端,结合备份恢复功能及Electron的不安全配置(`nodeIntegration: true`),该漏洞可升级为远程代码执行,影响系统安全。

技术细节

该漏洞源于Notesnook在渲染笔记历史对比视图时,直接使用React的`dangerouslySetInnerHTML`属性展示未经充分过滤的攻击者控制内容(笔记头),导致存储型跨站脚本攻击。在Web环境下,此漏洞仅限于浏览器端的脚本执行。但在基于Electron的桌面应用中,由于开发者配置了`nodeIntegration: true`(允许渲染器进程使用Node.js API)和`contextIsolation: false`(禁用上下文隔离),浏览器JS环境与操作系统Node.js环境完全打通。一旦XSS载荷在受害者的桌面客户端执行,攻击者即可利用Node.js的`child_process`模块执行任意系统命令,从而实现从Web漏洞到本地系统远程代码执行(RCE)的跨越。攻击者需诱导用户查看包含恶意笔记头的历史记录,结合备份/恢复功能的加载过程触发漏洞。

攻击链分析

STEP 1
1. 恶意载荷注入
攻击者创建一个包含恶意JavaScript代码的笔记,并将载荷注入到笔记头字段中。
STEP 2
2. 诱导用户访问
攻击者诱导受害者使用Notesnook桌面应用查看该笔记的历史对比记录。
STEP 3
3. 触发XSS漏洞
应用通过`dangerouslySetInnerHTML`渲染笔记头,未经过滤的恶意脚本在受害者浏览器上下文中执行。
STEP 4
4. 利用Electron配置
由于应用配置了`nodeIntegration: true`和`contextIsolation: false`,脚本成功调用Node.js API。
STEP 5
5. 执行远程代码
脚本使用`child_process`模块在受害者的操作系统上执行任意命令,实现远程代码执行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- PoC for CVE-2026-33955 --> <!-- Inject this payload into the note header --> <img src=x onerror=" const { exec } = require('child_process'); // Example: Execute calculator on Windows exec('calc', (err, stdout, stderr) => { if (err) console.error(err); else console.log('Executed'); }); ">

影响范围

Notesnook < 3.3.11

防御指南

临时缓解措施
在未升级版本中,用户应避免查看不可信来源的笔记历史记录,并谨慎处理第三方备份文件的恢复操作。

参考链接

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