Media

ApostropheCMS: Carga multipart no autenticada e ilimitada provoca DoS por agotamiento de disco

  • Publicada: 20.10.2026
  • Actualizado: 20.10.2026 21:23

Resumen

El endpoint de envío de formularios ejecuta multer({ dest: os.tmpdir() }).any() antes de la autenticación, clave de API, lógica equivalente a CSRF o comprobación de existencia del formulario, sin límites de tamaño, recuento ni tasa. Los usuarios no autenticados pueden transmitir cuerpos sin límite al disco por solicitud; la limpieza ocurre solo tras recibir el cuerpo completo.

Detalles

packages/form/index.js apiRoutes.post.submit (L274–296): [ multer({ dest: os.tmpdir() }).any(), self.normalizeFiles, async function (req) { try { submitForm } finally { unlink files } } ]. Sin limits, sin limitación de tasa y sin validación previa. "CSRF" es una cookie de doble envío de valor fijo (vulnlab.csrf=csrf, establecida en cualquier GET, express/index.js L694–703), fácilmente obtenible de forma anónima.

PoC

bash
$ curl -s -c csrfjar.cookies http://localhost:3100/        # get vulnlab.csrf=csrf (any GET)
$ df -P /tmp                                                # before: used=1105212
$ curl -b csrfjar.cookies -X POST http://localhost:3100/api/v1/@apostrophecms/form/submit \
      -F "file=@/tmp/opencode/big.bin;type=application/octet-stream" &
   DURING transfer:    used=1148668
   still transferring: used=1226936        # +121MB mid-transfer on disk
   http=500 time=1.78s sent=209715411B     # generic error AFTER full staging
# Anonymous, zero credentials. 200MB written to /tmp pre-validation.

Impacto

Cualquier cliente no autenticado puede forzar al servidor a persistir cuerpos completos de solicitudes en el sistema de archivos temporal y decodificarlos con la CPU; las solicitudes paralelas agotan el disco /tmp (caída del proceso/host) y saturan el bucle de eventos, constituyendo un DoS remoto trivial. Las transferencias canceladas conllevan el riesgo de dejar archivos huérfanos (sin limpieza de req.aborted).

Mitigación

Qué hacer

Actualice @apostrophecms/form a la versión 1.5.5 o posterior.

Asimismo, configure multer limits (fileSize, fields, parts, fieldSize); realice comprobaciones de autenticación, rol y existencia antes del montaje de multer o dentro del controlador validado; elimine los archivos temporales en la primera lectura y en caso de req.aborted/error; e implemente limitación de tasa por IP.

Software afectado

Haz clic en una tecnología para ver todas sus vulnerabilidades.

PlataformaPaqueteVersiones vulnerablesCorregida en
Paquete de npm @apostrophecms/form < 1.5.5 1.5.5

Referencias

Puntuación CVSS 5.3/10
Vector CVSS
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
Debilidad (CWE)
CWE-770
Plataforma
npm
Paquete
@apostrophecms/form
Publicada
20.10.2026
Actualizado
20.10.2026 21:23

Fuentes y licencias · Editado o traducido por DockRay; se mantienen los derechos y las licencias de las fuentes.

OSV / GitHub Advisory Database - GHSA-89mh-mm8c-mv7f - 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

  1. 2026: 2
  1. ApostropheCMS: Carga multipart no autenticada e ilimitada provoca DoS por agotamiento de disco esta entrada
    Media · 5.3 CVE-2026-113656 < 1.5.5 1.5.5

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.

Conectar tu aplicación
Newsletter DockRay

La seguridad de tus aplicaciones en tu correo

Vulnerabilidades importantes, recomendaciones concretas y consejos prácticos para tus aplicaciones. Elige tus tecnologías y sigue lo que importa para tu proyecto.

  • Un resumen diario de nuevas vulnerabilidades, también las críticas.
  • Avisos sobre actualizaciones importantes.
  • Consejos prácticos sobre seguridad y monitorización de aplicaciones.

Déjalo vacío para recibir avisos de todas las tecnologías.

Suscripción gratuita. Date de baja con un clic en cualquier correo.