Akaunting 3.1.21 - 删除确认模态框中的存储型 XSS 漏洞 漏洞概述 Akaunting 3.1.21 存在一个已认证的存储型跨站脚本(XSS)漏洞,位于可复用的删除确认流程中。具有创建或修改记录(如项目)权限的用户,可以在记录名称中存储 HTML/JavaScript。当另一个已认证用户打开该记录的删除确认对话框时,Akaunting 会从存储的名称构建模态框消息,并通过 Vue 的 v-html 将其渲染为 HTML,导致攻击者控制的 JavaScript 在受害者的浏览器会话中执行。 影响范围 受影响产品: Akaunting 受影响版本: 3.1.21 漏洞类型: 存储型跨站脚本 (XSS) 远程可利用: 是 CVSS v4.0 基础评分: 4.8 CVE ID: CVE-2026-11942 修复方案 目前尚无针对此漏洞的补丁。 POC 代码 javascript $name = addslashes($this->model->[$this->modelName]); $name = Str::replace(['\"', '''], '"', $name); $message = trans('general.delete_confirm', [ 'name' => '' . $name . '', 'type' => $type, ]); javascript let message = document.getElementById(delete_id).getAttribute('data-message'); this.confirmDelete(action, title, message, button_cancel, button_delete); html javascript CVE-XSS-ITEM"> ```