1 points par GN⁺ 2025-03-14 | 1 commentaires | Partager sur WhatsApp
  • Lors de l’examen de l’open source télécom après la compromission Salt Typhoon, un débordement de tampon sans authentification a été découvert dans la bibliothèque XMLRPC intégrée à FreeSWITCH
  • La vulnérabilité provient d’un code qui écrit l’URI de requête fourni par l’attaquant dans une variable de pile de 4 096 octets avec sprintf() ; indépendamment des limites des navigateurs, des requêtes de plus de 4 096 caractères peuvent être possibles
  • SignalWire a répondu que trois PR de correction avaient été publiées sur GitHub en février 2025, mais a indiqué qu’aucune nouvelle version de FreeSWITCH Community n’était prévue avant l’été 2025
  • Shodan affichait environ 8 300 résultats pour FreeSWITCH, et les opérateurs dépourvus de tag de version doivent réagir eux-mêmes en compilant depuis les sources ou en bloquant via pare-feu
  • Ce cas montre que les risques pour la sécurité des télécoms ne viennent pas seulement des vulnérabilités elles-mêmes, mais aussi de la gestion des vulnérabilités et de la réponse en matière de releases ; même après l’attribution de CVE-2025-44087 le 30 avril 2025, aucune release FreeSWITCH n’était disponible

Pourquoi examiner FreeSWITCH après Salt Typhoon

  • Fin 2024, le point de départ a été l’annonce selon laquelle le groupe Salt Typhoon, présenté comme lié au gouvernement chinois, avait compromis T-Mobile et d’autres opérateurs télécoms
  • Il n’était pas possible d’enquêter directement sur les réseaux des opérateurs mobiles, mais GitHub hébergeait de nombreux projets open source liés aux télécoms
  • Il y avait eu par le passé une expérience de travail avec des entreprises utilisant Asterisk et FreeSWITCH, mais pas d’analyse approfondie des PBX, de SIP ou de l’encodage audio
  • Dans le domaine des télécoms, la présence d’excellents programmeurs C, d’anciennes communautés de hackers et d’une tradition d’ingénieurs issus des Bell Labs laissait penser que les vulnérabilités simples auraient déjà été découvertes
  • Pourtant, une vulnérabilité a été trouvée juste après l’ouverture du code source de FreeSWITCH

Débordement de tampon dans le gestionnaire de requêtes HTTP XMLRPC

  • Le gestionnaire de requêtes HTTP de la bibliothèque XMLRPC intégrée à FreeSWITCH écrit l’URI dans un tampon de pile de taille fixe z[4096]
  • Le code problématique est de la forme sprintf(z, "Index of %s" CRLF, uri);, et uri provenant de la partie path de la Request URI, il est contrôlable par l’attaquant
  • Les navigateurs courants prennent souvent mal en charge les URL de plus de 2 048 caractères, mais les RFC concernées autorisent pour la plupart environ 8 Ko, et Cloudflare prend en charge jusqu’à 32 Ko
  • Il est raisonnable de considérer qu’un attaquant peut envoyer une Request URI de plus de 4 096 caractères, condition qui conduit à un débordement de tampon sans authentification dans la bibliothèque XMLRPC
  • L’extension vers une exécution de code à distance n’est pas abordée

Méthode de correction et patchs publiés

  • La correction consiste à utiliser snprintf() au lieu de sprintf()
  • Cela relève des pratiques de base de la programmation défensive en C
  • SignalWire a indiqué que le problème avait été corrigé récemment et a fourni les PR suivantes
  • Comme les patchs étaient déjà publics sur GitHub, la publication d’un billet public a été jugée possible

Processus de divulgation et absence de release

  • Le 27 janvier 2025, les détails de la vulnérabilité ont été envoyés à l’adresse e-mail indiquée dans la politique de sécurité de FreeSWITCH
  • Le 7 février 2025, un e-mail de relance a été envoyé pour vérifier si le rapport avait bien été reçu
  • Le même jour, Andrey Volk a répondu que la vulnérabilité avait été corrigée récemment et a renvoyé vers les PR concernées
  • Interrogé sur le calendrier d’un tag de release incluant les nouveaux correctifs de sécurité, il a été répondu qu’aucune release de FreeSWITCH Community n’était prévue avant l’été 2025
  • En conséquence, les utilisateurs qui ne paient pas FreeSWITCH Advantage peuvent rester vulnérables jusqu’à la prochaine release régulière

Ampleur de l’exposition et impact pour les opérateurs

  • À l’époque, Shodan affichait environ 8 300 résultats pour FreeSWITCH
  • Comme il est difficile de penser que toutes ces instances paient un support entreprise, des milliers de piles télécoms dans le monde pourraient rester vulnérables jusqu’à l’été
  • Même si le patch est public sur GitHub, l’absence de tag de release rend la mise à jour difficile pour les opérateurs ordinaires
  • Les opérateurs FreeSWITCH devraient envisager les mesures suivantes au lieu d’attendre une release de SignalWire
    • recompiler directement depuis les sources
    • bloquer au niveau du pare-feu l’accès HTTP public à la pile FreeSWITCH

Problème structurel de la sécurité des télécoms

  • Lors d’une discussion avec une connaissance du secteur télécom, la réaction a été que la réponse de FreeSWITCH était même plutôt rapide
  • En décembre 2024, une alerte a de nouveau été émise au sujet d’une vulnérabilité SS7 présente dans le réseau téléphonique depuis 17 ans
  • Après cette expérience, aucun examen supplémentaire d’Asterisk ou d’autres logiciels n’a été mené
  • En conclusion, la sécurité des télécoms est aujourd’hui dans un mauvais état
  • Le fait qu’il y ait peu d’incitations financières à sécuriser ces systèmes semble être une cause majeure

État ultérieur

  • Dans la mise à jour du 30 avril 2025, CVE-2025-44087 a été attribuée au débordement de tampon signalé
  • Au même moment, FreeSWITCH ne disposait toujours d’aucun tag ni d’aucune release

1 commentaires

 
GN⁺ 2025-03-14
Avis de Hacker News
  • L’auteur reconnaît n’avoir aucune expérience des infrastructures de niveau opérateur télécom, mais ses soupçons sont globalement fondés
    Pour avoir réalisé pas mal de tests d’intrusion et de recherches en sécurité sur la 4G/5G auprès de plusieurs grands opérateurs, même si cela varie selon les opérateurs et les fournisseurs d’équipements, cela reste proche d’un véritable spectacle d’horreur
    Jusqu’à très récemment, la sécurité se résumait pratiquement à de la sécurité par l’obscurité ; les standards 4G/5G ont commencé à traiter le sujet, mais il reste encore des failles suffisamment énormes pour être très préoccupantes
    Il n’est pas exagéré de considérer qu’un acteur malveillant d’un niveau intermédiaire ou supérieur voulant établir une tête de pont chez un opérateur peut y parvenir, et je l’ai démontré plusieurs fois dans un cadre professionnel
    Certains fournisseurs d’équipements d’un pays d’Asie de l’Est ont des piles logicielles d’une qualité si faible qu’on pourrait presque les classer comme APT, et la sécurité y est pratiquement inexistante
    Il y a de bonnes raisons pour lesquelles les pays occidentaux les ont interdits ; les logiciels des fournisseurs occidentaux sont beaucoup plus matures, mais restent tout de même en retard de plusieurs années par rapport à ce que nous considérerions comme des bonnes pratiques modernes de sécurité

    • Il y a quelques années, le Royaume-Uni a acheté des équipements Huawei et créé un laboratoire commun gouvernement/Huawei pour analyser le code source et vérifier leur sûreté
      Le GCHQ a estimé que la qualité du code était à un niveau impossible à auditer, et qu’il n’était même pas possible de garantir que le code source fourni était bien celui exécuté sur les équipements réels
      C’était parce que Huawei pouvait les mettre à jour directement ; il me semble que ces équipements sont interdits depuis 2020 : https://www.washingtonpost.com/world/national-security/brita...
    • Je me demande s’il existe des analyses publiques portant sur des équipements précis
      J’aimerais en acheter un sur AliExpress pour l’examiner ; ce lien serait-il un bon point de départ ?
      https://vulners.com/search/types/huawei
    • Je me demande comment un hacker ordinaire peut se procurer ce type d’équipement pour l’étudier
    • Dire que les piles logicielles des fournisseurs d’équipements de certains pays d’Asie de l’Est sont tellement médiocres qu’on pourrait presque parler d’APT donne envie d’ironiser sur la chance que nous avons d’avoir des fabricants de matériel et de logiciels d’un certain pays d’Amérique du Nord qui prennent la sécurité très au sérieux
  • Je ne comprends vraiment pas pourquoi, en 2025, les standards de téléphonie mobile utilisent encore des clés prépartagées
    RSA et Diffie-Hellman[1] existent depuis des décennies, et les infrastructures d’autorités de certification aussi, mais les cartes SIM sont toujours émises avec une clé prépartagée connue uniquement de la carte et de l’opérateur, puis toute l’authentification et le chiffrement reposent sur cette clé
    Si l’opérateur est piraté et que la clé fuit, il n’y a plus rien à faire
    Pire encore, cette clé doit être envoyée par le fabricant de cartes SIM à l’opérateur ; si le fabricant se trouve dans un autre pays, il peut être soumis aux exigences d’un gouvernement étranger, ce qui crée largement des occasions de piratage du fabricant ou d’interception pendant le transfert
    Cela ressemble à une vulnérabilité NOBUS : si un fabricant de SIM ou un fournisseur d’équipements de cœur de réseau collabore avec la NSA et transmet les clés, il devient potentiellement possible d’écouter le trafic mobile du monde entier
    [1] Je sais que ces algorithmes ne sont plus considérés comme des bonnes pratiques et que les courbes elliptiques sont préférables, mais même RSA serait mieux que la situation actuelle
    [2] https://nickvsnetworking.com/hss-usim-authentication-in-lte-...

    • Gemalto a été piraté il y a 15 ans
      « Selon des documents top secret de la NSA fournis par Edward Snowden, des espions américains et britanniques ont piraté le réseau informatique interne du plus grand fabricant mondial de cartes SIM et volé les clés de chiffrement utilisées pour protéger la confidentialité des communications mobiles dans le monde entier »
      https://theintercept.com/2015/02/19/great-sim-heist/
    • En parlant avec des ingénieurs télécoms, ils m’ont dit que lorsqu’ils se connectaient à une station de base pour déboguer, ils pouvaient lire intégralement les SMS qui passaient, tels quels
      Je ne sais pas si c’est encore le cas aujourd’hui, mais à l’époque, il était difficile de considérer le téléphone mobile comme un moyen de communication sûr
      Il faut probablement plutôt discuter via des communications de données chiffrées de bout en bout entre terminaux
    • Certains algorithmes doivent tourner sur la carte SIM, et du moins par le passé, les cartes à puce avaient besoin d’un coprocesseur augmentant le coût pour prendre en charge RSA ou Diffie-Hellman sans courbes elliptiques
      Les algorithmes à clé symétrique ont aussi l’avantage d’être résistants au quantique
      Cela dit, en 2025, j’aimerais qu’au minimum ECC soit pris en charge, et la plupart des cartes à puce devraient désormais pouvoir le faire de base
      Si l’on ne peut pas faire confiance aux fabricants de cartes SIM, il n’y a en pratique pas de solution
      Même avec une approche asymétrique, le vecteur d’attaque ne fait que changer un peu : si l’on ne fait pas confiance au logiciel qui tourne sur la carte, comment savoir qu’un algorithme non déterministe ne fait pas fuiter le texte en clair via le choix des nombres aléatoires ?
    • Si l’on peut distribuer directement les clés, la cryptographie asymétrique ajoute de la complexité par rapport à ce qu’elle apporte
      L’idée qu’ajouter RSA à un système symétrique le rendrait plus sûr est peu fondée, et c’est plutôt l’inverse
      L’expression « vulnérabilité NOBUS » est particulièrement étrange, puisque la racine de confiance de ce type de système est l’opérateur
      Il n’est même pas nécessaire de se demander si un opérateur américain a « collaboré » avec les agences de renseignement américaines : il faut déjà partir du principe que oui
    • J’ai travaillé au support technique/service client chez un grand opérateur, et j’ai vu plusieurs problèmes de sécurité ; quand je les ai signalés avec des solutions qui auraient aussi amélioré le service client, on m’a répondu que l’entreprise y perdrait de l’argent
      Les escrocs sont de gros clients des opérateurs : quand ils se font attraper et bloquer, ils reviennent, paient les frais d’ouverture d’une nouvelle ligne, et recommencent le même processus
      Les escrocs permettent aussi de vendre davantage de fonctionnalités additionnelles, si bien que ne pas résoudre le problème rapporte encore de l’argent
  • Comme le conclut l’article de blog, il n’est pas du tout surprenant que Freeswitch ne change pas son calendrier de publication communautaire.
    L’ancien Freeswitch avait un fort esprit communautaire, mais l’ambiance a changé il y a quelques années après une commercialisation plus agressive.
    Depuis, il fallait passer par une procédure d’« inscription » pour accéder à ce qui devrait être public et, de mémoire, il me semble que quelque chose comme les dépôts APT avait été caché derrière ce mur d’inscription.
    Je n’ai pas envie de m’inscrire auprès d’une entreprise commerciale pour accéder à du contenu communautaire de logiciel libre.
    Parce que tout le monde sait que, dans la tech, quand on donne des informations à une entreprise commerciale, ses commerciaux viennent vous harceler avec de l’upsell et du cross-sell, et vous ajoutent à des listes de diffusion non sollicitées.

    • Pour défendre SignalWire, en lisant d’anciennes listes de diffusion, j’ai eu l’impression qu’ils ont porté le développement de Freeswitch pendant des années sans être correctement rémunérés par les projets en aval.
      J’ai aussi vu d’autres pans de la communauté VoIP réajuster leur générosité envers l’open source et, honnêtement, il est difficile de leur en vouloir.
      L’équipe Matrix.org a évoqué un problème similaire dans l’une de ses présentations à FOSDEM’25 : des fournisseurs commerciaux qui profitent du développement sans contribuer.
    • Corrigez-moi si je me trompe, mais le code source patché n’est-il pas public ?
      Ce serait vraiment appréciable qu’ils mettent aussi gratuitement à jour les dépôts APT, mais ce n’est justement que cela : quelque chose dont on pourrait leur être reconnaissant.
      Si vous dépendez de leur code sans vouloir payer les coûts de support, vous pouvez construire vous-même les paquets APT.
      Je ne sais pas très bien quel esprit communautaire on devrait attendre d’un projet maintenu de cette façon par une seule entreprise.
  • Vu les acteurs étrangers de la menace, les alliances occidentales comme les Five Eyes et la pression permanente pour faire monter les chiffres, il est raisonnable de considérer qu’il n’existe pas de véritable anonymat en ligne.
    S’ils vous veulent, ils ont aussi les moyens de vous attraper.
    En réalité, ce n’est pas très différent de l’époque d’avant Internet.
    Si vous ne voulez pas être intercepté, il faut chiffrer d’une manière qui ne soit pas facilement accessible électroniquement aux grandes agences de sécurité.
    Des bouts de papier physiques, le bouche-à-oreille, des gestes, ce genre de choses.
    Il faut aussi être prêt à assumer les conséquences de ce qu’on dit et fait en ligne lorsqu’un acteur étatique décide effectivement d’allouer les ressources nécessaires pour exploiter ces données.

  • À la seule lecture de l’article, je ne suis pas entièrement convaincu par la conclusion selon laquelle « la sécurité des télécoms aujourd’hui est un désastre ».
    Cela ressemble plutôt au fait d’avoir choisi Freeswitch plus ou moins au hasard et d’y avoir trouvé un buffer overflow.
    La « pile télécom » est peut-être vulnérable, ou peut-être pas, mais les éléments présentés ici sont très faibles.
    L’attaque Salt Typhoon aurait exploité des vulnérabilités Cisco, mais des analystes ont aussi avancé que les attaquants avaient peut-être utilisé des identifiants légitimes : https://cyberscoop.com/cisco-talos-salt-typhoon-initial-acce...
    Cela n’a donc rien à voir avec Freeswitch.

    • Cisco Unified Call Manager comporte presque certainement des vulnérabilités, et il en va de même pour Metaswitch, qui continue de traîner dans le cœur de réseau même après que Microsoft l’a publiquement condamné.
      L’Oracle SBC est souvent instable rien que dans son comportement de base, et il y a forcément des bugs de déni de service mal isolés dans le bazar d’implémentation de TRouter que Teams livre cette semaine.
      Ne parlons même pas du chaos des MF Tandem, ni du fait que presque tous les opérateurs laissent circuler sur Internet du trafic SIP UDP brut et non chiffré.
      Il est possible de construire des systèmes sûrs dans ce domaine, mais la réalité est que la plupart des grands opérateurs exploitent des montagnes de dette technique pires encore que les vieux équipements non patchés qui composent leurs réseaux, avec des plateformes propriétaires et impossibles à modifier issues d’entreprises ou de projets morts depuis longtemps, comme Nortel ou Metaswitch.
    • Après que SignalWire a rompu l’embargo, j’ai eu plusieurs conversations avec des passionnés de sécurité plus familiers de la sécurité télécom.
      « Tout est cassé et personne n’a d’incitation à réparer » n’est qu’un résumé.
      Honnêtement, ces conversations sont très difficiles à suivre si l’on ne connaît pas le jargon, et je ne comprends pas assez bien ce domaine pour vouloir essayer de l’expliquer maladroitement, donc je me suis limité à cela.
      Je ne m’attendais absolument pas à ce que mon blog se retrouve sur Hacker News.
    • J’ai déjà travaillé sur du code télécom.
      C’est du code qui parse des protocoles réseau complexes avec plusieurs générations de legacy, souvent écrit à huis clos, et généralement en C/C++.
      Bien sûr que cela ne peut pas être vulnérable. Évidemment.
    • La pile télécom est remplie de décisions de sécurité douteuses, y compris au niveau des protocoles eux-mêmes.
      Des protocoles comme SS7 ont été conçus sans la notion de hackers ou d’acteurs malveillants.
      On peut ajouter des pare-feu par-dessus, mais cela entre en conflit avec les fonctionnalités voulues et, même quand ce n’est pas le cas, cela demande des investissements supplémentaires.
      DIAMETER est meilleur, mais reste plein de trous.
      Ces dernières années, la sécurité télécom est devenue une priorité et les choses s’améliorent, mais il faut envelopper des décennies de matériel, de logiciels, de firmware et de conceptions réseau hérités.
      Je ne pense pas que quiconque fasse tourner un Freeswitch standard tel quel dans un réseau télécom, mais les types de problèmes présents dans Freeswitch — un vieux produit télécom dans lequel on n’a pas autant cherché la sécurité qu’on l’aurait espéré — se retrouvent partout.
    • Cet article de blog combine « j’ai fait ce que je fais professionnellement » et « la partie à qui j’ai envoyé mon rapport ne partage pas mes valeurs ni celles de l’industrie de la sécurité », puis en conclut que la sécurité télécom est un désastre.
      C’est très bien que l’auteur ait regardé le code sur son temps libre, trouvé des bugs et les ait signalés, et je ne voudrais absolument pas décourager cela.
      Mais le fait qu’un mainteneur d’un seul logiciel ne se soit pas plié aux attentes de l’auteur selon les bonnes pratiques de l’industrie de la sécurité est un fondement bien faible pour affirmer que « la sécurité des télécoms aujourd’hui est un désastre ».
      Si quelqu’un vous apporte un bug dans votre code sans prétendre qu’il est activement exploité, et sans fournir de PoC permettant d’en confirmer l’exploitabilité, pourquoi ne pas le traiter comme un bug ordinaire ?
      On le corrige maintenant et on l’inclut dans la prochaine release.
      Les gens peuvent voir les changements ? Oui, comme ils peuvent voir tous les autres changements.
      S’ils arrivent à trouver un exploit, tant mieux pour eux ; la personne qui l’a signalé n’en a pas trouvé.
      La même chose arrive dans les distributions Linux.
      Des bugs de sécurité sont signalés, et parfois l’auteur upstream n’est pas simplement têtu, il est littéralement décédé.
      Si vous voulez que cela change selon votre propre calendrier, publiez vous-même une release.
  • Le domaine où Freeswitch me semble susceptible d’être assez souvent utilisé, ce sont les installations BigBlueButton dans les écoles et les universités.
    C’est un système de classe virtuelle, et il est sans doute souvent utilisé sans contrat de support ; cela m’inquiète davantage que les opérateurs télécoms.

  • Je me demande combien de personnes utilisent réellement le module XML RPC
    Il n’est pas chargé par défaut
    Correction : 468 selon Shodan
    Je me demande aussi si senddirectorydocument est réellement utilisé dans le module XML RPC

    • J’ai vérifié ensuite, mais je n’ai réussi à déclencher aucun comportement
      curl --show-error --get --request GET --user freeswitch:works "http://localhost:8080/${SIXTEEN_THOUSAND_RANDOM_CHARACTERS}";
      Des idées sur la façon de le déclencher ?
      Je pense qu’il y aurait plus de chances d’avoir une release de sécurité s’il existait au moins un PoC provoquant un segfault
  • Le vrai hack intéressant se passe avec l’injection CAMEL MAP
    Elle permet de contrôler toutes sortes de choses intéressantes : SMS, USSD et, joyau de la couronne, les services de localisation
    Beaucoup d’acteurs de « SMS en masse » dans des îles riches des Caraïbes ou dans des endroits comme l’Indonésie font bien plus que de l’envoi de spam

    • À noter aussi que MAP est une technologie 2G et 3G
      Elle est donc ancienne, et la 2G a été conçue dans les années 1990
      Je ne sais pas trop à quoi les gens s’attendent
      Franchement, on peut déjà s’estimer heureux que ça fonctionne
  • Les grands opérateurs télécoms ne font pas tourner FreeSwitch ou Asterisk dans leur cœur de réseau

    • Le système téléphonique 911 bas de gamme de Motorola, Emergency CallWorks (ECW), est un Asterisk qui tourne sous Linux sur Proxmox avec des modules propriétaires
      Bien sûr, Motorola est en train d’arrêter ce produit, mais il est encore présent sur le terrain
      Celui dont je m’occupe est fortement protégé par un pare-feu, mais je doute que ce soit le cas de tous
    • Même si ce n’est pas dans le cœur de réseau, beaucoup d’acteurs qui traitent des données d’appel — enregistrement des appels, transcription, IVR, analyse vocale, intégration CRM, files d’attente d’appels, appels automatisés, fonctions SMS/chat — ont de fortes chances de faire tourner FreeSWITCH, Asterisk ou quelque chose de similaire quelque part dans leur stack
      La plupart des entreprises disposant d’un PBX et voulant faire plus que du routage d’appels de base et de la connexion PSTN utilisent probablement des outils tiers
      Et une bonne partie de ces outils sont construits sur FreeSWITCH, Asterisk ou équivalent
    • Cela dépend énormément de ce qu’on entend par « grands »
  • Je recommande vivement la présentation de P1 Security sur la sécurité des télécoms mobiles : https://www.slideshare.net/slideshow/day1-hacking-telcoequip...
    C’est ancien, mais il n’y a aucune raison de penser que les choses se sont améliorées
    Parce qu’il n’y a aucun incitatif à les améliorer
    En plus, les failles de sécurité logicielle ne sont qu’une partie du problème ; l’autre, c’est que les opérateurs télécoms externalisent volontiers le contrôle et l’accès critique au moins-disant : https://berthub.eu/articles/posts/5g-elephant-in-the-room/