ApostropheCMS: CAPTCHA-Antwort-Token nicht URL-kodiert
Zusammenfassung
Die CAPTCHA-Verifizierung in Formularen und beim Login fügt das vom Benutzer übermittelte Widget-Token ohne URL-Kodierung in die serverseitige Verifizierungs-URL bzw. den Anfragekörper ein. Dadurch kann ein speziell gestaltetes Token Abfrageparameter in die Verifizierungsanfrage an reCAPTCHA bzw. hCaptcha einschleusen.
Details
packages/form/lib/recaptcha.js:39—recaptchaUri = 'https://www.google.com/recaptcha/api/siteverify?secret=${recaptchaSecret}&response=${input.recaptcha}'packages/login-recaptcha/index.js:44— identisches Muster bei der Anmeldungpackages/login-hcaptcha/index.js:47—body: 'response=${token}&secret=${secret}'
Machbarkeitsnachweis (PoC)
input.recaptcha = 'attacker_token&secret=INJECTED_SECRET&something=1'
→ resulting verify URL:
https://www.google.com/recaptcha/api/siteverify?secret=<real>&response=attacker_token&secret=INJECTED_SECRET&something=1
# (replicated exactly from recaptcha.js:39)
Auswirkungen
Gering: Ein manipuliertes Token schmuggelt zusätzliche key=value-Paare (secret, zusätzliche response) in den ausgehenden Verifizierungsaufruf ein. Dies erzwingt Verifizierungsfehler (Denial of Service für das CAPTCHA-Gate sowie geschützte Login- und Formularabläufe) und ermöglicht automatisierte Umgehungstests; es kommt zu keiner Offenlegung von Geheimnissen.
Was zu tun ist
Erstellen Sie die Verifizierungsanfrage mit URL + searchParams (oder encodeURIComponent sowohl auf secret als auch auf response) und validieren Sie das Token vor der Verwendung anhand von ^[A-Za-z0-9._-]{1,2048}$.
Aktualisieren Sie auf die behobenen Versionen:
@apostrophecms/form: Version 1.5.5 oder höher@apostrophecms/login-hcaptcha: Version 1.3.0 oder höher@apostrophecms/login-recaptcha: Version 1.2.1 oder höher
Betroffene Software
Klicken Sie auf eine Technologie, um alle zugehörigen Schwachstellen anzuzeigen.
Verweise
- https://github.com/apostrophecms/apostrophe/security/advisories/GHSA-44qr-rrjg-2cqq
- https://github.com/apostrophecms/apostrophe/commit/9500b8b0e1d630d5e07fbb5fd2c25ed0943845ce
- https://github.com/apostrophecms/apostrophe/commit/f84fd41cbf6c22eb8d0008fc9c25df1f7130b350
- https://github.com/apostrophecms/apostrophe
- https://github.com/apostrophecms/apostrophe/releases/tag/@apostrophecms/form@1.5.5
- CVSS-Vektor
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- Schwäche (CWE)
CWE-116- Plattform
- npm
- Paket
@apostrophecms/form, @apostrophecms/login-hcaptcha, @apostrophecms/login-recaptcha- Veröffentlicht
- 20.10.2026
- Aktualisiert
- 20.10.2026 21:25
Quellen und Lizenzen · Von DockRay bearbeitet oder übersetzt; Rechte und Lizenzen der Quellen bleiben erhalten.
OSV / GitHub Advisory Database - GHSA-44qr-rrjg-2cqq - CC BY 4.0
Schwachstellenhistorie: @apostrophecms/login-recaptcha
Alle veröffentlichten Schwachstellen dieses Pakets (npm-Paket), neueste zuerst. Zeigt, ob es ein einmaliger Ausrutscher ist oder ein Paket, das man im Auge behalten muss.
Dies ist die einzige bekannte Schwachstelle dieses Pakets.
Erkennen Sie Schwachstellen in Ihrer Anwendung
Mit der DockRay-Integration und aktivierter Softwareinventarisierung prüft DockRay gemeldete Komponentenversionen auf bekannte Schwachstellen und benachrichtigt Sie über bestätigte Treffer. Die Abdeckung hängt von der unterstützten Technologie und den verfügbaren Meldungen ab.