Vulnerabilidad en ZOPE
Las versiones 2.* actuales de ZOPE, en sus configuraciones por defecto, permiten que un usuario con permisos de creación o modificación de objetos ZPT o DTML pueda “tirar” el servidor de aplicaciones.
Zope es un servidor de aplicaciones, escrito en lenguaje Python. Su extrema flexibilidad, características novedosas (base de datos de “objetos”, fácil extensibilidad, componentes) y su bajo precio (se trata de una solución “open source”) lo hacen especialmente atractivo para desarrollos web.
Las versiones 2.7.* (en producción) y 2.8 (en desarrollo) contienen un error de programación en el módulo de control de acceso “cAccessControl.c” que permite que un usuario con permisos de creación o modificación de objetos ZPT o DTML pueda provocar la caída del servidor ZOPE.
La próxima actualización de ZOPE 2.7 y 2.8 solucionará el problema. Mientras tanto la única opción disponible consiste en configurar el servidor ZOPE para desactivar el módulo de control de acceso “cAccessControl.c” y sustituirlo por el módulo de control de acceso en Python. Naturalmente esta sustitución supone una pequeña pérdida de rendimiento, pero es la única opción disponible para aquellos entornos ZOPE que permitan el acceso de creación o modificación de objetos ZPT o DTML a usuarios potencialmente maliciosos.
Para que desactivar el módulo de control de acceso en C y sustituirlo por el módulo en python hay que eliminar el comentario de la siguiente línea de código en “zope.conf”: security-policy-implementation python
Tras dicho cambio, hay que reiniciar el servidor ZOPE.
En cuando se publique una versión corregida de ZOPE, debe volver a comentarse esa línea para que ZOPE se ejecute con un rendimiento óptimo.