CVE-2026-107842 Contao ModuleSearch 受保护页面信息泄露漏洞
影响未认证访客可获取受保护页面的标题、URL 与索引片段
Contao 是一款开源 CMS。其 ModuleSearch 组件在 contao.search.index_protected 配置由启用改为禁用后,会移除对受保护行的过滤,但不会删除此前已索引的数据行。因此未认证访客可通过搜索获取受保护页面的标题、URL 及索引上下文片段。
影响范围
Contao 4.0.0 至 5.3.50 之前版本,以及 5.7.12 之前版本;修复版本为 5.3.50 和 5.7.12。
漏洞详情
漏洞属于信息泄露类问题。tl_search 表中按行存储授权元数据,当管理员将 index_protected 从启用改为禁用时,系统仅停止过滤受保护行,却未清理保护启用期间已建立的索引记录。攻击者无需认证即可通过搜索功能读取这些残留的元数据与索引文本。受保护页面本身仍返回授权响应,因此该问题泄露的是搜索元数据而非绕过页面访问控制。
利用条件与风险
利用前提是站点曾启用 index_protected 后又将其禁用,且存在已索引的受保护页面。实战中可导致敏感页面标题、URL 与内容片段被未授权获取,属于中危信息泄露。
修复建议
升级至 Contao 5.3.50 或 5.7.12 及以上版本。临时缓解措施为保持 contao.search.index_protected 处于启用状态,或手动清理 tl_search 表中受保护页面的残留索引记录。
Contao is an Open Source CMS. From version 4.0.0 until 5.3.50 and 5.7.12, ModuleSearch can disclose protected page titles, URLs, and indexed context snippets to unauthenticated visitors when contao.search.index_protected is changed from enabled to disabled. Authorization metadata is stored per row in tl_search, but disabling the setting removes the protected-row filter without deleting rows indexed while protection was enabled. The protected pages continue to return an authorization response, so this issue exposes search metadata and indexed text rather than bypassing page access. This issue is fixed in versions 5.3.50 and 5.7.12.