CVE-2026-113667: ApostropheCMS CAPTCHA response token improper encoding

CVE-2026-113667 · Severity: medium · CVSS 4 · Published 2026-10-20

ApostropheCMS form and login CAPTCHA systems fail to properly encode user-supplied tokens before sending them to reCAPTCHA or hCaptcha verification services. An attacker can craft a malicious token containing special characters to inject extra parameters into the verification request, causing CAPTCHA checks to fail and enabling automated bypass attempts against protected login and form submission endpoints.

Vendors: ApostropheCMS, npm.

Quick answers

Is CVE-2026-113667 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-113667 being exploited in the wild.
How severe is CVE-2026-113667?
Medium severity, with a CVSS score of 4, published 20 October 2026.
Which products and versions are affected?
ApostropheCMS Form < 1.5.5; ApostropheCMS Login-Hcaptcha < 1.3.0; ApostropheCMS Login-Recaptcha < 1.2.1; @apostrophecms/form (npm) < 1.5.5, SEMVER:introduced=0,fixed=1.5.5; and 2 more.
Is there a fix for CVE-2026-113667?
Yes. @apostrophecms/form (npm): upgrade to 1.5.5 or later; @apostrophecms/login-hcaptcha (npm): upgrade to 1.3.0 or later; @apostrophecms/login-recaptcha (npm): upgrade to 1.2.1 or later. Until then: Validate the CAPTCHA token against the pattern `^[A-Za-z0-9._-]{1,2048}$` before use, and build verification requests using proper URL encoding (URL + searchParams API or encodeURIComponent) instead of string interpolation.</anigation> <parameter name="timeline">[ { "kind": "disclosed", "at": "2026-10-20" } ] Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-113667 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-113667?
Check whether you run ApostropheCMS Form, ApostropheCMS Login-Hcaptcha, ApostropheCMS Login-Recaptcha or one of the others listed at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • @apostrophecms/form (npm): upgrade to 1.5.5 or later
    npm install @apostrophecms/form@1.5.5
  • @apostrophecms/login-hcaptcha (npm): upgrade to 1.3.0 or later
    npm install @apostrophecms/login-hcaptcha@1.3.0
  • @apostrophecms/login-recaptcha (npm): upgrade to 1.2.1 or later
    npm install @apostrophecms/login-recaptcha@1.2.1

Validate the CAPTCHA token against the pattern `^[A-Za-z0-9._-]{1,2048}$` before use, and build verification requests using proper URL encoding (URL + searchParams API or encodeURIComponent) instead of string interpolation.</anigation> <parameter name="timeline">[ { "kind": "disclosed", "at": "2026-10-20" } ]

Technical details

The vulnerability is an improper encoding flaw (CWE-116) in three npm packages where CAPTCHA response tokens are interpolated unencoded into verification URLs or request bodies. The vulnerable code patterns inject user input directly via template strings in recaptcha.js, login-recaptcha/index.js, and login-hcaptcha/index.js. An unauthenticated attacker can submit a crafted token containing ampersands and equals signs to inject query parameters (such as a fake `secret` value) into the outbound verify request, causing verification to fail or enabling probing for weaknesses in the verification logic.

Affected products

  • ApostropheCMS form < 1.5.5
  • ApostropheCMS login-recaptcha < 1.2.1
  • ApostropheCMS login-hcaptcha < 1.3.0

Identifiers

  • CVE-2026-113667
  • GHSA-44qr-rrjg-2cqq

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.