CVE-2026-21695Titra是一款开源项目时间追踪软件。在0.99.49及以下版本中,存在一处严重的Mass Assignment(批量赋值)安全漏洞。该漏洞存在于API接口中,攻击者可通过customfields参数向时间条目注入任意字段,从而绕过业务逻辑控制。由于系统在合并用户控制的输入时直接使用了JavaScript的展开运算符(...customfields),且仅验证了customfields为Object类型,却未对其内部键名进行任何过滤和校验,导致攻击者可利用此漏洞覆盖受保护字段如userId、hours和state等。此漏洞需要认证用户权限方可利用,CVSS评分4.3,属于中等严重程度。虽然该漏洞不影响系统的机密性和可用性,但会对数据完整性造成一定影响,攻击者可借此篡改他人的时间记录或伪造工作时长,存在一定的安全风险。
该漏洞的技术根源在于Titra应用在处理时间条目更新请求时,直接将用户通过customfields参数提交的JSON对象展开合并到数据库文档中。具体来说,代码使用了类似{...existingData, ...customfields}的方式进行对象合并。系统仅通过类型检查确认customfields为Object类型,但未对其内部包含的键进行白名单验证或黑名单过滤。攻击者可利用此特性注入任意键值对,包括系统内部使用的受保护字段。例如,攻击者可在customfields中包含userId字段来伪造其他用户的时间记录,或修改hours字段来虚报工作时长,或更改state字段来操纵时间条目的审批状态。由于该漏洞位于API层面,攻击者可通过构造特定的HTTP请求来触发,攻击过程相对简单且隐蔽。