FreeSWITCH, la central telefónica de código abierto que usan operadores y empresas para montar su propio servicio de voz, publicó un aviso para una vulnerabilidad con puntuación 9,8 sobre 10 y con prueba de concepto pública. Apache Juneau, un marco de serialización que casi nadie instala a propósito, acumuló en la misma semana cinco vulnerabilidades distintas puntuadas con el máximo de 10.
Las dos noticias aparecieron el 5 de noviembre en el boletín de seguridad de CiberLab, que ese día recopiló 202 alertas en una sola jornada y sirven para ilustrar dos problemas distintos. El primero es que la prueba de concepto pública cambia la urgencia de un fallo aunque la puntuación no se mueva. El segundo es que una puntuación de 10 no distingue entre un error de lógica profundo y una cabecera mal filtrada, y esa diferencia debería importar más de lo que la industria admite.
Ninguno de los dos casos tiene víctimas confirmadas, así que la lectura útil no es la del titular de prensa y sí la del administrador que tiene que decidir esta semana qué parchea primero y qué puede esperar al viernes sin asumir un riesgo que no eligió. Primero la exposición, después la prisa.
El 9.8 de FreeSWITCH y el signo que lo provoca
El fallo está registrado como CVE-2026-116779 y afecta a versiones anteriores a la 1.11.3. La causa está en la función `sofia_presence_handle_sip_i_message()`, que procesa los mensajes SIP entrantes y separa el usuario del destinatario por el signo más para interpretar la parte izquierda como un número y la derecha como un dominio.
La validación de esa separación es insuficiente, de forma que una petición construida con cuidado consigue que el servidor ejecute código en el contexto del proceso. La puntuación de 9,8 refleja que no hace falta autenticarse y que el atacante solo necesita alcanzar el puerto SIP, algo que en una central telefónica expuesta a internet es la configuración por defecto.
La versión 1.11.3 corrige el problema. Lo que eleva la urgencia por encima de la media es que la prueba de concepto es pública, y una demostración pública convierte un fallo teórico en una herramienta que cualquiera puede ejecutar en cuestión de horas. El proyecto FreeSWITCH mantiene las versiones corregidas en su repositorio oficial.
Cinco 10.0 en Apache Juneau
El caso de Apache Juneau es más extraño. El proyecto acumuló cinco vulnerabilidades con puntuación 10 en el mismo día: una ejecución de secuencias de comandos en la serialización HTML, un salto de línea en cabeceras que permite partir una respuesta HTTP, unas credenciales que sobreviven a una redirección, un mensaje de error que expone la excepción interna y un registro que guarda cabeceras sin redactar.
Las identificaciones son CVE-2026-96677 para la ejecución de secuencias, CVE-2026-73117 para el salto de línea, CVE-2026-73116 para las credenciales en la redirección, CVE-2026-73101 para el mensaje de error y CVE-2026-73100 para el registro. Todas comparten una característica, y es que nacen de tratar datos de la petición como si fueran de confianza. Los avisos están publicados en el seguimiento de seguridad de Apache.
La puntuación de 10 en los cinco casos se explica porque el vector es red, la complejidad es baja y no hace falta autenticación. Lo que no explica es el impacto real, que depende de si el componente está expuesto, de qué datos maneja y de sí alguien lo usa en producción.
El grupo más interesante es el de las cabeceras. En el caso 73117, el servidor pasa valores de respuesta y destinos de redirección al contenedor sin comprobarlos, lo que permite insertar saltos de línea y añadir cabeceras propias. En el 73116, el cliente sigue redirecciones conservando las cabeceras de credenciales de la petición original, así que un servidor que redirija a otro host recibe un `Authorization` que no le corresponde.
El 73101 y el 73100 son fugas de información por vías que se suelen ignorar. El primero envía la clase y el mensaje de la excepción interna en una cabecera de cada respuesta de error, y el segundo registra las cabeceras de las peticiones que terminan en error sin redactar las credenciales. Ninguno de los cuatro es un fallo de criptografía ni de gestión de memoria, son errores de criterio sobre qué se considera seguro por defecto.
SuiteCRM y el SSRF del botón de prueba
El boletín del día incluyó también un fallo de severidad alta en SuiteCRM, un sistema de gestión de clientes muy extendido en empresas medianas. La vulnerabilidad CVE-2026-69137 tiene una puntuación de 7,7 y afecta a versiones anteriores a la 7.15.2 y a la 8.10.2.
El problema está en la acción `testConnection` del módulo de cuentas de calendario, que pasa la URL indicada por quien llama directamente a la herramienta de descarga sin validar el host, la dirección ni el esquema. Un usuario autenticado puede usar esa función para que el servidor haga peticiones a direcciones internas, lo que en la práctica abre la red privada de la empresa desde un formulario.
Es el tipo de fallo que no llama la atención y que sí aparece en las investigaciones reales, porque sirve para reconocer qué hay detrás del cortafuegos antes de un ataque mayor.
La puntuación no es la prioridad
La primera pregunta no es la puntuación, es la exposición. Un FreeSWITCH con el puerto SIP abierto a internet es un problema de esta semana; un Apache Juneau embebido en una librería interna sin salida a la red es una tarea del próximo mantenimiento. La segunda es si hay prueba de concepto, porque una demostración pública reduce el tiempo disponible a días y una explotación observada lo reduce a horas.
La coincidencia de cinco 10.0 en un mismo proyecto debería alimentar una discusión sobre cómo se puntúan estas cosas. Un sistema que asigna el máximo a una cabecera sin filtrar y a una ejecución remota de código deja de servir para ordenar el trabajo, y el análisis de cómo triar una avalancha de CVE ya advirtió de que la puntuación sola no ordena un inventario.
Para el administrador, la consecuencia práctica es que la puntuación sirve como filtro inicial y nunca como criterio final. La exposición, la prueba de concepto y los datos alcanzables deciden el orden real, y ese cálculo no lo hace ninguna base de datos de vulnerabilidades. La metodología para hacerlo sin perder la cabeza está en la guía sobre cómo leer un CVE si te afecta, y el caso de la biblioteca de compresión que tumbó a medio Node.js lo ilustra en Node2Shell.