ApostropheCMS: el token de respuesta CAPTCHA no está codificado en URL
Resumen
La verificación de CAPTCHA en formularios e inicio de sesión interpola el token del widget proporcionado por el usuario sin codificar en la URL o cuerpo de verificación del servidor. Esto permite que un token manipulado inyecte parámetros de consulta en la solicitud de verificación hacia reCAPTCHA/hCaptcha.
Detalles
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— mismo patrón para el inicio de sesiónpackages/login-hcaptcha/index.js:47—body: 'response=${token}&secret=${secret}'
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)
Impacto
Bajo: un token manipulado introduce pares key=value adicionales (secret, response extra) en la llamada saliente de verificación, provocando fallos de verificación (denegación de servicio del control de captcha y de los flujos de formulario e inicio de sesión protegidos) y facilitando pruebas automatizadas de elusión; no hay filtración de secretos.
Qué hacer
Construya la solicitud de verificación con URL + searchParams (o encodeURIComponent tanto en secret como en response), y valide el token contra ^[A-Za-z0-9._-]{1,2048}$ antes de su uso.
Actualice a las versiones corregidas:
@apostrophecms/form: versión 1.5.5 o superior@apostrophecms/login-hcaptcha: versión 1.3.0 o superior@apostrophecms/login-recaptcha: versión 1.2.1 o superior
Software afectado
Haz clic en una tecnología para ver todas sus vulnerabilidades.
| Plataforma | Paquete | Versiones vulnerables | Corregida en |
|---|---|---|---|
| Paquete de npm | @apostrophecms/form | < 1.5.5 | 1.5.5 |
| Paquete de npm | @apostrophecms/login-hcaptcha | < 1.3.0 | 1.3.0 |
| Paquete de npm | @apostrophecms/login-recaptcha | < 1.2.1 | 1.2.1 |
Referencias
- 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
- Vector CVSS
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- Debilidad (CWE)
CWE-116- Plataforma
- npm
- Paquete
@apostrophecms/form, @apostrophecms/login-hcaptcha, @apostrophecms/login-recaptcha- Publicada
- 20.10.2026
- Actualizado
- 20.10.2026 21:25
Fuentes y licencias · Editado o traducido por DockRay; se mantienen los derechos y las licencias de las fuentes.
OSV / GitHub Advisory Database - GHSA-44qr-rrjg-2cqq - CC BY 4.0
Historial de vulnerabilidades: @apostrophecms/form
Todas las vulnerabilidades publicadas de este paquete (Paquete de npm), de la más reciente a la más antigua. Muestra si es un fallo aislado o un paquete que hay que vigilar.
- Entradas en total
- 2
- Primera → última
- 10.2026 10.2026
- Sin corrección
- 0
- Explotada en ataques
- 0
Distribución por gravedad
- Media 2
Divulgaciones por año
- 2026: 2
-
ApostropheCMS: el token de respuesta CAPTCHA no está codificado en URL esta entrada
Identifica las vulnerabilidades de tu aplicación
Con la integración de DockRay y el inventario de software activado, DockRay compara las versiones notificadas de los componentes con las vulnerabilidades conocidas y avisa de las coincidencias confirmadas. La cobertura depende de la tecnología compatible y de los avisos disponibles.