Repository navigation
Caution
Главное в обновлении — безопасность. PHP обновлён до 8.4.27 с исправлением двух критических уязвимостей CVE-2026-109618 и CVE-2026-109619. При определённых условиях они могут приводить к удалённому выполнению кода без авторизации. Рекомендуем обновить все станции.
Security is the main point of this update. PHP is upgraded to 8.4.27, fixing two critical vulnerabilities, CVE-2026-109618 and CVE-2026-109619. Under certain conditions they can lead to unauthenticated remote code execution. We recommend updating all stations.
Скачать · Download
| Установка · Install | Диск, облако · Disk, cloud | Обновление · Update | VMware | Azure, GCP | Proxmox LXC | Docker | |
|---|---|---|---|---|---|---|---|
| x86-64 | ISO | RAW | IMG | OVA | VHD | LXC | TAR |
| ARM64 | ISO | RAW | IMG | VHD | TAR |
ISO — Live CD для сервера и виртуальных машин; RAW — образ для записи на USB/SSD и импорта в облако; IMG — файл обновления через веб-интерфейс.
ISO is a Live CD for servers and VMs; RAW is a disk image to write to USB/SSD or import into a cloud; IMG is an update file for the web interface.
Станции, установленные до 2026.1.1, обновляйте файлом IMG-legacy. Stations installed before 2026.1.1 update with IMG-legacy.
Контрольные суммы · Checksums: checksum.md5
MikoPBX 2026.6.34 — что изменилось
Изменения относительно релиза 2026.5.6.
Безопасность
- PHP 8.4.27: исправлены критические уязвимости CVE-2026-109618 и CVE-2026-109619 (при определённых условиях — удалённое выполнение кода без авторизации). Phalcon обновлён до 5.23.0.
- nginx 1.31.7, OpenSSH 10.6p1 — обновления безопасности.
- WAF (nginx Lua): тела запросов POST/PUT/PATCH/DELETE проверяются целиком (до 4 МиБ) во всех кодировках, после чёрного списка и ограничения частоты; шаблоны SQL работают за линейное время. #1161, #1238, #1239, #1240
- Ссылки на просмотр записи разговора принимаются только с localhost; скачивание архивов журналов ограничено файлами, созданными системой.
- Идентификаторы модулей проверяются единым шаблоном при установке, скачивании и удалении. #1135, #1157
- Alibaba Cloud: при новой установке имя хоста вида
iZ...Zбольше не используется как имя АТС — оно содержало идентификатор экземпляра, то есть начальный пароль администратора. На существующих станциях смените начальный пароль и имя вручную. #990
Запись и воспроизведение разговоров
- Заметно меньше заиканий, щелчков и «растянутых» фрагментов в записях. Если пакеты одного направления приходили пачкой после паузы, запись дополнялась тишиной и затем удлинялась или теряла звук. Теперь каждый фрагмент встаёт на своё место по времени (патчи Asterisk: MixMonitor и таймер джиттер-буфера). #1192
- Исправлена ошибка декодирования MP3 (MPEG-2.5) в Asterisk — вероятная причина искажённого воспроизведения MP3-приветствий в IVR, о котором сообщали после обновления до 2026.5.6. Если симптом у вас сохраняется, напишите в #1195
- Конвертированные копии записей (MP3/WAV/OGG) больше не накапливаются в
recordings_cache: один файл на запись, очистка по TTL 24 ч и лимиту 500 МБ. #1268 - Запись оператора возобновляется после неудачного перевода, отклонённого в пользовательской подпрограмме (
Busy()в[internal-users-custom]). - CDR: плечо перевода, отвеченное перехватом
*8, записывается и тарифицируется.
Внимание: изменения в поведении
- REST-действия модулей при неуспехе (
result:false) возвращают HTTP 422/409, перегрузка очереди и таймаут воркера — 503/504, как у ядра; раньше всегда был 200. Фронтенды модулей, читающиеresult:falseтолько в обработчике успеха, перестанут показывать ошибки. Исправлены ModuleCTIClient (mikopbx/ModuleCTIClient#68) и ModuleTelegramProvider (mikopbx/ModuleTelegramProvider#22); для ModuleAmoCrm патч предложен (mikopbx/ModuleAmoCrm#53). #1166 - Переадресация сотрудников (FW, FW_BUSY, FW_UNAV, FW_TIME) хранится в
[globals]файлаextensions.conf, а не в astdb; пользовательский диалплан сDB(FW*/...)переведите на переменныеFW_<ext>,FW_BUSY_<ext>,FW_UNAV_<ext>,FW_TIME_<ext>. Класс ядраAstDBудалён (см. «Известная проблема»). - Транспорт TLS в карточке сотрудника объявлен устаревшим: скрыт для новых сотрудников, у существующих остаётся с предупреждением. TLS-клиенты регистрируются как
<номер>-TLS; REST API и импорт CSV по-прежнему принимаютtls. - Внешний SIP-адрес (
exthostname) больше не берётся из системного имени хоста (оно резолвилось в 127.0.0.1 и ломало NAT/TLS). - Тело запроса REST API ограничено 4 МиБ (ответ 413 в JSON); загрузки через веб-интерфейс идут кусками не больше 10 МиБ. #1171
Новые возможности
- Автонастройка в облаке Cloud.ru Evolution: имя АТС, внешний IP, начальный пароль и SSH-ключи из метаданных. #1226
- Сжатый своп в памяти (zram, lz4) используется первым, файл подкачки на диске — только как резерв: меньше записи на флеш-накопитель.
- Скрипт переноса истории звонков FreePBX → MikoPBX (
tools/migration, не входит в образ).
Исправления
- Два входящих провайдера с одинаковым логином (или логин, совпадающий с номером сотрудника) приводили к дублям секций в
pjsip.conf: Asterisk 22 отклонял весь файл и вся SIP-связь пропадала. Такой логин отклоняется при сохранении. #1204 set_var=...в дополнительных настройках PJSIP больше не прерывает генерациюpjsip.conf; устаревшееsetvarприводится кset_var. #1193- Онлайн-обновление из веб-интерфейса: в 2026.5.6 кнопка «Скачать» не работала, установка отправляла неверное имя файла. Со станции 2026.5.6 обновляйтесь загрузкой файла IMG вручную на странице обновления.
- Сброс к заводским настройкам обрезает журналы вместо удаления — службы продолжают писать в них. #1126
- Ротация системного журнала хранит девять генераций вместо двух. #1209
- REST API: пустые JSON-объекты (
{}) и объекты с числовыми ключами не превращаются в массивы; таймаут воркера — 504, отказ Redis — 503 в JSON. #1141, #1162, #1171 - Модули, отдающие файл через REST (например, ModuleAutoprovision), не пишут
TypeErrorв журнал после каждого запроса. #1167 - API-ключи: отметка
last_usedобновляется и на установках с read-only корневой ФС (LXC). #1120 - Советы об обновлениях модулей появляются с первого запуска после сброса кеша. #1153
- Совет о слабом SIP-пароле ведёт в карточку нужного сотрудника; в колокольчике — совет о сотрудниках с устаревшим транспортом TLS.
- nginx:
listen ... ssl http2заменён наhttp2 on.
Известная проблема
- ModuleUsersGroups 1.77 и более ранние несовместимы с 2026.6.34: модуль обращается к удалённому классу ядра
AstDBпри генерацииpjsip.conf(Class "MikoPBX\Core\Asterisk\AstDB" not found). Исправление модуля ещё не выпущено: mikopbx/ModuleUsersGroups#38.
MikoPBX 2026.6.34 — what changed
Changes since release 2026.5.6.
Security
- PHP 8.4.27: fixes critical vulnerabilities CVE-2026-109618 and CVE-2026-109619 (under certain conditions, unauthenticated remote code execution). Phalcon upgraded to 5.23.0.
- nginx 1.31.7, OpenSSH 10.6p1 — security updates.
- WAF (nginx Lua): POST/PUT/PATCH/DELETE bodies are scanned whole (up to 4 MiB) in every decoding, after the blacklist and the rate limit; SQL patterns match in linear time. #1161, #1238, #1239, #1240
- Call recording view URLs are accepted from localhost only; log archive downloads are restricted to files generated by the system.
- Module identifiers are validated with one shared pattern on install, download and uninstall. #1135, #1157
- Alibaba Cloud: on a fresh install, a metadata hostname of the form
iZ...Zis no longer used as the PBX name — it contained the instance id, i.e. the initial administrator password. On existing stations change the initial password and the name yourself. #990
Call recording and playback
- Far fewer stutters, clicks and stretched fragments in recordings. When one direction's packets arrived in a burst after a pause, the recording was padded with silence and then grew longer or lost audio. Each fragment is now placed by its timestamp (Asterisk patches: MixMonitor and the jitter-buffer timer). #1192
- An MP3 (MPEG-2.5) decoding error in Asterisk is fixed — the likely cause of the distorted IVR MP3 greetings reported after upgrading to 2026.5.6. If the symptom persists for you, please report in #1195
- Converted copies of recordings (MP3/WAV/OGG) no longer accumulate in
recordings_cache: one file per recording, cleanup by a 24 h TTL and a 500 MB limit. #1268 - The operator's recording resumes after a failed transfer rejected in a custom subroutine (
Busy()in[internal-users-custom]). - CDR: a transfer leg answered through a
*8pickup is recorded and billed.
Attention: behaviour changes
- Module REST actions that fail (
result:false) return HTTP 422/409, queue overload or a worker timeout return 503/504, the same as core actions; previously it was always 200. Module frontends that readresult:falseonly in a success callback will stop showing errors. ModuleCTIClient (mikopbx/ModuleCTIClient#68) and ModuleTelegramProvider (mikopbx/ModuleTelegramProvider#22) are fixed; a patch is proposed for ModuleAmoCrm (mikopbx/ModuleAmoCrm#53). #1166 - Employee call forwarding (FW, FW_BUSY, FW_UNAV, FW_TIME) is stored in the
[globals]section ofextensions.confinstead of astdb; a custom dialplan usingDB(FW*/...)should switch to theFW_<ext>,FW_BUSY_<ext>,FW_UNAV_<ext>,FW_TIME_<ext>variables. The core classAstDBis removed (see "Known issue"). - The TLS transport in the employee card is deprecated: hidden for new employees, kept with a warning for existing ones. TLS clients register as
<number>-TLS; the REST API and CSV import still accepttls. - The external SIP address (
exthostname) is no longer derived from the system hostname (it resolved to 127.0.0.1 and broke NAT/TLS). - REST API request bodies are limited to 4 MiB (JSON 413); uploads through the web interface are sent in chunks of at most 10 MiB. #1171
New features
- Cloud.ru Evolution autoprovisioning: PBX name, external IP, initial password and SSH keys from the metadata. #1226
- A compressed in-memory swap (zram, lz4) is used first, the disk swap file only as overflow: fewer writes to flash storage.
- A FreePBX → MikoPBX call history migration script (
tools/migration, not shipped in the image).
Fixes
- Two INBOUND providers with the same Login (or a Login equal to an employee's number) produced duplicate sections in
pjsip.conf: Asterisk 22 rejected the whole file and all SIP went down. Such a Login is now rejected on save. #1204 set_var=...in additional PJSIP parameters no longer interruptspjsip.confgeneration; the legacysetvarspelling is normalised toset_var. #1193- Online update from the web interface: in 2026.5.6 the "Download" button did nothing and the install sent the wrong file name. From a 2026.5.6 station, update by uploading the IMG file manually on the update page.
- Factory reset truncates the logs instead of deleting them, so services keep writing to them. #1126
- System log rotation keeps nine generations instead of two. #1209
- REST API: empty JSON objects (
{}) and objects with numeric keys are no longer turned into arrays; a worker timeout answers 504, Redis refusing a job answers JSON 503. #1141, #1162, #1171 - Modules that stream a file over REST (for example ModuleAutoprovision) no longer log a
TypeErrorafter every request. #1167 - API keys:
last_usedis updated on installs with a read-only root filesystem (LXC) too. #1120 - Module update advice appears from the first run after a cache flush. #1153
- The weak SIP password advice links to the right employee card; the notification bell lists employees with the deprecated TLS transport.
- nginx:
listen ... ssl http2replaced withhttp2 on.
Known issue
- ModuleUsersGroups 1.77 and earlier are incompatible with 2026.6.34: the module calls the removed core class
AstDBwhile generatingpjsip.conf(Class "MikoPBX\Core\Asterisk\AstDB" not found). The module fix is not released yet: mikopbx/ModuleUsersGroups#38.
Docker
Docker Hub: https://hub.docker.com/r/mikopbx/mikopbx
docker pull mikopbx/mikopbx:2026.6.34