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와 달리, 이후 GPUID라고 부를 GP Unique ID는 양식 작성자가 특정 구문(정의된 시작 번호, 문자 세트, 길이, 접두사 및 접미사)을 따르도록 사용자 지정할 수 있습니다. 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 Gravity Wiz에 취약점을 보고했습니다 (Project Zero의 90일 책임 공개 정책에 따라).
- 2024-01-13 Wordfence의 CNA에 취약점을 제출했습니다. 버그 바운티 프로그램 참여를 거절했습니다.
- 2024-01-15 Gravity Wiz가 보고서를 수신했음을 확인했습니다.
- 2024-01-16 Gravity Wiz가 취약점을 인정하고 패치를 출시할 것이라고 알려왔습니다.
- 2024-02-29 Gravity Wiz에 45일 알림을 보냈습니다.
- 2024-04-01 90일 책임 공개 기간이 2주 후 종료된다는 알림을 보냈습니다.
- 2024-04-07 Gravity Wiz가 패치된 플러그인의 사전 릴리스 버전을 보냈습니다.
- 2024-04-09 Gravity Wiz가 초기 보고 후 87일 만에 패치된 플러그인을 출시했습니다 (90일 책임 공개 기간 내).