Home/ Blog/ Security news/ Article
Blog · Security news

Switchvox flaw (CVE-2026-9586) lets an unauthenticated attacker run code. Patch now.

Attackers are exploiting CVE-2026-9586, an unauthenticated flaw in Sangoma Switchvox that leads to remote code execution. Patch to 8.4.0.2 and hunt now.

Glass desk phone with a bright thread running into an open server module

The dangerous gap in this story is not the severity score. It is the six weeks between the day Sangoma shipped a fix and the day attackers started using the bug at scale. Sangoma patched CVE-2026-9586 in its Switchvox phone platform on July 14. On August 30, security firm Horizon3 saw its honeypots catch real exploitation against the roughly 4,000 Switchvox consoles still reachable from the open internet. The flaw scores 9.3 and needs no credentials. What earns your attention is the mechanics: how an endpoint built to provision desk phones becomes a command shell, and why upgrading the box may not be the end of it.

Switchvox is an enterprise phone system, the kind of appliance that gets installed once and then runs untouched for years. That is exactly the class of device this bug punishes. Horizon3 reported it to Sangoma alongside eleven other issues and rates CVE-2026-9586 the most serious of the set. As reported, the attacks were already underway when the analysis went public.

How a phone-provisioning endpoint turns into code execution

Switchvox exposes an endpoint at /pa that accepts phone-provisioning messages, and it does so without asking for authentication. When a request arrives whose body opens with a `` element, the handler reads a PhoneIP value out of the XML and places it directly into a PostgreSQL query. The value is never parameterized or sanitized, which is the definition of a SQL injection: the attacker controls part of the query the database runs. Because the endpoint is unauthenticated, reaching it takes nothing more than network access to the web interface.

The injection would be serious on its own. What makes it a remote-code-execution bug is that the query runs with PostgreSQL superuser rights. A superuser in PostgreSQL can pipe the output of a query to an operating-system program, and that capability is the bridge from database access to running commands on the host. Horizon3 demonstrated a working reverse shell through this path. We are not reproducing the payload here. The point for defenders is that a single crafted request, sent by anyone who can reach the console, is enough.

The database ran as superuser, and that is the real lesson

Strip this incident down and the SQL injection is the ordinary part. Injection flaws are common, and on their own they usually mean stolen or altered data. The step that turns this one into host compromise is the privilege the application handed its database connection. Had Switchvox talked to PostgreSQL as a narrow role without superuser rights, the same injection would still be a data-exposure problem, but it could not have reached the program-execution capability that spawns a shell. Superuser rights removed the wall between the database and the operating system.

That is a decision every operator running a self-hosted application inherits, not only Sangoma. If an app you run connects to its database as a superuser or an equivalent all-powerful role, you have quietly agreed that any injection bug in that app is a path to the host. Auditing the database roles your applications use, and cutting them to the minimum they need, is unglamorous work that changes the blast radius of the next bug like this one. Our writeup on a cPanel flaw that let a hosting account reach database root made the same point from the other direction.

Switchvox CVE-2026-9586: patched in July, mass-exploited in AugustApr 10, 2026: Reported. Jul 14, 2026: Patch ships. Jul 17, 2026: CVE published. Aug 30, 2026: Exploited.Switchvox CVE-2026-9586: patched in July, mass-exploited in AugustApr 10, 2026ReportedJul 14, 2026Patch shipsJul 17, 2026CVE publishedAug 30, 2026Exploited
Source: Horizon3.ai disclosure timeline.

Six weeks passed between the fix and the flood

The timeline is the uncomfortable part. Sangoma had a patched build ready in the spring and released it publicly on July 14. The CVE record only appeared on July 17, three days after the fix, so the public signal that something needed patching was quiet and late. For a device most teams never log into, an understated advisory is easy to miss entirely. By the time exploitation started on August 30, thousands of consoles were still on the vulnerable build.

This is the recurring shape of appliance security. The fix exists, but the appliance is set-and-forget, the advisory is low-profile, and the attackers arrive on their own schedule. We have watched it play out on other exposed management surfaces, from a Check Point console takeover to an exploited Cisco Unified Communications flaw. A phone system is not the first thing most teams put on a patch calendar, and that is exactly why it stays vulnerable.

Spotting it on a box you cannot put an agent on

An appliance like this rarely lets you install monitoring software, so the usual endpoint telemetry is off the table. Detection has to come from the places you can still see:

  • The appliance's own logs. Injected SQL from this attack lands in /var/log/switchvox/db-quirks.log, so that file is where evidence of a hit shows up if you can pull it off the box.

  • Outbound network connections. A phone system should almost never open a connection to an unfamiliar host on the internet. A reverse shell has to call home, so egress from the PBX to an unexpected address is a stronger signal than anything on the device itself. Horizon3 named the address 176.65.148.184 as one tied to the campaign.

  • The web logs in front of the console. Unauthenticated requests to /pa carrying `` bodies from outside your network are worth flagging.

This is the case for pulling appliance and network logs into one place you actually watch. Feeding the console's logs and firewall egress into centralized log management and a threat-hunting workflow is how you get visibility into a device that cannot report on itself. Tracking which of your hosts are still on vulnerable builds closes the other half of the gap.

Patch to 8.4.0.2, then rotate what the attacker could have taken

The first move is the patch: update Switchvox to 8.4.0.2 or later, which closes the injection. If the console is reachable from the public internet, take it off. A phone-system management interface belongs behind a VPN, not on a public address where anyone can probe /pa.

Patching is where remediation starts, not where it ends. During the exposure window, an attacker with database access could read the key Switchvox uses to sign its session cookies. Anyone holding that key can forge a valid authenticated session, and that forged access survives the upgrade, because the upgrade does not change the key. So if you were exposed, rotate the cookie signing key and invalidate existing sessions after you patch, then work through the incident-response steps against the logs and egress for the exploitation window before you call it closed. Treating the patch as the whole job is how an attacker who got in during those six weeks keeps a foothold after you think you have shut the door.

Topics

Frequently asked questions

What is CVE-2026-9586?

CVE-2026-9586 is a critical unauthenticated SQL injection in Sangoma Switchvox that leads to remote code execution, rated 9.3. An attacker who can reach the console sends a crafted provisioning request to the /pa endpoint and runs commands on the host, with no login required.

Which Switchvox versions are affected and fixed?

The flaw affects Switchvox SMB Edition 8.3 (build 104997). Sangoma released the fix in version 8.4.0.2 on July 14, 2026. Any console still running the 8.3 build remains vulnerable, so update to 8.4.0.2 or later.

Is CVE-2026-9586 being exploited?

Yes. Security firm Horizon3 reported that its honeypots recorded real exploitation attempts starting August 30, 2026. Roughly 4,000 Switchvox consoles were still exposed to the internet at that point, so treat any internet-facing instance as a priority.

Does patching Switchvox fully remediate CVE-2026-9586?

Not by itself. The patch closes the injection, but an attacker who exploited the box during the exposure window could have stolen the cookie signing key and can forge authenticated sessions afterward. After upgrading, rotate the signing key, invalidate sessions, and hunt the logs for the exploitation window.

How can I tell if my Switchvox was exploited?

Check three places. Injected SQL from this attack appears in /var/log/switchvox/db-quirks.log. Look for outbound connections from the phone system to unfamiliar internet hosts, a sign of a reverse shell. Review web logs for unauthenticated requests to the /pa endpoint from outside your network.

Ready to meet the Guardians?

Deploys fast - agentless for monitoring and cloud, a lightweight agent for deep endpoint security. Just Suriq, standing watch.