CVE-2026-85602
moderateUnauthenticated reCAPTCHA v3 bypass in Grav Form plugin
The Grav Form plugin (getgrav/grav-plugin-form) versions 8.0.6 through 9.1.19 selects which reCAPTCHA validation path to run based solely on which response field name is present in the submitted form payload. On a site configured for reCAPTCHA v3, an unauthenticated attacker can submit their v3 token under the v2 field name (g-recaptcha-response instead of token), which routes validation into the v2 branch that never applies the score threshold or verifies the expected action. This results in a complete bypass of the site's reCAPTCHA v3 bot protection, allowing automated traffic to submit forms and pollute submissions, leads, or downstream form-driven workflows. Any Grav site running the Form plugin in the affected range with reCAPTCHA v3 configured is exposed; the data does not describe v2-only configurations as vulnerable. No public proof-of-concept or confirmed in-the-wild exploitation is known, and EPSS currently estimates a 0.3% probability of exploitation within 30 days.
What to do: Upgrade the Form plugin to version 9.1.20 or later, which fixes the reCAPTCHA version-selection flaw. As an interim measure, switch exposed forms to server-verified reCAPTCHA v2 or layer additional anti-spam controls (e.g., rate limiting and server-side validation), and audit any workflows that trust v3 scores for automated decisions such as lead acceptance or notification. Although exploitation status is currently 'none known', the flaw is network-reachable and unauthenticated (CVSS 4.0 base 9.3), so patch promptly.
| Grav (getgrav) Form plugin (getgrav/grav-plugin-form) | 8.0.6 through 9.1.19; fixed in 9.1.20 |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
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.
- Weakness
- CWE-807
- Vector
- CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
In the news0 stories
No ingested article mentions this CVE yet.