Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSubmit crafted response token to public form/login
-
ExploitSmuggle extra parameters into siteverify request
-
ExecutionCorrupt reCAPTCHA/hCaptcha verification call
-
ImpactDisrupt CAPTCHA-gated login or form flow
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding for downstream
|
| Exploitation Conditions | The target must run a vulnerable ApostropheCMS CAPTCHA integration - the Form add-on < 1.5.5, login-recaptcha < 1.2.1, or login-hcaptcha < 1.3.0 - with reCAPTCHA or hCaptcha actually configured and enabled on a form or the login page. No authentication or user interaction is required to reach the vulnerable sink: an attacker simply supplies a crafted 'response' token in the normal submission. Limiting factors: the site must have one of these specific add-ons installed and CAPTCHA enabled (not a core/default ApostropheCMS deployment), and the achievable outcome is limited to disrupting the CAPTCHA gate and automated bypass probing - the vendor confirms no secret disclosure and no proven CAPTCHA bypass. |
| Impact | This is a genuinely low-priority, high-noise issue despite the network-reachable vector. The input provides only a CVSS 4.0 vector (5.3, AV:N/AC:L/AT:N/PR:L/UI:N with uniformly Low VC/VI/VA); no EPSS score and no CISA KEV entry were supplied, so there is no evidence of active exploitation - only the vendor-published PoC in the GHSA advisory demonstrating the parameter-smuggling primitive. The vendor itself is explicit that the real impact is bounded: a crafted token can only inject extra key=value pairs into the outbound reCAPTCHA/hCaptcha verify call, forcing verification failures (a DoS of the CAPTCHA gate and CAPTCHA-gated login/form flows) and enabling automated bypass probing, with 'no secret exfiltration' and no established CAPTCHA bypass. Note a signal conflict: the vendor CVSS uses PR:L (implying authentication) but the affected features - the public Form add-on and the login-page reCAPTCHA/hCaptcha integrations - are reached by anonymous users, so exploitation is realistically unauthenticated (PR:N); the Low integrity/confidentiality impacts in the vendor vector are also debatable since the only concrete effect is availability of the CAPTCHA gate. The 'Authentication Bypass' tag overstates the issue: the advisory states a successful bypass is NOT established. Net: real but minor - patch on a normal cycle, not as an emergency. |
| Exploit ScenarioDerived | An unauthenticated attacker submits a crafted CAPTCHA response token (e.g. 'attacker_token&secret=INJECTED&something=1') to an ApostropheCMS form or login endpoint running a vulnerable CAPTCHA add-on. Because the token is interpolated unencoded into the provider verification URL/body, the smuggled parameters corrupt the siteverify request and force verification to fail, disrupting the CAPTCHA-gated flow; the vendor advisory includes a working PoC of this injection, though it does not achieve a true CAPTCHA bypass or secret disclosure. Given AV:N/AC:L, this probing is trivially automatable at scale. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 20, 2026
Improperly encoded CAPTCHA response tokens let remote attackers disrupt reCAPTCHA and hCaptcha verification in ApostropheCMS deployments that run the Form add-on before 1.5.5, login-recaptcha before 1.2.1, or login-hcaptcha before 1.3.0. Submitting a token containing '&' plus extra key=value pairs injects parameters into the server-side siteverify request, forcing verification failures that break CAPTCHA-gated forms and logins and enabling automated bypass probing; the vendor assessment confirms no secret disclosure and no proven CAPTCHA bypass. No public exploit has been identified at time of analysis, and CISA KEV or EPSS data does not elevate this above a low-priority, denial-of-service-style nuisance for sites that have a vulnerable add-on installed with CAPTCHA actively enabled.
RemediationAI
Vendor-released patch: upgrade @apostrophecms/form to 1.5.5, @apostrophecms/login-recaptcha to 1.2.1, and @apostrophecms/login-hcaptcha to 1.3.0 (release tag https://github.com/apostrophecms/apostrophe/releases/tag/@apostrophecms/form@1.5.5, advisory https://github.com/apostrophecms/apostrophe/security/advisories/GHSA-44qr-rrjg-2cqq, fixes in commits 9500b8b0e1d630d5e07fbb5fd2c25ed0943845ce and f84fd41cbf6c22eb8d0008fc9c25df1f7130b350). Because these are separate npm add-ons rather than core dependencies, verify each package actually present in the project lockfile and update it explicitly rather than assuming a core CMS bump covers it, then re-run a CAPTCHA submission to confirm the patch is loaded. If an upgrade cannot be scheduled immediately, apply a compensating control at the edge: reject or strip submitted CAPTCHA response tokens that do not match ^[A-Za-z0-9._-]{1,2048}$ using a reverse-proxy or WAF rewrite rule on the form and login POST bodies (trade-off: a small risk of false rejections if a provider ever changes its token alphabet), or, if CAPTCHA-gated login and form submissions are not business-critical, temporarily disable the CAPTCHA requirement on those routes (trade-off: the endpoints lose their bot and credential-stuffing barrier entirely, so pair this with rate limiting and IP reputation filtering). Rate-limiting the affected POST endpoints does not fix the injection but reduces the value of automated bypass probing.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 7 packages in npm, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The flaw is CWE-116 (Improper Encoding or Escaping of Output) applied to a server-side HTTP request rather than to rendered HTML. All three affected packages are Node.js/ApostropheCMS add-ons that build the provider verification call by string interpolation of untrusted input into a URL or form body: packages/form/lib/recaptcha.js line 39 interpolates into 'https://www.google.com/recaptcha/api/siteverify?secret=${recaptchaSecret}&response=${input.recaptcha}', packages/login-recaptcha/index.js line 44 repeats the pattern for login, and packages/login-hcaptcha/index.js line 47 places 'response=${token}&secret=${secret}' into the request body. Because the token is never percent-encoded, an attacker who supplies a value such as 'attacker_token&secret=INJECTED_SECRET&something=1' causes duplicate or overwritten query/body parameters in the outbound request to Google or hCaptcha, which reliably causes verification to fail and can be used to probe for bypass behaviour. The upstream advisory and both patch commits replace naive interpolation with WHATWG URL plus searchParams (or explicit encodeURIComponent on both secret and response) and add a token whitelist of ^[A-Za-z0-9._-]{1,2048}$ before use. The CPE data set spans the Apostrophe core entry (cpe:2.3:a:apostrophecms:apostrophe) alongside the three discrete npm packages, but the actual vulnerable sink lives in the add-ons, not the core CMS; exploitation therefore requires a site that has opted into one of these CAPTCHA integrations. The assessed CVSS:3.1 vector AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L matches the observable behaviour: unauthenticated, network-reachable, no confidentiality or integrity impact, only a low availability effect on the CAPTCHA gate itself.
Know when Apostrophecms gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N
Anonymous users reach the public form/login CAPTCHA endpoints so PR:N and UI:N; the only established effect is disruption of the CAPTCHA gate (A:L), with no proven confidentiality or integrity impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
ApostropheCMS is an open-source Node.js content management system. Prior to 1.5.5 of the Form add-on, 1.2.1 of login-recaptcha, and 1.3.0 of login-hcaptcha, these three CAPTCHA integrations interpolate an unencoded user-supplied response token into the provider verification request. Crafted tokens can smuggle request parameters and disrupt CAPTCHA verification and CAPTCHA-gated form or login flows; automated bypass probing is possible, but a successful CAPTCHA bypass or secret disclosure is not established. This issue is fixed in Form 1.5.5, login-recaptcha 1.2.1, and login-hcaptcha 1.3.0.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
More in Apostrophecms
View allIntegrity bypass in ApostropheCMS page management allows authenticated low-privileged editors to move pages into restric
Stored cross-site scripting in ApostropheCMS prior to 2.17.6 enables execution of arbitrary JavaScript in victim browser
'sanitize-html' prior to version 1.0.3 is vulnerable to Cross-site Scripting (XSS). Rated medium severity (CVSS 6.1), th
`sanitize-html` prior to version 2.0.0-beta is vulnerable to Cross-site Scripting (XSS). Rated medium severity (CVSS 6.1
Apostrophe CMS versions prior to 3.3.1 did not invalidate existing login sessions when disabling a user account or chang
Stored XSS in sanitize-html versions 1.9.0 through 2.17.6 allows authenticated low-privileged users to inject executable
Versions of the package sanitize-html before 2.12.1 are vulnerable to Information Exposure when used on the backend and
Apostrophe Technologies sanitize-html before 2.3.2 does not properly validate the hostnames set by the "allowedIframeHos
Apostrophe Technologies sanitize-html before 2.3.1 does not properly handle internationalized domain name (IDN) which co
Prototype pollution in ApostropheCMS versions up to and including 4.30.0 allows an authenticated editor to poison Object
Stored cross-site scripting in the @apostrophecms/seo plugin (versions ≤1.4.2) allows any user holding the default edito
Stored cross-site scripting in ApostropheCMS SEO fields permits an authenticated attacker to inject arbitrary JavaScript
EUVD-2026-105217
GHSA-44qr-rrjg-2cqq
NVD
CVE.org
EPSS
VulDB
Exploit-DB