Skip to content

MikoPBX 2026.6.34

Latest

Choose a tag to compare

@miko-service-bot miko-service-bot released this 23 Oct 06:48
7a7e27a

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...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