<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://db.gcve.eu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Wed, 21 Oct 2026 20:27:31 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-113667</title>
      <link>https://db.gcve.eu/vuln/fkie_cve-2026-113667</link>
      <description>&lt;p&gt;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.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;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.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/fkie_cve-2026-113667</guid>
    </item>
    <item>
      <title>GHSA-44qr-rrjg-2cqq — ApostropheCMS: CAPTCHA response token not URL-encoded</title>
      <link>https://db.gcve.eu/vuln/ghsa-44qr-rrjg-2cqq</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: @apostrophecms/form, npm: @apostrophecms/login-recaptcha, npm: @apostrophecms/login-hcaptcha&lt;/p&gt;
&lt;p&gt;**Summary**
Form and login CAPTCHA verification interpolate the user-supplied widget token unencoded into the server-side verification URL/body, allowing a crafted token to inject query parameters into the reCAPTCHA/hCaptcha verify request.&lt;/p&gt;
&lt;p&gt;**Details**
- `packages/form/lib/recaptcha.js:39` — `recaptchaUri = &amp;#39;https://www.google.com/recaptcha/api/siteverify?secret=${recaptchaSecret}&amp;amp;response=${input.recaptcha}&amp;#39;`
- `packages/login-recaptcha/index.js:44` — same pattern for login
- `packages/login-hcaptcha/index.js:47` — `body: &amp;#39;response=${token}&amp;amp;secret=${secret}&amp;#39;`&lt;/p&gt;
&lt;p&gt;**PoC**
```
input.recaptcha = &amp;#39;attacker_token&amp;amp;secret=INJECTED_SECRET&amp;amp;something=1&amp;#39;
→ resulting verify URL:
   https://www.google.com/recaptcha/api/siteverify?secret=&amp;lt;real&amp;gt;&amp;amp;response=attacker_token&amp;amp;secret=INJECTED_SECRET&amp;amp;something=1
# (replicated exactly from recaptcha.js:39)
```&lt;/p&gt;
&lt;p&gt;**Impact**
Low: a crafted token smuggles extra `key=value` pairs (`secret`, extra `response`) into the outbound verify call, forcing verification failures (DoS of the captcha gate and of captcha-gated login/form flows) and enabling automated bypass probing; no secret exfiltration.&lt;/p&gt;
&lt;p&gt;**Remediation** — Build the verify request with `URL` + `searchParams` (or `encodeURIComponent` on both `secret` and `response`), and validate the token against `^[A-Za-z0-9._-]{1,2048}$` before use.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; npm: @apostrophecms/form, npm: @apostrophecms/login-recaptcha, npm: @apostrophecms/login-hcaptcha&lt;/p&gt;
&lt;p&gt;**Summary**
Form and login CAPTCHA verification interpolate the user-supplied widget token unencoded into the server-side verification URL/body, allowing a crafted token to inject query parameters into the reCAPTCHA/hCaptcha verify request.&lt;/p&gt;
&lt;p&gt;**Details**
- `packages/form/lib/recaptcha.js:39` — `recaptchaUri = &amp;#39;https://www.google.com/recaptcha/api/siteverify?secret=${recaptchaSecret}&amp;amp;response=${input.recaptcha}&amp;#39;`
- `packages/login-recaptcha/index.js:44` — same pattern for login
- `packages/login-hcaptcha/index.js:47` — `body: &amp;#39;response=${token}&amp;amp;secret=${secret}&amp;#39;`&lt;/p&gt;
&lt;p&gt;**PoC**
```
input.recaptcha = &amp;#39;attacker_token&amp;amp;secret=INJECTED_SECRET&amp;amp;something=1&amp;#39;
→ resulting verify URL:
   https://www.google.com/recaptcha/api/siteverify?secret=&amp;lt;real&amp;gt;&amp;amp;response=attacker_token&amp;amp;secret=INJECTED_SECRET&amp;amp;something=1
# (replicated exactly from recaptcha.js:39)
```&lt;/p&gt;
&lt;p&gt;**Impact**
Low: a crafted token smuggles extra `key=value` pairs (`secret`, extra `response`) into the outbound verify call, forcing verification failures (DoS of the captcha gate and of captcha-gated login/form flows) and enabling automated bypass probing; no secret exfiltration.&lt;/p&gt;
&lt;p&gt;**Remediation** — Build the verify request with `URL` + `searchParams` (or `encodeURIComponent` on both `secret` and `response`), and validate the token against `^[A-Za-z0-9._-]{1,2048}$` before use.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-44qr-rrjg-2cqq</guid>
    </item>
  </channel>
</rss>
