جزئیات آسیبپذیری
CVE-2026-44588
SiYuan: URL-encoded title bypasses `escapeAriaLabel`, decoded by `decodeURIComponent` into a tooltip-XSS
شرح رسمی (انگلیسی)
SiYuan is an open-source personal knowledge management system. Prior to 3.7.0, he tooltip mouseover handler in app/src/block/popover.ts reads aria-label via getAttribute and passes it through decodeURIComponent before assigning to messageElement.innerHTML in app/src/dialog/tooltip.ts:41. The encoder used at the producer side, escapeAriaLabel in app/src/util/escape.ts:19-25, only handles HTML special characters (", ', <, literal <) — it leaves %XX URL-escapes untouched. So a doc title containing %3Cimg src=x onerror=...%3E round-trips through escapeAriaLabel and the HTML attribute layer unmodified. Then decodeURIComponent on the consumer side converts %3C to a literal < character (a real <, NOT a character reference). When that string is assigned to innerHTML, the HTML5 tokenizer enters TagOpenState on the literal <, parses the <img> element, and the onerror handler fires. Because the renderer runs with nodeIntegration: true, contextIsolation: false, webSecurity: false (app/electron/main.js:407-411), require('child_process') is reachable from the injected handler, escalating to arbitrary code execution.This vulnerability is fixed in 3.7.0.
امتیازهای CVSS
| امتیاز | نسخه | منبع | بردار |
|---|---|---|---|
| 9.4بحرانی | 4.0 | CVEProject cvelistV5 (CNA) (GitHub_M) | CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H |
محصولات آسیبپذیر
| فروشنده | محصول | نسخهها | منبع |
|---|---|---|---|
| siyuan-note | siyuan | < 3.7.0 | CVEProject cvelistV5 (CNA) |
منابع و راهنماها
۱- https://github.com/siyuan-note/siyuan/security/advisories/GHSA-25rp-h46x-2hjm x_refsource_CONFIRM
اطلاعات
- تاریخ انتشار
- ۱۴۰۵/۰۲/۲۴
- آخرین بهروزرسانی
- ۱۴۰۵/۰۲/۲۵
- وضعیت
- منتشرشده
- صادرکننده (CNA)
- GitHub_M
پیشبینی بهرهبرداری (EPSS)
ارزیابی SSVC (CISA)
- قابل خودکارسازی
- خیر
- وضعیت بهرهبرداری
- اثبات مفهوم
- اثر فنی
- کامل
ضعفها (CWE)
- CWE-79Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
- CWE-116Improper Encoding or Escaping of Output
- CWE-1188Insecure Default Initialization of Resource