CVE-2026-40520
WysokieCVSS 7.2Prawdopodobieństwo exploitacji (EPSS)
Podwyższone ryzykoPercentyl 69 - wyżej niż 69% wszystkich znanych CVE
Streszczenie
Moduł API FreePBX w wersji 17.0.8 i wcześniejszych zawiera podatność na wstrzykiwanie poleceń w funkcji initiateGqlAPIProcess(). Pola wejściowe mutacji GraphQL są przekazywane bezpośrednio do funkcji shell_exec() bez sanityzacji, co pozwala uwierzytelnionemu użytkownikowi z ważnym tokenem na wykonanie dowolnych poleceń na serwerze.
Ocena ryzyka
Atakujący może przejąć kontrolę nad serwerem PBX, wykonać dowolne polecenia jako użytkownik serwera WWW, co może prowadzić do naruszenia poufności rozmów, modyfikacji konfiguracji lub dalszego ataku na sieć wewnętrzną.
Rekomendacja
Niezwłocznie zaktualizuj moduł API FreePBX do wersji 17.0.9 lub nowszej. Jeśli aktualizacja nie jest możliwa, ogranicz dostęp do API tylko do zaufanych adresów IP i monitoruj logi pod kątem podejrzanych mutacji GraphQL.
Inne podatności w FreePBX
Zobacz wszystkie- CVE-2026-73665Krytyczne
FreePBX przed wersją 17.0.9 ma podatność w serwerze UCP Node na portach 8001 i 8003, gdzie middleware checkAuth jest stosowane tylko do domyślnej przestrzeni nazw Socket.IO. Nieuwierzytelniony klient może połączyć się z niestandardowymi przestrzeniami nazw i wysyłać spreparowane wartości zdarzeń z CR/LF, co pozwala na wykonanie dowolnych poleceń jako użytkownik usługi asterisk.
- CVE-2026-73663Krytyczne
FreePBX od wersji 16.0.0 do 16.0.11 i 17.0.4 ma podatność w module missedcall, gdzie nazwa dzwoniącego z nagłówka SIP From jest wstawiana do zapytania SQL bez odpowiedniego escapowania. Nieuwierzytelniony dzwoniący może wstrzyknąć SQL, gdy monitorowane rozszerzenie pozostaje nieodebrane, co pozwala na modyfikację kont administratora i uzyskanie zdalnego dostępu.
- CVE-2026-46376Krytyczne
Podatność w FreePBX od wersji 15.0.42 do 16.0.45 i 17.0.7 umożliwia nieuwierzytelnionym użytkownikom dostęp do Panelu Kontroli Użytkownika (UCP) przy użyciu domyślnych, zakodowanych na stałe poświadczeń szablonu, jeśli administrator nie zmienił ich natychmiast po włączeniu UCP. Problem został naprawiony w wersjach 16.0.45 i 17.0.7.
- CVE-2026-73664Wysokie
FreePBX od wersji 17.0.5.34 do 17.0.11 ma podatność w punkcie końcowym AJAX publicKeySave w Backup.class.php, który akceptuje klucz SSH administratora i dodaje go do authorized_keys bez wiarygodnego egzekwowania ograniczeń. Klucz daje trwały dostęp do powłoki z możliwością wykonywania dowolnych komend, dostępu do danych FreePBX i połączeń, modyfikacji plików systemowych i zakłócania usług.
- CVE-2026-73662Wysokie
FreePBX od wersji 17.0.1 do 17.0.7 ma podatność w module Music on Hold, która pozwala na niebezpieczne opcje wiersza poleceń dla /usr/bin/mpg123 i innych dozwolonych odtwarzaczy. Administrator może użyć opcji zapisujących pliki, otwierających kanały kontrolne lub tworzących pliki połączeń Asterisk, co prowadzi do wykonania dowolnych komend jako użytkownik asterisk.
- CVE-2026-73661Wysokie
FreePBX przed wersjami 16.0.47 i 17.0.30 ma podatność w module Framework, która pozwala na przywrócenie ukrytego ustawienia AUTHTYPE z wartością none przez spreparowaną kopię zapasową. Uwierzytelniony użytkownik z uprawnieniami do przywracania kopii zapasowych może wyłączyć uwierzytelnianie FreePBX podczas przywracania, omijając usuwanie AUTHTYPE=none w interfejsie.
- CVE-2026-73660Wysokie
FreePBX przed wersjami 16.0.6 i 17.0.5.4 ma podatność w module Text-To-Speech, która pozwala administratorowi zapisać nazwę miejsca docelowego TTS, która jest kodowana HTML, dekodowana podczas generowania dialplanu, przekazywana jako argument AGI i używana do budowy nazw plików w agi-bin/propolys-tts.agi. Nazwa docelowa trafia do surowego wykonania poleceń powłoki, umożliwiając wykonanie dowolnych komend systemowych jako użytkownik asterisk.
- CVE-2026-44239Wysokie
W FreePBX przed wersjami 16.0.22 i 17.0.5, moduł Dashboard w handlerze AJAX getcontent dołącza pliki PHP na podstawie danych wejściowych użytkownika bez sanityzacji ścieżki. Parametr $_REQUEST['rawname'] jest konkatenowany w wywołaniu include() z sufiksem .class.php, co umożliwia trawersację ścieżki za pomocą sekwencji ../ w celu dołączenia dowolnych plików .class.php z systemu plików. Kod PHP dołączonego pliku wykonuje się przed wystąpieniem błędu instancjonowania klasy.
- CVE-2026-44238Wysokie
Moduł CDR Reports w FreePBX przed wersjami 16.0.50 i 17.0.11 zawiera podatność na wstrzykiwanie SQL przez parametry POST 'order' i 'sort'. Atak wymaga uwierzytelnienia na koncie z dostępem do sekcji CDR, ale nie wymaga pełnych uprawnień administratora.
- CVE-2026-44237Wysokie
W FreePBX przed wersją 17.0.8, implementacja OAuth2 w module API nie weryfikuje poprawnie poświadczeń klienta podczas wydawania tokenów. Metoda validateClient() w pliku ClientRepository.php zawsze zwraca true, co pozwala osobie znającej ważny client_id na uzyskanie tokenów OAuth2 bez podawania poprawnego client_secret.
Oryginalny opis (angielski, źródło NVD)
FreePBX api module version 17.0.8 and prior contain a command injection vulnerability in the initiateGqlAPIProcess() function where GraphQL mutation input fields are passed directly to shell_exec() without sanitization or escaping. An authenticated user with a valid bearer token can send a GraphQL moduleOperations mutation with backtick-wrapped commands in the module field to execute arbitrary commands on the underlying host as the web server user.

