CVE-2025-68942CVE-2025-68942是Gitea官方于2025年12月披露的一个中危跨站脚本(XSS)漏洞。该漏洞影响Gitea 1.22.2之前的所有版本,漏洞根源在于创建标签(tags)和分支(branches)功能的搜索输入框实现中错误地使用了v-html指令而非v-text指令。v-html指令会直接将用户输入解析为HTML内容并渲染,这为攻击者提供了在页面中注入恶意JavaScript代码的机会。攻击者可以通过构造包含恶意脚本的标签名或分支名,当其他用户访问相关页面或触发特定操作时,恶意代码将在受害者浏览器中执行,从而实现会话劫持、敏感信息窃取、钓鱼攻击等恶意行为。由于该漏洞需要用户交互(UI:R)且需要低权限(PR:L),攻击门槛相对较低,在多用户协作场景下具有较大的实际威胁。Gitea作为流行的自托管Git服务软件,被广泛应用于各类企业和个人项目中,此漏洞可能影响大量部署实例的安全性。
该漏洞是一个存储型XSS(Stored XSS)漏洞,问题出在Gitea前端组件的模板渲染逻辑中。在创建标签和分支功能模块中,搜索输入框使用了Vue.js的v-html指令来显示用户输入内容。v-html指令会直接将绑定值作为HTML片段解析并插入DOM,这意味着如果攻击者在创建标签或分支时输入恶意的HTML/JavaScript代码,这些代码会被永久存储在服务器端,并在其他用户查看相关页面时被浏览器执行。正常情况下应该使用v-text指令,它会将内容作为纯文本处理,自动转义HTML特殊字符,防止代码注入。攻击者只需在标签名或分支名中嵌入<script>标签或使用事件处理器(如onerror、onload等),即可实现持久化的恶意脚本执行。由于Gitea的标签和分支列表会在多个页面展示,攻击影响范围较广。建议开发者使用v-text替代v-html,或对所有用户输入进行严格的HTML实体编码。