CVE-2026-41572Note Mark是一款开源笔记应用。在0.19.3版本之前,存在一个信息泄露漏洞。当笔记所有者软删除公共书籍后,其内部的笔记和上传资产并未真正隔离,仍可通过特定API端点被访问。原因是后端GORM框架的软删除作用域未能正确应用于原始SQL JOIN查询。未认证的攻击者若持有笔记ID或slug,即可绕过删除机制读取本应失效的敏感内容。
该漏洞的根本原因在于Note Mark应用后端使用了GORM框架,但在查询笔记和资产时使用了原始SQL的“JOIN books ...”子句。GORM的软删除功能通常通过添加“deleted_at IS NULL”条件来实现,但这种默认作用域无法自动穿透到原始SQL查询中。因此,当管理员软删除一个公共书籍后,数据库仅标记了书籍记录为已删除,而关联的笔记和资产记录并未正确被软删除逻辑过滤。攻击者若预先获取了笔记ID或slug路径,即便在书籍被删除后,依然可以直接请求相关API端点,绕过权限验证,成功获取到本应不可见的笔记内容和资产文件。这表明在混合使用ORM和原生SQL时,必须显式处理软删除逻辑。