Strona główna / Blog / Issabel: jeden klucz JWT → RCE

Blog · case study

Issabel PBX CVE-2026-89026: jeden klucz JWT dla każdej instalacji → unauthenticated RCE

CVE-2026-89026 (CVSS 9.8) w Issabel Framework to podręcznikowy przykład, dlaczego shared secret identyczny na wszystkich instalacjach to nie sekret. W pliku pbxapi zaszyto stały klucz podpisujący JWT (HS256), taki sam na każdej instalacji. Skutek: nieuwierzytelniony atakujący forge'uje ważny bearer token, woła manager originate z aplikacją System i Asterisk wykonuje polecenia OS. Bez logowania. I jest to aktywnie wykorzystywane.

CVE-2026-89026 (Issabel Framework, CVSS 9.8): hard-coded HS256 JWT key w pbxapi (identyczny wszędzie) → forge bearer token → manager originate app System → Asterisk wykonuje polecenia OS jako user asterisk. Unauth.
Threat state: aktywna eksploatacja obserwowana przez Shadowserver od 2026-09-09. Fix commit b97dbaf (klucz → /etc/issabel.conf), patch 01.08.2026.

Attack path

hard-coded HS256 key (same on every install) -> attacker signs valid JWT bearer token -> POST pbxapi/manager/originate (Application=System) -> Asterisk executes OS command as 'asterisk' -> unauthenticated RCE

Dlaczego hard-coded key to katastrofa

Klucz podpisujący tokeny to najwyższy sekret systemu auth. Jeśli jest wpisany w kod i identyczny na każdej instalacji, to każdy, kto ma dostęp do źródeł (a Issabel jest open), zna klucz do wszystkich instancji na świecie. To nie „słaby sekret” — to brak sekretu. Fix słusznie przenosi klucz do /etc/issabel.conf (per-instalacja).

Threat state i compromise assessment

Aktywna eksploatacja (Shadowserver od 09.09) i publiczne PoC oznaczają, że dla wystawionego pbxapi sam patch nie wystarcza. Workflow: upgrade → potwierdź odrzucanie tokenów podpisanych starym kluczem → ogranicz pbxapi do zaufanych sieci → przejrzyj logi Asteriska w oknie ekspozycji. Jeśli endpoint był osiągalny z internetu przed patchem, zakładaj możliwą kompromitację i rób hunting (nietypowe originate/System).

Co powinien zrobić VE

Priorytet: internet-facing Issabel = emergency (unauth RCE + active exploitation). Upgrade do wersji z commit b97dbaf; rotacja/generacja per-instalacja klucza; segmentacja pbxapi; retencja logów. Traktuj jak incydent, nie tylko podatność, jeśli istniało okno ekspozycji.

Powiązane na blogu

Źródła

  • VulnCheck — Issabel Hard-coded JWT Key RCE (pbxapi/manager/originate) — vulncheck.com
  • The Hacker News — Attackers Exploit Issabel Framework Flaw (CVE-2026-89026) — thehackernews.com

Nota redakcyjna: stan informacji 28 września 2026, na podstawie publicznych advisory (VulnCheck, doniesienia Shadowserver/THN). CVE-2026-89026 (Issabel Framework, CVSS 9.8, hard-coded JWT → unauth RCE); aktywna eksploatacja obserwowana od 09.09.2026; fix commit b97dbaf.

Zapamiętaj jedno

Sekret wspólny dla każdej instalacji to nie sekret — hard-coded klucz JWT w open-source oznacza, że atakujący ma klucz do wszystkich instancji. Przy unauth RCE i potwierdzonej aktywnej eksploatacji patch to początek: dochodzi rotacja klucza per-instalacja i compromise assessment.