github mikopbx/Core 2026.6.34
MikoPBX 2026.6.34

4 hours ago

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.

Warning

ModuleUsersGroups 1.77 и ранее несовместим с 2026.6.34. После обновления модуль «Группы пользователей» перестаёт работать. Если он у вас включён, дождитесь обновления модуля (ModuleUsersGroups#38) и только потом обновляйте станцию.

ModuleUsersGroups 1.77 and earlier is incompatible with 2026.6.34. After the update the "User groups" module stops working. If you use it, wait for the module update (ModuleUsersGroups#38) before upgrading the station.

Скачать · 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...Z is 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 *8 pickup 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 read result:false only 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 of extensions.conf instead of astdb; a custom dialplan using DB(FW*/...) should switch to the FW_<ext>, FW_BUSY_<ext>, FW_UNAV_<ext>, FW_TIME_<ext> variables. The core class AstDB is 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 accept tls.
  • 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 interrupts pjsip.conf generation; the legacy setvar spelling is normalised to set_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 TypeError after every request. #1167
  • API keys: last_used is 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 http2 replaced with http2 on.

Known issue

  • ModuleUsersGroups 1.77 and earlier are incompatible with 2026.6.34: the module calls the removed core class AstDB while generating pjsip.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

Don't miss a new Core release

NewReleases is sending notifications on new releases.