MagnusBilling
Security

Actualización urgente de PHP: cómo proteger MagnusBilling en Debian 11, 12 y 13

Actualiza PHP en Debian 12 y 13, conoce la alternativa temporal para Debian 11 y migra sistemas antiguos a Debian 13 con MagnusBilling 8.

PTESEN

Actúa inmediatamente: instala la corrección de PHP y valida MagnusBilling. Si utilizas MagnusBilling anterior a la versión 8, inicia inmediatamente una actualización mediante migración controlada a MagnusBilling 8. Si utilizas Debian anterior al 11, CentOS u otro sistema heredado, migra a Debian 13 lo antes posible.

Actualizar MagnusBilling no sustituye la actualización de PHP. Actualizar PHP no restablece el soporte de un sistema operativo antiguo.

La alerta del 21 de octubre de 2026

CVE-2026-109618 y CVE-2026-109619 permiten ejecución remota de código sin autenticación en configuraciones afectadas. PHP señala mayor riesgo con Apache y mod_php. Las versiones corregidas son 8.2.35, 8.3.36, 8.4.27 y 8.5.12, o paquetes del proveedor con backports verificados.

Aviso oficial de PHP

Elige el procedimiento de tu servidor

EntornoAcción inmediataDestino recomendado
Debian 13Actualizar PHP y reiniciar el servicio que lo ejecuta.Mantener Debian 13 y MagnusBilling 8 actualizados.
Debian 12Instalar PHP 8.2 corregido o backport verificado y reiniciar.Planificar Debian 13; esta corrección no requiere cambiar de SO.
Debian 11Migrar; si es necesario, usar temporalmente PHP corregido de un proveedor externo.Debian 13 con MagnusBilling 8.
Debian 10 o anterior; CentOS; otros sistemas heredadosRestringir la exposición e iniciar una migración urgente.Servidor nuevo con Debian 13 y MagnusBilling 8.
MagnusBilling anterior al 8Iniciar inmediatamente la migración a la versión 8.Servidor nuevo, pruebas de telefonía y cambio planificado.

Antes de cambiar: respaldo e identificación

Ejecuta los comandos como root. Prepara copias verificadas de la base de datos, aplicación, personalizaciones, configuración de Asterisk, audios y grabaciones necesarios, fuera del servidor, y un snapshot si está disponible. Reserva una ventana de mantenimiento: las actualizaciones y los reinicios pueden interrumpir el panel, la API y procesos de telefonía.

El PHP de la consola puede diferir del que atiende la web. Los módulos cargados tampoco prueban el handler de cada sitio: revisa los VirtualHosts y la configuración FPM.

cat /etc/debian_version
php -v
apache2ctl -M | grep -Ei 'php|proxy_fcgi'
dpkg -l | grep -E '^ii[[:space:]]+(libapache2-mod-php|php[0-9.]+-(cli|common|fpm))'
ls -l /etc/apache2/mods-enabled/*php* /etc/apache2/conf-enabled/*fpm* 2>/dev/null

Debian 12 y 13: actualizar la lista no instala la corrección

apt update consulta los repositorios; apt upgrade instala las actualizaciones disponibles y también puede modificar otros componentes. Revisa la lista antes de confirmar. Si apt update informa errores, resuélvelos antes de considerar actualizado el servidor.

apt update
apt list --upgradable
apt upgrade

Debian 12 con Apache y mod_php 8.2

Confirma libapache2-mod-php8.2 y php8.2-common en 8.2.35-1~deb12u1 o una revisión posterior corregida. Este ejemplo es para mod_php 8.2. Reinicia únicamente después de instalar la corrección; configtest debe pasar.

apt-cache policy libapache2-mod-php8.2 php8.2-common php8.2-fpm
dpkg-query -W libapache2-mod-php8.2 php8.2-common
apache2ctl configtest && systemctl restart apache2
systemctl is-active apache2

Debian 13 con Apache y mod_php 8.4

Confirma libapache2-mod-php8.4 y php8.4-common en 8.4.27-1~deb13u1 o una revisión posterior corregida. Si usas otra versión o un repositorio externo, consulta el aviso de ese proveedor.

apt-cache policy libapache2-mod-php8.4 php8.4-common php8.4-fpm
dpkg-query -W libapache2-mod-php8.4 php8.4-common
apache2ctl configtest && systemctl restart apache2
systemctl is-active apache2

Si usas PHP-FPM, reinicia el FPM correspondiente

Reiniciar solo Apache no garantiza reemplazar los procesos PHP de FPM. Reinicia la unidad utilizada por el sitio: php8.2-fpm o php8.4-fpm en estos ejemplos. Si utilizas otra versión, adapta el nombre y verifica su paquete corregido. No ejecutes ambos comandos indiscriminadamente.

“Not enabling PHP FPM by default” es informativo cuando utilizas mod_php; no actives FPM para ocultar el aviso. “active” confirma que el servicio funciona, no la versión efectiva de cada sitio.
systemctl restart php8.2-fpm
# O, en el servidor que usa PHP 8.4 FPM:
systemctl restart php8.4-fpm

Si la versión candidata sigue siendo antigua

Compara Installed y Candidate en apt-cache policy. Si ambos muestran un paquete vulnerable, apt upgrade y reiniciar Apache no resuelven el problema. Revisa errores de apt update, repositorio de seguridad, espejo, paquetes retenidos y origen de PHP. Los backports pueden corregir fallos sin cambiar la versión principal: verifica la revisión completa en el aviso del proveedor. Restringe el acceso web mientras tanto. No mezcles repositorios de diferentes versiones de Debian.

Debian 11: alternativa temporal con PHP 8.2

El LTS regular de Debian 11 terminó el 31/08/2026. archive.debian.org es un archivo histórico, no una fuente de nuevas correcciones. El destino recomendado es Debian 13.

Con MagnusBilling 8 puedes evaluar temporalmente PHP 8.2 corregido mediante paquetes Sury específicos para bullseye. Añade un proveedor externo y no recupera el soporte del resto del sistema. Prueba en una copia: pasar de PHP 7.4 a 8.2 no garantiza compatibilidad de personalizaciones, módulos adicionales o extensiones comerciales.

Los comandos siguientes son para Debian 11 con mod_php 7.4. Comprueba si Sury ya está configurado para evitar entradas duplicadas y respalda /etc/apt, /etc/php y /etc/apache2. Detente si alguna etapa falla. El soporte extendido con un backport confirmado es otra opción si la aplicación no puede cambiar de PHP.

Instrucciones actuales de Sury

Debian 11 — añadir el repositorio y comprobar la versión

Verifica el origen de la clave. Continúa solo cuando la descarga y la instalación de la clave terminen correctamente.

apt update
apt install ca-certificates curl
curl -fsSLo /tmp/debsuryorg-archive-keyring.deb \
  https://packages.sury.org/debsuryorg-archive-keyring.deb &&
dpkg -i /tmp/debsuryorg-archive-keyring.deb

Usa exclusivamente bullseye en este servidor. Confirma que Candidate ofrece PHP 8.2.35 o posterior; si no está disponible, detente.

echo 'deb [signed-by=/usr/share/keyrings/debsuryorg-archive-keyring.gpg] https://packages.sury.org/php/ bullseye main' \
  > /etc/apt/sources.list.d/sury-php.list
apt update
apt-cache policy libapache2-mod-php8.2 php8.2-cli php8.2-common

Debian 11 — simular e instalar las extensiones

Este conjunto cubre una instalación habitual con curl, GD, mbstring, MySQL, SQLite y XML. Inventaría php -m y adapta la lista a todas las extensiones utilizadas. JSON ya forma parte de PHP 8.2. La simulación no modifica paquetes; revisa eliminaciones y conflictos.

apt-get -s install libapache2-mod-php8.2 \
  php8.2-cli php8.2-common php8.2-curl \
  php8.2-gd php8.2-mbstring php8.2-mysql \
  php8.2-opcache php8.2-readline php8.2-sqlite3 php8.2-xml

Con respaldo restaurable y simulación revisada, instala en mantenimiento. Los paquetes pueden cambiar servicios y alternativas automáticamente; no supongas que el entorno permanecerá intacto hasta el siguiente paso.

apt-get install libapache2-mod-php8.2 \
  php8.2-cli php8.2-common php8.2-curl \
  php8.2-gd php8.2-mbstring php8.2-mysql \
  php8.2-opcache php8.2-readline php8.2-sqlite3 php8.2-xml

Debian 11 — activar en consola y Apache

Confirma primero que /usr/bin/php8.2 existe y funciona. Este bloque presupone mod_php 7.4 activo; no lo apliques a un sitio atendido por FPM. Si configtest falla, corrige la configuración antes de reiniciar.

/usr/bin/php8.2 -v
update-alternatives --set php /usr/bin/php8.2
hash -r
a2dismod php7.4 &&
a2enmod php8.2 &&
apache2ctl configtest &&
systemctl restart apache2

Debian 11 — comprobar el resultado

Debes ver PHP 8.2.35 o posterior, enlaces php8.2 en mods-enabled y Apache activo después de reiniciarlo correctamente. Conserva los paquetes antiguos hasta validar, pero no dejes sitios ni workers atendiendo peticiones con PHP 7.4 sin corregir. No uses autoremove en esta etapa.

php -v
php -m
ls -l /etc/apache2/mods-enabled/*php*
dpkg-query -W libapache2-mod-php8.2 php8.2-common
systemctl is-active apache2

Validar panel, API, AGI y facturación

  • Revisa memoria, subidas y zona horaria en /etc/php/8.2/apache2/php.ini y /etc/php/8.2/cli/php.ini, o las rutas de la versión y SAPI usadas. No copies íntegramente el php.ini antiguo.
  • Confirma la versión en el contexto web con un diagnóstico temporal restringido a acceso autorizado y elimínalo después. No publiques phpinfo().
  • Revisa scripts AGI, shebangs, cron y servicios que llamen explícitamente a php7.4: update-alternatives no modifica esas rutas. Revisa también pools FPM antiguos en uso.
  • Prueba acceso, API, llamadas entrantes y salientes, audio, CDR, tarificación, saldos, tareas programadas e integraciones de pago. Consulta los registros.
  • Si debes volver a una versión vulnerable, restringe el acceso web durante la recuperación. Volver al entorno anterior no corrige la vulnerabilidad.

Debian antiguo, CentOS y MagnusBilling anterior al 8: migración urgente

Si usas Debian anterior al 11, CentOS u otro sistema heredado, migra a Debian 13 lo antes posible. CentOS 7 terminó su soporte oficial el 30/06/2024. Que un sistema funcione no significa que reciba correcciones. Esta es la recomendación operativa de MagnusBilling, no una afirmación de que todas las versiones de otros sistemas estén sin soporte.

Si aún usas MagnusBilling anterior al 8, inicia inmediatamente la actualización mediante migración controlada. Pasar del 7 al 8 requiere otro servidor: no ejecutes el instalador 8 sobre la instalación antigua. Prepara Debian 13 limpio, sigue la documentación y valida base de datos, troncales, endpoints, conversión chan_sip/PJSIP y tarificación antes del cambio.

Mientras no se complete la corrección o migración, limita HTTP/HTTPS a VPN o IP de confianza, en IPv4 e IPv6. Considera API y callbacks necesarios y preserva SIP/RTP. La contraseña y los controles del inicio de sesión no sustituyen el filtrado de red ni la corrección de PHP.

Planifica la migración a MagnusBilling 8

Referencias y fecha de verificación

Procedimientos verificados el 21/10/2026. Comprueba los paquetes y las instrucciones actuales del proveedor antes de ejecutar.