1 puntos por GN⁺ 2025-03-14 | 1 comentarios | Compartir por WhatsApp
  • Tras la intrusión de Salt Typhoon, durante el proceso de revisión de software de telecomunicaciones de código abierto, se descubrió un desbordamiento de búfer sin autenticación en la biblioteca XMLRPC incluida con FreeSWITCH
  • La vulnerabilidad se origina en código que escribe con sprintf() un Request URI provisto por el atacante en una variable de pila de 4096 bytes, y, aparte de las limitaciones del navegador, podrían ser posibles solicitudes de más de 4096 caracteres
  • SignalWire respondió que en febrero de 2025 se publicaron 3 PR de corrección en GitHub, pero señaló que la nueva versión de la comunidad de FreeSWITCH no está planeada hasta el verano de 2025
  • En Shodan había alrededor de 8,300 resultados para FreeSWITCH, y los operadores sin una etiqueta de lanzamiento se ven obligados a responder por su cuenta, ya sea compilando desde el código fuente o bloqueando con firewall
  • Este caso muestra que el riesgo en la seguridad de las telecomunicaciones crece no solo por la vulnerabilidad en sí, sino también por la gestión de vulnerabilidades y la respuesta de lanzamiento, y aun después de que se asignó CVE-2025-44087 el 30 de abril de 2025, no hubo una versión nueva de FreeSWITCH

Qué llevó a revisar FreeSWITCH después de Salt Typhoon

  • A finales de 2024, el punto de partida fue la noticia de que el grupo Salt Typhoon, presuntamente vinculado al gobierno chino, había comprometido a T-Mobile y a otras telecos
  • No era posible investigar directamente redes de operadores móviles, pero en GitHub había muchos proyectos de código abierto relacionados con telecomunicaciones
  • Había experiencia previa trabajando con empresas que usaban Asterisk y FreeSWITCH, pero no analizando en profundidad PBX, SIP ni codificación de audio
  • En el sector de las telecomunicaciones existe la tradición de excelentes programadores en C, comunidades veteranas de hackers e ingenieros provenientes de Bell Labs, así que se asumía que las vulnerabilidades simples ya habrían sido encontradas
  • Sin embargo, la vulnerabilidad apareció casi de inmediato al abrir el código fuente de FreeSWITCH

Desbordamiento de búfer en el manejador de solicitudes HTTP de XMLRPC

  • El manejador de solicitudes HTTP de la biblioteca XMLRPC incluida con FreeSWITCH escribe el URI en un búfer de pila de tamaño fijo z[4096]
  • El código problemático tiene la forma sprintf(z, "Index of %s" CRLF, uri);, y como uri proviene de la parte path del Request URI, puede ser controlado por un atacante
  • Muchos navegadores no manejan bien URLs de más de 2048 caracteres, pero los RFC relevantes generalmente permiten alrededor de 8 KB y Cloudflare admite hasta 32 KB
  • Es razonable considerar que un atacante puede enviar un Request URI de más de 4096 caracteres, y esa condición lleva a un desbordamiento de búfer sin autenticación en la biblioteca XMLRPC
  • No se aborda cómo escalar esto hasta ejecución remota de código

Forma de corrección y parches publicados

  • La dirección de la corrección es usar snprintf() en lugar de sprintf()
  • Esto corresponde a una práctica básica de programación defensiva en C
  • SignalWire indicó que el problema se corrigió recientemente y presentó los siguientes PR
  • Como los parches ya estaban publicados en GitHub, se consideró posible escribir una publicación pública al respecto

Proceso de divulgación de la vulnerabilidad y vacío de lanzamientos

  • El 27 de enero de 2025, se enviaron los detalles de la vulnerabilidad a la dirección de correo indicada en la política de seguridad de FreeSWITCH
  • El 7 de febrero de 2025, se envió un correo de seguimiento para confirmar si habían recibido el reporte
  • Ese mismo día, Andrey Volk respondió que la vulnerabilidad había sido corregida recientemente y recomendó revisar los PR relacionados
  • Al preguntar por el calendario de una versión etiquetada que incluyera la corrección de seguridad, la respuesta fue que la versión de la comunidad de FreeSWITCH no está planeada hasta el verano de 2025
  • Como resultado, los usuarios que no pagan por FreeSWITCH Advantage podrían seguir expuestos hasta la próxima versión regular

Alcance de la exposición e impacto para operadores

  • En ese momento, en Shodan había alrededor de 8,300 resultados para FreeSWITCH
  • Como es difícil asumir que todas esas instancias pagan soporte empresarial, se estima que miles de pilas de telecomunicaciones en todo el mundo podrían permanecer vulnerables hasta el verano
  • Aunque el parche esté publicado en GitHub, sin una etiqueta de lanzamiento a los operadores comunes les resulta difícil actualizar fácilmente
  • En lugar de esperar una versión de SignalWire, los operadores de FreeSWITCH deberían considerar las siguientes medidas
    • Recompilar directamente desde el código fuente
    • Bloquear el acceso HTTP público a la pila de FreeSWITCH a nivel de firewall

Problema estructural de la seguridad en telecomunicaciones

  • En conversaciones con personas del sector, la reacción fue que incluso la velocidad de respuesta de FreeSWITCH se considera relativamente rápida
  • En diciembre de 2024 también reaparecieron advertencias sobre una vulnerabilidad de SS7 que ha existido durante 17 años en la red telefónica
  • Después de esta experiencia, no se revisaron más Asterisk ni otros programas adicionales
  • La conclusión es que hoy en día la seguridad en telecomunicaciones está en mal estado
  • Una causa importante parece ser que casi no existe incentivo económico para hacer seguros estos sistemas

Estado posterior

  • En una actualización del 30 de abril de 2025, al desbordamiento de búfer reportado se le asignó CVE-2025-44087
  • Incluso en ese momento, FreeSWITCH seguía sin etiquetas ni lanzamientos

1 comentarios

 
GN⁺ 2025-03-14
Opiniones de Hacker News
  • El autor reconoce que no tiene ninguna experiencia con infraestructura de nivel operador, pero sus sospechas en general son acertadas.
    En la práctica he hecho bastante pentesting e investigación de seguridad en 4G/5G para varios operadores importantes y, aunque hay diferencias entre operadores y proveedores de equipos, sigue siendo casi un show de terror absoluto.
    Hasta hace muy poco, la seguridad era básicamente seguridad por oscuridad, y aunque los estándares 4G/5G empezaron a abordar esto, todavía quedan agujeros lo bastante grandes como para preocupar seriamente.
    No es exagerado pensar que un actor de amenazas de nivel medio o superior que quiera establecer una cabeza de playa en un operador puede lograrlo; lo he demostrado varias veces profesionalmente.
    Ciertos proveedores de equipos de Asia Oriental tienen stacks de software de tan baja calidad que casi podrían clasificarse como APT, y la seguridad prácticamente no existe.
    Hay razones válidas por las que los países occidentales los prohibieron, y el software de los proveedores occidentales de equipos es mucho más maduro, pero aun así está varios años por detrás de lo que consideraríamos buenas prácticas modernas de seguridad.

    • Hace unos años, el Reino Unido compró equipos Huawei y creó un laboratorio conjunto entre el gobierno y Huawei para analizar el código fuente y verificar su seguridad.
      GCHQ consideró que la calidad del código era imposible de revisar y que ni siquiera se podía garantizar que el código fuente entregado fuera el mismo que se ejecutaba en los equipos reales.
      Esto se debía a que Huawei podía actualizarlos directamente, y tengo entendido que esos equipos fueron prohibidos después de 2020: https://www.washingtonpost.com/world/national-security/brita...
    • Me pregunto si hay algún análisis público sobre equipos específicos.
      Quisiera comprar uno en AliExpress y revisarlo; ¿este enlace sería un buen punto de partida?
      https://vulners.com/search/types/huawei
    • Me pregunto cómo puede un hacker común conseguir este tipo de equipos para investigarlos.
    • La afirmación de que los stacks de software de ciertos proveedores de equipos de Asia Oriental son tan malos que casi pueden considerarse APT dan ganas de responder con sarcasmo que menos mal existen ciertos proveedores de hardware y software de Norteamérica que se toman la seguridad muy en serio.
  • Realmente no entiendo por qué en 2025 los estándares de telefonía móvil siguen usando claves precompartidas.
    RSA y Diffie-Hellman[1] existen desde hace décadas y el sistema de autoridades certificadoras también lleva mucho tiempo, pero las tarjetas SIM todavía se emiten con una clave precompartida que solo conocen la tarjeta y el operador, y luego tanto la autenticación como el cifrado se basan en esa clave.
    Si el operador es hackeado y se filtran las claves, no hay nada que hacer.
    Peor aún, el fabricante de la SIM tiene que enviarle esa clave al operador, y si el fabricante está en otro país puede estar sujeto a exigencias de un gobierno extranjero, así que hay muchas oportunidades para hackear al fabricante o robar la clave durante la transmisión.
    Esto se siente como una vulnerabilidad NOBUS, y si un fabricante de SIM o un proveedor de equipos de red core se colude con la NSA para entregar las claves, potencialmente se podría interceptar el tráfico móvil de todo el mundo.
    [1] Sé que estos algoritmos ya no son la mejor práctica y que las curvas elípticas son mejores, pero incluso RSA sería mejor que lo actual.
    [2] https://nickvsnetworking.com/hss-usim-authentication-in-lte-...

    • Gemalto fue hackeada hace 15 años.
      “Según documentos ultrasecretos de la NSA proporcionados por Edward Snowden, espías estadounidenses y británicos hackearon las redes informáticas internas del mayor fabricante de tarjetas SIM del mundo y robaron las claves de cifrado usadas para proteger la privacidad de las comunicaciones de teléfonos móviles en todo el planeta”.
      https://theintercept.com/2015/02/19/great-sim-heist/
    • Hablando con ingenieros de telefonía, me dijeron que cuando se conectaban a una estación base para depurar, podían leer íntegros los SMS que pasaban por ahí.
      No sé si eso sigue siendo así, pero antes era difícil considerar al celular un medio de comunicación seguro.
      Probablemente convenga conversar mediante comunicaciones de datos cifradas de extremo a extremo.
    • Algunos algoritmos tienen que ejecutarse en la tarjeta SIM y, al menos en las smart cards antiguas, soportar RSA o Diffie-Hellman sin curvas elípticas requería un coprocesador que aumentaba el costo.
      Los algoritmos de clave simétrica también tienen la ventaja de ser seguros frente a la computación cuántica.
      Aun así, para 2025 esperaría que al menos hubiera soporte para ECC, y hoy la mayoría de las smart cards debería poder soportarlo de base.
      Si no puedes confiar en el fabricante de la SIM, en la práctica no hay solución.
      Incluso con un esquema asimétrico, la ruta de ataque solo cambia un poco; si no puedes confiar en el software que corre en la tarjeta, ¿cómo sabes que no filtra el texto en claro mediante la elección de números aleatorios en algoritmos no deterministas?
    • Si puedes distribuir claves directamente, la criptografía asimétrica agrega complejidad frente a lo que obtienes.
      La idea de que meter RSA en un sistema simétrico lo vuelve más seguro tiene una base débil; más bien es casi lo contrario.
      La expresión “vulnerabilidad NOBUS” también es especialmente rara, porque la raíz de confianza de este tipo de sistemas es el operador.
      Ni siquiera hace falta preguntar si un operador estadounidense se “coludió” con las agencias de inteligencia de EE. UU.; hay que asumir que ya es así.
    • Trabajé en soporte técnico/atención al cliente en un operador grande, vi varios problemas de seguridad y, cuando los planteé junto con soluciones que mejorarían el servicio al cliente, me respondieron que la empresa perdería dinero.
      Los estafadores son grandes clientes de los operadores, y cuando los atrapan y los bloquean, vuelven, pagan el alta de una nueva línea y repiten el mismo proceso.
      Gracias a los estafadores también se pueden vender funciones adicionales, así que dejar el problema sin resolver vuelve a generar ingresos.
  • No sorprende en absoluto que, como concluye el post, Freeswitch no vaya a cambiar su calendario de lanzamientos comunitarios
    Antes Freeswitch tenía un fuerte espíritu de comunidad, pero el ambiente cambió después de que se comercializara de forma más agresiva hace unos años
    Desde entonces, para acceder a cosas que deberían ser públicas había que pasar por un proceso de “registro” y, si no recuerdo mal, algo como los repositorios APT quedó oculto detrás de ese muro de registro
    No quiero registrarme con una empresa comercial para acceder a contenido de una comunidad de software libre
    Porque todos sabemos que, en la industria tecnológica, cuando le das información a una empresa comercial, los vendedores terminan molestándote con upselling y cross-selling, y metiéndote en listas de correo no solicitadas

    • En defensa de SignalWire, al leer las viejas listas de correo me dio la impresión de que durante años lideraron el desarrollo de Freeswitch, pero no se sintieron debidamente compensados por los subproyectos
      He visto a otras partes de la comunidad VoIP reajustar su generosidad hacia el open source y, sinceramente, es difícil culparlas
      El equipo de Matrix.org también habló de algo parecido en una de sus charlas de FOSDEM’25: el problema de los proveedores comerciales que se suben gratis al desarrollo
    • Corríjanme si me equivoco, pero ¿el código fuente parcheado no está publicado?
      Sería muy de agradecer que además actualizaran gratis los repositorios APT, pero eso es justamente eso: algo “de agradecer”
      Si dependes de su código y no quieres pagar costos de soporte, puedes compilar tú mismo los paquetes APT
      No tengo muy claro qué espíritu comunitario deberíamos esperar de un proyecto mantenido así por una sola empresa
  • Considerando a los actores de amenazas extranjeros, las alianzas occidentales como Five Eyes y la presión por seguir subiendo los números, lo razonable es asumir que en línea no existe el anonimato real
    Si te quieren, tienen los medios para atraparte
    En la práctica no es tan distinto de la era previa a internet
    Si no quieres que te intercepten, tienes que cifrar de una forma que las grandes agencias de seguridad no puedan acceder fácilmente por medios electrónicos
    Es decir, métodos como notas físicas, comunicación oral o gestos
    Además, cuando un actor estatal efectivamente asigna recursos para usar los datos, debes estar preparado para asumir las consecuencias de lo que dijiste e hiciste en línea

  • Solo con el artículo no me termina de convencer la conclusión de que “la seguridad de las telecomunicaciones actuales es un desastre”
    Porque parece más bien que eligieron Freeswitch arbitrariamente y encontraron un buffer overflow
    Puede que el “stack de telecomunicaciones” sea vulnerable o no, pero la evidencia presentada aquí es muy débil
    Se sabe que los ataques de Salt Typhoon explotaron vulnerabilidades de Cisco, pero los analistas también han planteado la posibilidad de que los atacantes usaran credenciales legítimas: https://cyberscoop.com/cisco-talos-salt-typhoon-initial-acce...
    Así que no tiene relación con Freeswitch

    • Cisco Unified Call Manager casi con toda seguridad tiene vulnerabilidades, y lo mismo Metaswitch, que siguió arrastrándose en el core de red incluso después de que Microsoft lo matara públicamente
      Oracle SBC a menudo es inestable incluso con su comportamiento básico, y seguro que también hay bugs de denegación de servicio que no lograron aislar correctamente en el desastre de implementación de TRouter que Teams sacó esta semana
      Ni hablar del caos de MF Tandem, o de que casi todos los operadores dejan fluir por internet tráfico SIP UDP sin cifrar en bruto
      Es posible construir sistemas seguros en este campo, pero la realidad es que la mayoría de los grandes operadores manejan plataformas propietarias e imposibles de modificar de compañías o proyectos muertos hace mucho, como Nortel y Metaswitch, además de montañas de deuda técnica aún peores que el equipo viejo y sin parches que compone sus redes
    • Después de que SignalWire rompiera el embargo, tuve varias conversaciones con geeks de seguridad más familiarizados con la seguridad en telecomunicaciones
      La frase “todo es un desastre y no hay incentivos para arreglarlo” es solo un resumen
      Sinceramente, esas conversaciones son muy difíciles de seguir si no conoces la jerga, y como yo tampoco entiendo lo suficiente este campo, no quise intentar explicarlo torpemente y lo dejé en eso
      Jamás esperé que mi blog apareciera en Hacker News
    • He trabajado con código de telecomunicaciones
      Es código que parsea protocolos de red complejos con varias generaciones de legado, suele escribirse en secreto y por lo general está en C/C++
      Seguro que no puede ser vulnerable. Claro que no
    • El stack de telecomunicaciones está lleno de decisiones de seguridad cuestionables, incluso a nivel de protocolo
      Protocolos como SS7 se diseñaron sin el concepto de hackers o actores maliciosos
      Puedes ponerles firewalls encima, pero chocan con las funciones deseadas y, aun cuando no lo hacen, requieren inversión adicional
      DIAMETER es mejor, pero sigue teniendo muchos agujeros
      En los últimos años, la seguridad en telecomunicaciones se ha vuelto una prioridad y ha habido mejoras, pero hay que envolver décadas de hardware, software, firmware y diseños de red heredados
      No creo que nadie esté ejecutando Freeswitch estándar tal cual en una red de telecomunicaciones, pero el tipo de problemas de Freeswitch, como producto de telecomunicaciones antiguo en el que no se buscó seguridad tanto como se esperaría, está por todas partes
    • Este post combina “probé hacer lo que hago profesionalmente” con “la parte a la que le reporté no comparte mis valores ni los de la industria de seguridad”, y de ahí concluye que la seguridad en telecomunicaciones es un desastre
      Está muy bien que el autor haya revisado código en su tiempo libre, encontrado un bug y lo haya reportado, y no quiero desalentarlo en absoluto
      Pero el hecho de que un mantenedor de una pieza de software no se haya inclinado ante el autor siguiendo las mejores prácticas de la industria de seguridad es una base débil para decir que “la seguridad de las telecomunicaciones actuales es un desastre”
      Si alguien te trae un bug en tu código, pero no afirma que esté siendo explotado activamente ni aporta un PoC para comprobar que sea explotable, ¿por qué no tratarlo simplemente como un bug común?
      Lo corriges ahora y lo incluyes en el próximo lanzamiento
      ¿Que la gente puede ver los cambios? Sí, también puede ver todos los demás cambios
      Si pueden encontrar el exploit, mucha suerte; el reportante no lo encontró
      Lo mismo pasa en las distribuciones de Linux
      Se reportan bugs de seguridad y, a veces, el autor upstream no solo es terco, sino que literalmente ya falleció
      Si quieres cambiarlo según tu propio calendario, puedes hacer tú mismo el lanzamiento
  • Un ámbito donde Freeswitch parece usarse bastante es en las instalaciones de BigBlueButton de escuelas y universidades
    Es un sistema de aulas virtuales, y seguramente muchas lo usan sin contrato de soporte; me preocupa más ese caso que los operadores de telecomunicaciones

  • Me pregunto cuánta gente usará realmente el módulo XML RPC
    No se carga por defecto
    Corrección: según Shodan, son 468
    También me pregunto si senddirectorydocument en el módulo XML RPC realmente se usa

    • Seguí revisando y no pude provocar ninguna acción
      curl --show-error --get --request GET --user freeswitch:works "http://localhost:8080/${SIXTEEN_THOUSAND_RANDOM_CHARACTERS}";
      ¿Alguna idea de cómo dispararlo?
      Creo que sería más probable que hagan un lanzamiento de seguridad si aparece al menos una PoC que provoque un segfault
  • El hacking realmente interesante ocurre con la inyección de CAMEL MAP
    Controla todo tipo de cosas buenas: SMS, USSD y, la joya de la corona, los servicios de ubicación
    Muchas empresas de “SMS masivos” en islas ricas del Caribe o lugares como Indonesia hacen mucho más que enviar spam

    • Además, MAP es tecnología 2G y 3G
      Así que es vieja, y 2G fue diseñado en los años 90
      No sé muy bien qué espera la gente
      Honestamente, ya es suerte que funcione
  • Los operadores grandes no ejecutan FreeSwitch ni Asterisk en el core

    • El sistema telefónico 911 de gama baja de Motorola, Emergency CallWorks (ECW), es Asterisk corriendo en Linux sobre Proxmox con módulos propietarios
      Claro que Motorola está discontinuando ese producto, pero existe en campo
      El que yo mantengo está fuertemente protegido por firewall, pero sospecho que no todos lo están
    • Aunque no sea en el core, muchos proveedores que procesan datos de llamadas —grabación de llamadas, transcripción, IVR, análisis de voz, integración con CRM, colas de llamadas, marcado automático, funciones de SMS/chat— probablemente ejecuten FreeSWITCH, Asterisk o algo similar en alguna parte de su stack
      La mayoría de las empresas con PBX que quieren hacer algo más que enrutamiento básico de llamadas y conexión a la PSTN seguramente usan herramientas de terceros
      Y muchas de esas herramientas están construidas sobre FreeSWITCH, Asterisk o algo parecido
    • Depende mucho de cómo se defina “grandes”
  • Recomiendo mucho la presentación de P1 Security sobre seguridad en comunicaciones móviles: https://www.slideshare.net/slideshow/day1-hacking-telcoequip...
    Es material antiguo, pero no hay razones para creer que haya mejorado
    Porque no hay ningún incentivo para mejorarlo
    Además, las vulnerabilidades de seguridad de software son solo una parte del problema; la otra es que los operadores están felices de externalizar el control y el acceso crítico al postor más barato: https://berthub.eu/articles/posts/5g-elephant-in-the-room/