{"id":1634,"date":"2026-09-22T22:26:03","date_gmt":"2026-09-23T01:26:03","guid":{"rendered":"https:\/\/www.linuxpro.com.br\/?p=1634"},"modified":"2026-09-22T22:26:03","modified_gmt":"2026-09-23T01:26:03","slug":"ispconfig-3-3-2-ubuntu-26-04-dmarc-e-correcoes-de-seguranca","status":"publish","type":"post","link":"https:\/\/www.linuxpro.com.br\/es\/2026\/09\/ispconfig-3-3-2-ubuntu-26-04-dmarc-e-correcoes-de-seguranca\/","title":{"rendered":"ISPConfig 3.3.2: Ubuntu 26.04, DMARC y correcciones de seguridad"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/09\/ispconfig-3-3-2-v1.webp\" alt=\"Mascote LinuxPro ajoelhado encaixando um m\u00f3dulo atualizado num rack com o \u00edcone do ISPConfig, com o cachorro caramelo cyborg deitado ao lado\" width=\"1486\" height=\"856\" \/><\/p>\n<p>O <strong>ISPConfig 3.3.2<\/strong> sali\u00f3 el 18 de septiembre de 2026 y, tres d\u00edas despu\u00e9s, recibi\u00f3 el parche <strong>3.3.2p1<\/strong>. Es una actualizaci\u00f3n que merece la pena aplicar cuanto antes: adem\u00e1s del soporte para Ubuntu 26.04 y de novedades en el correo, corrige una <strong>inyecci\u00f3n SQL en la API remota<\/strong>, una <strong>escalada de privilegios en Fetchmail<\/strong> y una serie de fallos detectados en una auditor\u00eda de c\u00f3digo. Esta gu\u00eda resume qu\u00e9 ha cambiado, qu\u00e9 comprobar tras la actualizaci\u00f3n y c\u00f3mo actualizar sin sobresaltos.<\/p>\n<p><!-- more --><\/p>\n<p>Si eres nuevo en el panel, merece la pena leer antes <a href=\"\/es\/2017\/01\/a-historia-do-ispconfig\/\">la historia de ISPConfig<\/a> y nuestra gu\u00eda de <a href=\"\/es\/2017\/01\/hospedagem-com-ispconfig\/\">alojamiento de sitios web con ISPConfig<\/a>.<\/p>\n<h2>Seguridad: por qu\u00e9 actualizar ahora<\/h2>\n<p>El anuncio oficial no cita n\u00fameros de CVE, solo las issues del proyecto y qui\u00e9n report\u00f3 cada fallo. Las dos m\u00e1s graves:<\/p>\n<ul>\n<li><strong>Inyecci\u00f3n de SQL en la API remota (#7051).<\/strong> El ID de registro pasado a las funciones de <em>update<\/em> e <em>delete<\/em> de la API iba a la consulta SQL sin validaci\u00f3n. Un usuario de la API con permiso para una de esas funciones pod\u00eda modificar o eliminar registros fuera de su permiso y leer datos de otras tablas. Ahora el ID debe ser un entero positivo y las consultas usan <em>placeholders<\/em>. Reportado por Nguyen Chi Quang, de MBBank.<\/li>\n<li><strong>Escalada de privilegios en Fetchmail (#7052).<\/strong> Los campos de una cuenta Fetchmail se escrib\u00edan en el archivo de configuraci\u00f3n de getmail sin validaci\u00f3n: con saltos de l\u00ednea, un cliente lograba inyectar secciones extra. Los saltos de l\u00ednea y los bytes nulos ahora se eliminan, el destino debe ser un correo electr\u00f3nico v\u00e1lido y el complemento se niega a escribir en enlaces simb\u00f3licos o fuera del directorio de getmail. Reportado por Arvin Shivram, de Brutecat Security.<\/li>\n<\/ul>\n<p>Tambi\u00e9n entraron correcciones de una <strong>auditor\u00eda de c\u00f3digo realizada por siteguardian.io<\/strong> (#7044):<\/p>\n<ul>\n<li>el enlace de restablecimiento de contrase\u00f1a se constru\u00eda a partir del encabezado <code data-no-translation=\"\">Host<\/code> de la petici\u00f3n, lo que permit\u00eda enviar al usuario un enlace apuntando a un servidor del atacante;<\/li>\n<li>los tokens CSRF pasan a ser obligatorios en las copias de seguridad, la importaci\u00f3n de zonas DNS, la gesti\u00f3n de extensiones y la importaci\u00f3n de vpopmail;<\/li>\n<li>la comprobaci\u00f3n TLS vuelve a aplicarse en la descarga de extensiones y paquetes APS;<\/li>\n<li>el ID de sesi\u00f3n se regenera al iniciar sesi\u00f3n;<\/li>\n<li>los hashes y tokens se comparan en tiempo constante;<\/li>\n<li>las cabeceras de correo electr\u00f3nico quedan protegidas contra la inyecci\u00f3n de CRLF;<\/li>\n<li>los argumentos de shell pasan a escaparse en los comandos de DNSSEC de PowerDNS, certbot y de tama\u00f1o de PostgreSQL;<\/li>\n<li>la extracci\u00f3n de paquetes APS rechaza <em>path traversal<\/em>;<\/li>\n<li><code data-no-translation=\"\">unserialize()<\/code> ya no acepta objetos;<\/li>\n<li>el archivo antiguo <code data-no-translation=\"\">interface\/web\/remote\/monitor.php<\/code> se elimina.<\/li>\n<\/ul>\n<p>Dos errores con efecto de seguridad completan la lista. El campo de cliente de los formularios volv\u00eda al primer elemento tras un error de validaci\u00f3n, y con ello un registro pod\u00eda pasar al revendedor, o un sitio cambiar de directorio (#7048). Y una cuota de tr\u00e1fico igual a <code data-no-translation=\"\">0<\/code> no se aplicaba, lo que permit\u00eda saltarse el l\u00edmite de tr\u00e1fico del cliente (#7024).<\/p>\n<p>El ciclo anterior tambi\u00e9n incluy\u00f3 correcciones de seguridad: el <a href=\"https:\/\/www.ispconfig.org\/blog\/ispconfig-3-3-1-released\/\">ISPConfig 3.3.1<\/a>, de enero de 2026, corrigi\u00f3 tres fallos de escalada de privilegios en temas, restauraci\u00f3n y descarga de copias de seguridad. Quienes a\u00fan est\u00e9n en 3.3.0 tienen a\u00fan m\u00e1s motivos para actualizar.<\/p>\n<h2>Qu\u00e9 hay de nuevo<\/h2>\n<h3>Ubuntu 26.04 LTS<\/h3>\n<p>ISPConfig 3.3.2 es compatible con Ubuntu 26.04 LTS, incluida la sintaxis de configuraci\u00f3n de Dovecot 2.4 utilizada por esa versi\u00f3n (#6996). La lista oficial de distribuciones compatibles queda as\u00ed:<\/p>\n<ul>\n<li>Debian 11 a 13 (recomendado) y Debian testing;<\/li>\n<li>Ubuntu 22.04 LTS a 26.04 LTS (recomendado);<\/li>\n<li>AlmaLinux 8 a 10 y Rocky Linux 8 a 10;<\/li>\n<li>CentOS 8.<\/li>\n<\/ul>\n<h3>DMARC en la entrada de correo<\/h3>\n<p>Una nueva opci\u00f3n hace que rspamd <strong>aplique la pol\u00edtica DMARC<\/strong> publicada por el dominio remitente: el mensaje que la incumpla ser\u00e1 rechazado o enviado a cuarentena, seg\u00fan la pol\u00edtica del dominio, <code data-no-translation=\"\">p=reject<\/code> o <code data-no-translation=\"\">p=quarantine<\/code> (#6995).<\/p>\n<h3>Remitente independiente para correos del sistema<\/h3>\n<p>El correo del administrador serv\u00eda al mismo tiempo como remitente y destinatario de los mensajes del sistema. Cuando el buz\u00f3n del administrador est\u00e1 en otro proveedor, esto romp\u00eda el SPF: el servidor de ISPConfig enviaba usando un dominio que no aloja. En <strong>Sistema &gt; Configuraci\u00f3n Principal &gt; Correo<\/strong> ahora existen dos campos (#7028):<\/p>\n<ul>\n<li><strong>Correo electr\u00f3nico de contacto del administrador<\/strong> (<code data-no-translation=\"\">admin_mail<\/code>: recibe las notificaciones y es la direcci\u00f3n de respuesta;<\/li>\n<li><strong>Direcci\u00f3n de correo del remitente del servidor<\/strong> (<code data-no-translation=\"\">server_sender_mail<\/code>: el remitente de los mensajes del sistema, como avisos de tr\u00e1fico y cuota, monitorizaci\u00f3n, OTP, restablecimiento de contrase\u00f1a y bienvenida.<\/li>\n<\/ul>\n<p>La actualizaci\u00f3n copia el correo actual del administrador al nuevo campo, as\u00ed que nada cambia hasta que configures otro remitente. Vale la pena aprovechar y usar una direcci\u00f3n de un dominio alojado en el propio servidor. Las plantillas personalizadas en <code data-no-translation=\"\">conf-custom\/mail\/<\/code> que definen su propio remitente no se modifican.<\/p>\n<h3>Copia de seguridad de la base de datos sin bloquear tablas<\/h3>\n<p>O <code data-no-translation=\"\">mysqldump<\/code> bloquea todas las tablas de la base de datos durante el volcado, y el sitio puede quedarse sin responder mientras la copia de seguridad se ejecuta. En <strong>Sistema &gt; Configuraci\u00f3n del Servidor &gt; Servidor<\/strong> hay una nueva opci\u00f3n para usar <code data-no-translation=\"\">--single-transaction<\/code> (#7049):<\/p>\n<ul>\n<li><strong>Automatic<\/strong> (por defecto): utiliza <code data-no-translation=\"\">--single-transaction<\/code> solo cuando todas las tablas usan un motor transaccional como InnoDB. Las bases de datos con tablas MyISAM o MEMORY siguen con bloqueo, porque sin \u00e9l el volcado de esas tablas no queda consistente.<\/li>\n<li><strong>Yes<\/strong>: nunca bloquea. Es la opci\u00f3n para bases de datos mixtas en las que la disponibilidad importa m\u00e1s que la coherencia de las tablas no transaccionales.<\/li>\n<li><strong>En el<\/strong>: mantiene el comportamiento antiguo.<\/li>\n<\/ul>\n<h3>Otros cambios<\/h3>\n<ul>\n<li><strong>L\u00edmites extensibles (#7019):<\/strong> las extensiones pueden registrar l\u00edmites propios de cliente y revendedor sin modificar archivos del n\u00facleo.<\/li>\n<li><strong>Lista de CAs para registros CAA actualizada (#7017).<\/strong><\/li>\n<li><strong>P\u00e1ginas de error personalizadas desactivadas por defecto<\/strong> en sitios nuevos; los existentes no cambian (#7021).<\/li>\n<li><code data-no-translation=\"\">ispconfig_update.sh<\/code> obtuvo una opci\u00f3n de l\u00ednea de comandos para actualizar desde una rama espec\u00edfica.<\/li>\n<li>Mejoras en acme.sh para direcciones de loopback, con mejor registro en el instalador y descarga mediante <code data-no-translation=\"\">curl<\/code> como alternativa.<\/li>\n<li>El override del directorio temporal de systemd tambi\u00e9n pasa a aplicarse a la unit de Apache.<\/li>\n<\/ul>\n<p>Entre las correcciones: barras invertidas que desaparecen de valores de configuraci\u00f3n, como la contrase\u00f1a SMTP (#7042); cron interno que nunca m\u00e1s se ejecutaba tras una ejecuci\u00f3n abortada (#7034); falta de aviso de copia de seguridad nocturna con error (#7002); <code data-no-translation=\"\">.htaccess<\/code> cambiando a <code data-no-translation=\"\">root:root<\/code> (#7035); <code data-no-translation=\"\">DivisionByZeroError<\/code> en las estad\u00edsticas de tr\u00e1fico en PHP 8 (#7023); y BIND sin poder escribir zonas secundarias en Ubuntu 24.04 con AppArmor. La lista completa est\u00e1 en el <a href=\"https:\/\/git.ispconfig.org\/ispconfig\/ispconfig3\/-\/milestones\/99\">hito 99<\/a> del GitLab del proyecto.<\/p>\n<h2>El parche 3.3.2p1: regresiones ya corregidas<\/h2>\n<p>El 21 de septiembre sali\u00f3 el <strong>3.3.2p1<\/strong>, que corrige problemas encontrados justo despu\u00e9s del lanzamiento. Si ya actualizaste a la 3.3.2, comprueba si te afect\u00f3:<\/p>\n<ul>\n<li><strong>rspamd no arrancaba<\/strong> tras la actualizaci\u00f3n con reconfiguraci\u00f3n de servicios (#7054). La actualizaci\u00f3n renombraba <code data-no-translation=\"\">\/etc\/rspamd\/local.d\/users.conf<\/code>,  , pero la directiva de inclusi\u00f3n se quedaba en <code data-no-translation=\"\">\/etc\/rspamd\/rspamd.conf<\/code> cuando no terminaba con salto de l\u00ednea. El p1 elimina la directiva y repara servidores ya afectados.<\/li>\n<li><strong>Cron del ISPConfig abortando<\/strong> con <code data-no-translation=\"\">Unsupported operand types: string + string<\/code> en PHP 8, por lectura err\u00f3nea de la salida del <code data-no-translation=\"\">repquota<\/code> (#7053).<\/li>\n<li><strong>MySQL y MariaDB antiguos:<\/strong> la columna <code data-no-translation=\"\">pid<\/code> no se creaba en <code data-no-translation=\"\">sys_cron<\/code> en MySQL y en MariaDB anterior a 10.0.2 (#7055). Y los usuarios de base de datos no se creaban en MariaDB anterior a 10.1.3 y en MySQL anterior a 5.7.8 (#7056).<\/li>\n<li><strong>Buzones de correo creados en el servidor equivocado<\/strong> cuando el mismo dominio existe en m\u00e1s de un servidor de correo (#7057).<\/li>\n<\/ul>\n<p>En la pr\u00e1ctica: <strong>actualice directamente a 3.3.2p1<\/strong>. El canal <em>stable<\/em> ya entrega esta versi\u00f3n.<\/p>\n<h2>Antes de actualizar<\/h2>\n<ol>\n<li><strong>Backup.<\/strong> El propio actualizador ofrece crear un backup en <code data-no-translation=\"\">\/var\/backup\/<\/code>. Acepte, y tenga tambi\u00e9n un snapshot de la VM o un backup externo de la base de datos <code data-no-translation=\"\">dbispconfig<\/code> y de <code data-no-translation=\"\">\/usr\/local\/ispconfig<\/code>.<\/li>\n<li><strong>Versi\u00f3n actual.<\/strong> Compruebe desde d\u00f3nde sale:\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">grep ISPC_APP_VERSION \/usr\/local\/ispconfig\/server\/lib\/config.inc.php<\/code><\/pre>\n<\/li>\n<li><strong>Multiservidor.<\/strong> Active el modo de mantenimiento, actualice primero el servidor master, despu\u00e9s los slaves, y solo entonces desactive el mantenimiento. Es el orden que el propio script de update recomienda.<\/li>\n<\/ol>\n<h2>C\u00f3mo actualizar<\/h2>\n<p>El camino m\u00e1s simple es el script ya instalado en el servidor, apuntando al canal estable. Ejecute como root:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">ispconfig_update.sh --update-source=stable<\/code><\/pre>\n<p>Sin la opci\u00f3n, el script pregunta el origen; elija <code data-no-translation=\"\">stable<\/code>. Los canales <code data-no-translation=\"\">nightly<\/code> e <code data-no-translation=\"\">git-develop<\/code> son para entornos de desarrollo y no deben usarse en servidores con sitios en producci\u00f3n.<\/p>\n<p>La alternativa es el paquete manual. El anuncio oficial muestra los comandos con el archivo <code data-no-translation=\"\">ISPConfig-3.3.2.tar.gz<\/code>; para ya incluir las correcciones del parche, usa el <code data-no-translation=\"\">3.3.2p1<\/code>, publicado en el mismo directorio de descargas:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">cd \/tmp\nwget https:\/\/www.ispconfig.org\/downloads\/ISPConfig-3.3.2p1.tar.gz\ntar xvfz ISPConfig-3.3.2p1.tar.gz\ncd ispconfig3_install\/install\nphp -q update.php<\/code><\/pre>\n<p>El updater hace algunas preguntas. Los valores predeterminados se ajustan a la mayor\u00eda de los casos:<\/p>\n<ul>\n<li><strong>Shall the script create a ISPConfig backup in \/var\/backup\/ now?<\/strong> <code data-no-translation=\"\">yes<\/code>.<\/li>\n<li><strong>Reconfigure Permissions in master database?<\/strong> <code data-no-translation=\"\">no<\/code> en servidor \u00fanico; en multiservidor, solo si has cambiado algo en los permisos.<\/li>\n<li><strong>Reconfigure Services?<\/strong> <code data-no-translation=\"\">yes<\/code>, para aplicar los cambios de Dovecot, rspamd, Apache o nginx. Utiliza <code data-no-translation=\"\">selected<\/code> si quieres elegir servicio por servicio.<\/li>\n<li><strong>Create new ISPConfig SSL certificate<\/strong>: <code data-no-translation=\"\">no<\/code>, a menos que desee cambiar el certificado del panel.<\/li>\n<li><strong>\u00bfReconfigurar Crontab?<\/strong> <code data-no-translation=\"\">yes<\/code>.<\/li>\n<\/ul>\n<h2>Despu\u00e9s de actualizar: lista de comprobaci\u00f3n<\/h2>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">grep ISPC_APP_VERSION \/usr\/local\/ispconfig\/server\/lib\/config.inc.php   # 3.3.2p1\nsystemctl status rspamd dovecot postfix --no-pager\ntail -n 50 \/var\/log\/ispconfig\/cron.log<\/code><\/pre>\n<ul>\n<li><strong>Enlace de restablecimiento de contrase\u00f1a:<\/strong> si se accede al panel mediante un nombre diferente al nombre de host del servidor, defina <code data-no-translation=\"\">interface_base_url<\/code> en <code data-no-translation=\"\">\/usr\/local\/ispconfig\/interface\/lib\/config.inc.php<\/code>. Sin esto, el enlace sale con el nombre de host del servidor.<\/li>\n<li><strong>Lista blanca del IDS:<\/strong> el alcance de las entradas (<code data-no-translation=\"\">any<\/code>, <code data-no-translation=\"\">user<\/code>, <code data-no-translation=\"\">admin<\/code>) ahora se respeta. Si tiene <code data-no-translation=\"\">security\/ids.whitelist.custom<\/code>, verifique que los campos editables por revendedores usen el alcance <code data-no-translation=\"\">user<\/code>.<\/li>\n<li><strong>Remitente del sistema:<\/strong> ajuste el <em>Direcci\u00f3n de correo del remitente del servidor<\/em> si el correo del administrador queda fuera del servidor.<\/li>\n<li><strong>Copia de seguridad sin bloqueos:<\/strong> revisa la nueva opci\u00f3n en <em>Server Config<\/em> si tus bases de datos mezclan InnoDB y MyISAM.<\/li>\n<li><strong>DMARC:<\/strong> activa la aplicaci\u00f3n de la pol\u00edtica en la entrada con calma, vigilando la cuarentena durante los primeros d\u00edas.<\/li>\n<\/ul>\n<h2>Problemas conocidos<\/h2>\n<p>El proyecto mantiene la lista de <a href=\"https:\/\/git.ispconfig.org\/ispconfig\/ispconfig3\/-\/issues?scope=all&amp;utf8=%E2%9C%93&amp;state=opened&amp;label_name[]=Bug\">bugs abiertos<\/a> en GitLab. Cons\u00faltala antes de actualizar servidores cr\u00edticos y registra nuevas incidencias en el <a href=\"https:\/\/git.ispconfig.org\/ispconfig\/ispconfig3\/issues\">seguimiento de issues<\/a>. Hasta ahora, las regresiones confirmadas por el propio proyecto son las cinco corregidas en 3.3.2p1. El GitLab de ISPConfig est\u00e1 detr\u00e1s de una verificaci\u00f3n de Cloudflare, as\u00ed que abre los enlaces en el navegador; las herramientas de l\u00ednea de comando suelen ser bloqueadas.<\/p>\n<h2>Resumen<\/h2>\n<p>La 3.3.2 es una actualizaci\u00f3n de seguridad disfrazada de release de funcionalidades. Ubuntu 26.04, DMARC y copia de seguridad sin bloqueos son bienvenidos, pero el motivo para programar la ventana esta semana es la inyecci\u00f3n de SQL en la API remota y Fetchmail, especialmente en servidores con revendedores o clientes que usan la API. Actualiza directamente a 3.3.2p1, haz la copia de seguridad y pasa el checklist. Para quien monta el servidor desde cero, la gu\u00eda de <a href=\"\/es\/2017\/04\/ispconfig3-no-debian\/\">ISPConfig en Debian<\/a> muestra la ruta cl\u00e1sica, y la de <a href=\"\/es\/2026\/09\/nginx-varias-versoes-php-debian-ubuntu\/\">Nginx con varias versiones de PHP<\/a> ayuda a entender lo que el panel configura por debajo.<\/p>","protected":false},"excerpt":{"rendered":"<p>ISPConfig 3.3.2 trae Ubuntu 26.04, DMARC en la entrada, copia de seguridad de la base de datos sin bloquear tablas y corrige una inyecci\u00f3n de SQL en la API remota y una escalada de privilegios en Fetchmail. Vea qu\u00e9 cambi\u00f3, el parche 3.3.2p1 y c\u00f3mo actualizar de forma segura.<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,78,71,2,120,3],"tags":[15,73,145,57,5],"class_list":["post-1634","post","type-post","status-publish","format-standard","hentry","category-debian","category-email","category-hospedagem","category-linux","category-servidores","category-ubuntu","tag-debian","tag-hospedagem","tag-ispconfig","tag-painel","tag-ubuntu"],"_links":{"self":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts\/1634","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/comments?post=1634"}],"version-history":[{"count":2,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts\/1634\/revisions"}],"predecessor-version":[{"id":1637,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts\/1634\/revisions\/1637"}],"wp:attachment":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/media?parent=1634"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/categories?post=1634"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/tags?post=1634"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}