Nueva versión del servidor POP3 e IMAP4 Dovecot 2.3.21

Se ha publicado una nueva versión del servidor POP3/IMAP4 multiplataforma y de alto rendimiento Dovecot 2.3.21, que soporta los protocolos POP3 e IMAP4rev1 con extensiones populares como SORT, THREAD e IDLE, así como mecanismos de autenticación y cifrado (SASL, TLS, SCRAM). Dovecot mantiene completa compatibilidad con los formatos clásicos mbox y Maildir, aplicando índices externos para mejorar el rendimiento. Se pueden utilizar complementos para ampliar la funcionalidad (por ejemplo, mediante complementos se implementan cuotas y ACL). El código del proyecto se distribuye bajo las licencias LGPL y MIT.

Principales cambios:

  • lib-oauth2: Se permite la verificación de tokens JWT sin el campo 'typ'. Este campo no es utilizado por algunos emisores de claves para ahorrar espacio, en particular, kubernetes. Ahora se permite la ausencia de 'typ', pero si está presente, debe ser 'jwt'.
  • auth: La respuesta 'Auth' de passdb y userdb puede contener el valor 'event_=value', que se agregará al evento de inicio de sesión y al evento del usuario de correo respectivamente.
  • lib-master: Establece el encabezado del proceso en varias etapas de inicialización para clarificar lo que espera el proceso.
  • lib-storage: El intervalo mail_temp_scan_interval ahora se incrementa entre un 0 y un 30% dependiendo del hash del nombre de usuario, para reducir la probabilidad de picos de carga.
  • lib-storage: El escaneo del archivo temporario se ha trasladado desde la apertura del buzón de correo hasta su cierre, para reducir la latencia experimentada por los usuarios.
  • stats: Si hay campos indicados en la métrica, se exportan todos estos campos como contadores para prometheus en formato exposition.
  • "*-login": Los procesos podrían terminar inesperadamente debido a una desconexión incorrecta de la conexión SSL. — acl: Al cargar el complemento, las banderas \\HasChildren y \\HasNoChildren se calculaban incorrectamente para buzones de correo que contenían en su nombre '*' y '%'.
  • auth: Se producía un fallo al intentar conectar a la base de datos PostgreSQL durante el inicio.
  • auth: Al iniciar sesión con contraseñas incorrectas (por ejemplo, con un esquema desconocido) en passdb se devolvía un error de 'desajuste de contraseña' en lugar de un 'error interno'.
  • auth: Los mecanismos XOAUTH2 y OAUTHBEARER no generaban un mensaje de error específico del protocolo en caso de fallos. Esto dificultaba en particular la detección de OIDC.
  • dbox: Si el encabezado last_temp_file_scan no se había establecido (especialmente después de la migración dsync), al abrir el buzón siempre se iniciaba un escaneo de archivos temporales. Esto podía causar un aumento de carga después de las migraciones. Se solucionó usando atime del directorio del buzón en ausencia del encabezado, lo que normalmente retrasa el tiempo de escaneo hacia el futuro.
  • dict-redis: Se producía un fallo al revertir transacciones.
  • dsync: Al eliminar un buzón en el extremo remoto, cuando los delimitadores de niveles de jerarquía no coincidían, se generaba un bucle infinito que provocaba un fallo de memoria.
  • dsync: El dsync incremental no se ejecutaba para los nombres de las carpetas que terminaban en ‘%’ a menos que se estableciera el valor BROKENCHAR. Además, los nombres de las carpetas con ‘%’ en otros lugares causaban que en cada dsync incremental se renombrara innecesariamente la carpeta a un nombre temporal y luego de vuelta. Regresión v2.3.19.
  • imap-hibernate: Si al desbloquear el cliente IMAP se producía un tiempo de espera con el mensaje «(version received)», el desbloqueo podía completarse con éxito posteriormente y continuar funcionando normalmente. Esto causaba confusión, ya que imap-hibernate ya había registrado que el cliente se había desconectado. Esto se puede evitar haciendo que la conexión finalice por el tiempo de espera de finalización de la hibernación.
  • imapc: Caída al desaparecer del almacenamiento una carpeta que se mostraba a través de un complemento virtual.
  • imapc: Las respuestas EXPUNGE, EXISTS o FETCH de servidores un buzón previamente seleccionado podían ser procesadas como si pertenecieran a un nuevo buzón que se había seleccionado en ese momento. Esto podía llevar a la aparición de advertencias.
  • lib-http: El servidor HTTP de Dovecot (doveadm, stats/openmetrics) podía desconectar a los clientes HTTP antes de enviar completamente la respuesta. Esto solo ocurría en servidores sobrecargados donde los búferes de socket del kernel estaban muy llenos.
  • lib-http: Se corrigió un posible fallo del servidor HTTP en caso de que el cliente se desconectara prematuramente. Regresión en 2.3.18.
  • lib-index: La corrupción del archivo de índice podía provocar un cierre inesperado. Solución: Panic: file mail-transaction-log-view.c: line 165 (mail_transaction_log_view_set): assertion failed: (min_file_seq <= max_file_seq).
  • lib-index: La limpieza de un archivo de caché existente de más de 1 GB podría haber provocado un fallo. Ahora, después de la limpieza, los archivos de caché que aún superan 1 GB se eliminan. Solucionado: Panic: file mail-index-util.c: línea 10 (mail_index_uint32_to_offset): afirmación fallida: (offset < 0x40000000).
  • lib-lua: El cliente HTTP no podía resolver nombres DNS en los procesos de correo, ya que esperaba que el socket «dns-client» estuviera en el directorio actual.
  • lib-oauth2: Dovecot enviaba client_id y client_secret como parámetros POST al servidor de introspección. Sin embargo, su uso es opcional en la autenticación básica.
  • lib-oauth2: La validación de JWT «aud» no se llevaba a cabo si «aud» estaba ausente en el token, pero estaba configurado en Dovecot.
  • lib-oauth2: Comprobación de tipo de clave JWT demasiado estricta.
  • lib-oauth2: La audiencia del token JWT no se verificó en relación con client_id, como requiere la especificación.
  • lib-ssl-iostream: El uso del parámetro ssl_require_crl=yes podría provocar fallos en la verificación CRL para conexiones SSL/TLS salientes, aunque se asumía que solo afectaba a la verificación CRL para clientes. certificados SSL. v2.3.17 regresión.
  • lib-sql: El controlador MySQL permitía una fuga de memoria en caso de una conexión fallida.
  • lib-storage: Varias correcciones en caso de falta de espacio en disco.
  • master: La configuración del servicio idle_kill no funcionaba correctamente en servidores cargados. Era muy poco probable que algún proceso permaneciera inactivo el tiempo suficiente como para ser eliminado. Además, con un gran número de procesos (por ejemplo, imap), el código de manejo de idle_kill utilizaba demasiada CPU en el proceso principal. Ahora, cada intervalo de tiempo idle_kill rastreará la menor cantidad de procesos inactivos y luego eliminará esa cantidad.
  • mdbox: La verificación de archivos temporales se realizaba para directorios siempre vacíos.
  • mdbox: Al escribir correos, la llamada a fdatasync() se realizaba en el directorio padre incorrecto. Además, en caso de fallo, se producía un fallo en lugar de registrar el error en el registro.
  • notify_status: El complemento finaliza de manera anormal al fallar la inicialización del usuario. — pop3: Enviar un comando con el símbolo ‘:’ provocaba un fallo «assert-crash». Regresión en el lanzamiento 2.3.18.
  • stats: Se ha solucionado la panique que se produjo al acceder a un exportador de eventos inexistente al agregar dinámicamente una nueva métrica mediante el comando «doveadm stats add». Ahora se genera un error correcto.
  • stats: Si el proceso exportó muchos eventos y luego se detuvo, algunos de los últimos eventos podrían haberse perdido.
  • stats: Se crearon nombres de etiquetas Prometheus no válidos en ciertas configuraciones de histogram group_by. Prometheus rechazó estas etiquetas.
  • welcome: El plugin no se ejecutó en algunas situaciones en las que se creaba el INBOX, pero no se abría, por ejemplo, si se utilizaba GETMETADATA antes de abrir el INBOX.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster