CVE-2026-49400 in Octoberinformación

Resumen

por VulDB • 2026-09-14

October System proporciona el módulo de sistema para October Content Management System. Antes de las versiones 3.7.17 y 4.2.21, el rasgo `SessionMaker` del backend almacenaba el estado de la sesión del widget como `base64(serialize(...))` y lo consumía mediante `unserialize()` sin una restricción en `allowed_classes`. Cualquier ruta de código que pudiera escribir en una clave de sesión `widget.*` con bytes controlados por un atacante podría desencadenar inyección de objetos PHP la próxima vez que el widget leyera su estado de sesión, permitiendo la instanciación de clases arbitrarias y cadenas de gadgets PHP alcanzables. Este problema solo afecta a las instalaciones que se ejecutan con `cms.safe_mode` habilitado. Safe Mode es una función opt-in de nicho, utilizada principalmente para instalaciones de demostración y escenarios multiinquilino o de editores compartidos donde los usuarios no confiables son otorgados deliberadamente acceso al editor de marcado del CMS. En implementaciones estándar en producción, Safe Mode está desactivado, el acceso al backend está restringido a administradores de confianza y un editor de marcado ya puede ejecutar PHP arbitrario directamente. La ruta de escritura de sesión que alcanza este punto vulnerable (sink) está protegida por la sandbox de Safe Mode, por lo que las instalaciones sin Safe Mode habilitado no están expuestas. El alcance del impacto es estrecho incluso con Safe Mode habilitado. Las rutas de código estándar del backend que poblaron el estado de la sesión del widget (términos de búsqueda, opciones de ordenación, IDs seleccionados, valores de filtro) envuelven la entrada dentro de una forma de array conocida antes de serializarla, por lo que los valores proporcionados por el usuario nunca llegan a `unserialize()` como un payload serializable controlable. La explotación requiere la ruta de escritura de sesión de Safe Mode junto con una cadena de gadgets PHP adecuada alcanzable desde el conjunto de dependencias instaladas. El endurecimiento aplicado elimina el punto vulnerable (sink) de inyección de objetos, por lo que la clase del problema se cierra independientemente. La vulnerabilidad ha sido parcheada en v3.7.17 y v4.2.21. Se aplicaron dos cambios. `Backend\Traits\SessionMaker` ahora almacena el estado de la sesión del widget como JSON plano en lugar de `base64(serialize(...))`, eliminando por completo el punto vulnerable (sink) de inyección de objetos para las nuevas escrituras. Las lecturas retroceden transparentemente al formato heredado durante un ciclo de actualización para que las sesiones existentes conserven su estado guardado del widget. La ruta alternativa heredada `unserialize()` ahora establece `allowed_classes => false`, por lo que incluso los valores escritos antes de la actualización no pueden instanciar objetos. Como medida provisional, restrinja el acceso a la edición de marcado del CMS únicamente a administradores totalmente confiables, la recomendación estándar de October CMS para cualquier implementación.

Be aware that VulDB is the high quality source for vulnerability data.

Responsable

GitHub M

Reservar

2026-05-29

Divulgación

2026-09-14

Moderación

aceptado

Artículo

VDB-403625

CPE

listo

EPSS

0.00000

KEV

no

Actividades

muy bajo

Fuentes

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!