CVE-2025-55210
Published: 12 February 2026
Summary
CVE-2025-55210 is a low-severity Privilege Context Switching Error (CWE-270) vulnerability in Sangoma Freepbx. Its CVSS base score is 2.0 (Low).
Operationally, exploitation aligns with the MITRE ATT&CK technique Exploitation for Privilege Escalation (T1068); ranked at the 18.0th percentile by exploit likelihood (below the median); it is not currently listed in the CISA KEV catalog.
The strongest mitigations our analysis identified are NIST 800-53 AC-3 (Access Enforcement) and SC-12 (Cryptographic Key Establishment and Management).
Deeper analysis
CVE-2025-55210 is a privilege escalation vulnerability in the FreePBX module api (PBX API), which provides REST and GraphQL API access within FreePBX, an open-source web-based graphical user interface for managing Asterisk. It affects FreePBX versions prior to 17.0.5 and 16.0.17. The flaw, assigned CVSS score 7.5 (CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H) and mapped to CWE-270, stems from insufficient validation in JWT handling, enabling authenticated users to forge tokens signed with the api-oauth.key private key.
An attacker with existing authenticated access to the REST/GraphQL APIs—potentially as a lower-privileged user already connected to the FreePBX instance—can exploit this if they obtain the api-oauth.key (e.g., by accessing the affected instance). They can then generate a custom JWT specifying any desired scopes, such as rest or gql, to gain full access to the APIs and bypass traditional authorization checks. Exploitation requires knowledge of an existing jti (JWT ID) value from the api_access_tokens table in the Asterisk MySQL database, as FreePBX enforces its presence for token validation.
The vulnerability is addressed in FreePBX 17.0.5 and 16.0.17. Patch details are provided in GitHub commits such as bc6f7d72063cffb18babb6559fa351046d7ad19b, c16a3a79b83382fb4884e51174882ed635637002, and d66786634e7e7d3eedcb4d0931b32c415ba6e9ef, along with the security advisory at https://github.com/FreePBX/security-reporting/security/advisories/GHSA-gvgh-p7wj-76cf.
EU & UK References
- 🇪🇺 ENISA EUVD: EUVD-2025-207009
Vulnerability details
FreePBX is an open-source web-based graphical user interface (GUI) that manages Asterisk. Prior to 17.0.5 and 16.0.17, FreePBX module api (PBX API) is vulnerable to privilege escalation by authenticated users with REST/GraphQL API access. This vulnerability allows an attacker to…
more
forge a valid JWT with full access to the REST and GraphQL APIs on a FreePBX that they've already connected to, possibly as a lower privileged user. The JWT is signed using the api-oauth.key private key. An attacker can generate their own token if they possess this key (e.g., by accessing an affected instance), and specify any scopes they wish (e.g., rest, gql), bypassing traditional authorization checks. However, FreePBX enforces that the jti (JWT ID) claim must exist in the database (api_access_tokens table in the asterisk MySQL database) in order for the token to be accepted. Therefore, the attacker must know a jti value that already exists on the target instance. This vulnerability is fixed in 17.0.5 and 16.0.17.
- CWE(s)
Related Threats
MITRE ATT&CK Enterprise TechniquesAI
Why these techniques?
Direct privilege escalation via forged JWT application access tokens to bypass authorization.
CVEs Like This One
Affected Assets
Mitigating Controls
Mitigating Controls (NIST 800-53 r5) AI
Directly mitigates the privilege escalation vulnerability by requiring timely patching of the affected FreePBX module to versions 17.0.5 or 16.0.17, which fix the improper JWT validation.
Ensures secure establishment, storage, and access controls for the api-oauth.key private key, preventing attackers from obtaining it to forge JWTs with arbitrary scopes.
Requires the REST/GraphQL APIs to properly enforce access authorizations, rejecting forged JWTs that bypass traditional checks despite valid jti values.