---
id: CVE-2026-85602
title: >-
  The Grav Form plugin (getgrav/grav-plugin-form) versions 8.0.6 through 9.1.19
  select the reCAPTCHA version to validate based solely on which response field
  key is present in the submitted payload
summary: >-
  The Grav Form plugin (getgrav/grav-plugin-form) versions 8.0.6 through 9.1.19
  select the reCAPTCHA version to validate based solely on which response field
  key is present in the submitted payload. On a site configured for reCAPTCHA
  v3, a…
severity: medium
cvss: 5.3
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N'
cwe:
  - CWE-807
published: '2026-09-04'
updated: '2026-09-08'
sourceUpdated: '2026-09-08T20:05:53.177'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-85602'
references:
  - url: 'https://github.com/getgrav/grav/security/advisories/GHSA-89j6-8h38-2cc3'
    label: disclosure@vulncheck.com
  - url: >-
      https://www.vulncheck.com/advisories/grav-form-plugin-before-9.1.20-recaptcha-v3-authentication-bypass
    label: disclosure@vulncheck.com
  - url: 'https://github.com/getgrav/grav/security/advisories/GHSA-89j6-8h38-2cc3'
    label: 134c704f-9b21-4f2e-91b3-4a467353bcc0
tags:
  - nvd
epss: 0.00261
epssPercentile: 0.18097
ingestedAt: '2026-09-06T01:47:58.358Z'
---

## Overview

The Grav Form plugin (getgrav/grav-plugin-form) versions 8.0.6 through 9.1.19 select the reCAPTCHA version to validate based solely on which response field key is present in the submitted payload. On a site configured for reCAPTCHA v3, an anonymous attacker can place their v3 token under the v2 field name (g-recaptcha-response instead of token), causing validation to use the v2 branch, which never applies the score threshold or verifies the expected action. This results in a complete bypass of reCAPTCHA v3 bot protection. The issue is fixed in version 9.1.20.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
