CVE-2024-0710
- 漏洞:CVE-2024-0710(未认证表单提交唯一ID修改)
- CVSS:5.3(中危)
- 软件:GP Unique ID (gp-unique-id)
- 受影响版本:<= 1.5.5
- 已修补版本:1.5.6
- 开发者:Gravity Wiz
- 研究员:Karl Emil Nikka, Nikka Systems
- 公开日期:2024-04-10
- 最后更新:2024-04-18
概述
未认证的表单提交者可以为本应始终随机或顺序值的字段选择自定义值。此漏洞仅影响那些出于法律、功能或安全原因必须保持随机或顺序值的站点。
背景
GP Unique ID 是 Gravity Forms 的附加组件。它在成功提交后为条目分配唯一ID。与条目实际的数据库ID不同,GP Unique ID(以下简称GPUID)可由表单创建者自定义,遵循特定的语法,包括起始数字、字符集、长度、前缀和后缀。GPUID 存储在一个自定义的 Gravity Forms 条目字段中。该字段在前端是隐藏的。
插件开发者列出了 GP Unique ID 的常见用例:
- 为每个条目提供固定长度的确认或参考编号。
- 维护顺序发票编号。
- 生成可用于后续表单提交的唯一优惠券代码。
- 生成抽奖活动中使用的唯一编号。
漏洞
GP Unique ID 在表单成功提交后分配 GPUID,但仅当该字段尚未存在值时。这使得表单提交者可以在提交表单时设置自定义的 GPUID。由于字段不为空,因此不会存储真正的 GPUID。因此,访问者可以:
- 设置不符合语法的 GPUID
- 设置非顺序的 GPUID
- 设置非随机的 GPUID
- 设置已经分配给其他条目的 GPUID
补丁
Gravity Wiz 于 2024-04-09 发布了插件的修补版本。站点管理员应更新到修补版本(1.5.6),如果相关,请确保之前的提交未被篡改。
- 2024-01-13 我按照 Project Zero 的90天负责任披露政策向 Gravity Wiz 报告了该漏洞。
- 2024-01-13 我向 Wordfence 的 CNA 提交了漏洞。我拒绝了参与其漏洞赏金计划。
- 2024-01-15 Gravity Wiz 确认已收到报告。
- 2024-01-16 Gravity Wiz 承认了该漏洞,并告知我将发布补丁。
- 2024-01-19 Wordfence 为该漏洞分配了 CVE ID CVE-2024-0710。
- 2024-02-29 我向 Gravity Wiz 发送了45天提醒。
- 2024-04-01 我发送了提醒,告知90天负责任披露窗口将在两周内结束。
- 2024-04-07 Gravity Wiz 向我发送了修补插件的预发布版本。
- 2024-04-09 Gravity Wiz 发布了修补插件,距离初始报告87天(在90天负责任披露窗口内)。