Nouvelle version du serveur POP3 et IMAP4 Dovecot 2.3.21

Une nouvelle version du serveur POP3/IMAP4 multi-plateforme et haute performance Dovecot 2.3.21 a été publiée, prenant en charge les protocoles POP3 et IMAP4rev1 avec des extensions populaires telles que SORT, THREAD et IDLE, ainsi que des mécanismes d'authentification et de chiffrement (SASL, TLS, SCRAM). Dovecot maintient une compatibilité totale avec les formats mbox et Maildir classiques, utilisant des index externes pour améliorer les performances. La fonctionnalité peut être étendue via des plugins (par exemple, les quotas et ACL sont implémentés via des plugins). Le code du projet est distribué sous les licences LGPL et MIT.

Principales modifications :

  • lib-oauth2 : La vérification des tokens JWT sans le champ « typ » est désormais autorisée. Le champ « typ » n'est pas utilisé par certains émetteurs de clés pour économiser de l'espace, en particulier kubernetes. L'absence de « typ » est désormais acceptée, mais s'il est présent, il doit toujours être « jwt ».
  • auth : La réponse « Auth » de passdb et userdb peut contenir la valeur « event_=value », qui sera ajoutée à l'événement de connexion et à l'événement utilisateur de messagerie respectivement.
  • lib-master : Définit l'en-tête de processus à différentes étapes d'initialisation pour clarifier les attentes du processus.
  • lib-storage : L'intervalle mail_temp_scan_interval est désormais augmenté de 0 à 30 % en fonction du hachage du nom d'utilisateur, afin de réduire la probabilité de pics de charge.
  • lib-storage : Le scan de fichier temporaire a été déplacé de l'ouverture de la boîte aux lettres à sa fermeture, afin de réduire la latence ressentie par les utilisateurs.
  • stats : Si des champs sont spécifiés dans la métrique, tous ces champs sont exportés sous forme de compteurs pour prometheus au format exposition.
  • « *-login » : Les processus pouvaient se terminer de manière inattendue lors de la rupture imprudente d'une connexion SSL. — acl : Lors du chargement du plugin, les indicateurs \\HasChildren et \\HasNoChildren étaient incorrectement calculés pour les boîtes aux lettres contenant dans leur nom ‘*’ et ‘%’.
  • auth : Une erreur s'est produite lors d'une connexion échouée à la base de données PostgreSQL au démarrage.
  • auth : Lors de la connexion avec des mots de passe incorrects (par exemple, avec un schéma inconnu), une erreur « password mismatch » était affichée dans passdb au lieu d'une « erreur interne ».
  • auth : Les mécanismes XOAUTH2 et OAUTHBEARER ne renvoyaient pas de message d'erreur spécifique au protocole lors de toute erreur. Cela a particulièrement entravé la détection de l'OIDC.
  • dbox : Si l'en-tête last_temp_file_scan n'a pas été défini (en particulier après une migration dsync), alors à la prochaine ouverture de la boîte aux lettres, un scan des fichiers temporaires était toujours lancé. Cela pouvait causer un pic de charge après les migrations. Résolu en utilisant atime du répertoire de la boîte aux lettres en l'absence de l'en-tête, ce qui décale généralement le temps de scan dans le futur.
  • dict-redis : L'échec se produisait lors du retour en arrière des transactions.
  • dsync : Lors de la suppression d'une boîte aux lettres à distance, lorsque les séparateurs de niveaux hiérarchiques ne correspondaient pas, une boucle infinie se produisait, entraînant une sortie de mémoire.
  • dsync : Le dsync incrémentiel n'était pas effectué pour les noms de dossiers se terminant par ‘%’, à moins que la valeur BROKENCHAR ne soit définie. De plus, les noms de dossiers contenant ‘%’ à d'autres endroits entraînaient, à chaque dsync incrémentiel, un renommage inutile du dossier en un nom temporaire et vice versa. Régression v2.3.19.
  • imap-hibernate : Si un timeout avec le message « (version reçue) » se produisait lors du déverrouillage du client IMAP, le déverrouillage pouvait ensuite se terminer avec succès et continuer à fonctionner normalement. Cela provoquait de la confusion, car imap-hibernate avait déjà enregistré que le client s'était déconnecté. Cela peut être évité en forçant la connexion à se terminer par timeout lors de la fin de l'hibernation.
  • imapc : Plantage lors de la disparition d'un dossier affiché via un plugin virtuel.
  • imapc : Les réponses EXPUNGE, EXISTS ou FETCH avec de serveurs pour une boîte aux lettres précédemment sélectionnée pouvaient être traitées comme appartenant à la nouvelle boîte aux lettres actuellement sélectionnée. Cela pouvait entraîner des alertes.
  • lib-http : Le serveur HTTP Dovecot (doveadm, stats/openmetrics) pouvait déconnecter les clients HTTP avant l'envoi complet de la réponse. Cela ne se produisait que sur des serveurs chargés où les tampons de sockets du noyau étaient fortement saturés.
  • lib-http : Résolution d'un possible plantage du serveur http en cas de déconnexion prématurée du client. Régression dans 2.3.18.
  • lib-index : La corruption d'un fichier d'index pouvait entraîner une terminaison anormale. Corrigé : 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 suppression d'un fichier cache existant de plus de 1 Go pouvait entraîner un échec. Désormais, après la suppression, les fichiers cache dont la taille dépasse toujours 1 Go sont supprimés. Résolu : Panic : fichier mail-index-util.c : ligne 10 (mail_index_uint32_to_offset) : assertion échouée : (offset < 0x40000000).
  • lib-lua : Le client HTTP n'a pas pu déterminer les noms DNS dans les processus de messagerie, car il s'attendait à ce que le socket « dns-client » soit dans le répertoire courant.
  • lib-oauth2 : Dovecot envoyait client_id et client_secret en tant que paramètres POST au serveur d'introspection. Cependant, en authentification Basic, leur utilisation est facultative.
  • lib-oauth2 : La validation de JWT « aud » n'était pas effectuée si « aud » était absent dans le jeton, mais était configurée dans Dovecot.
  • lib-oauth2 : Vérification de type de clé JWT trop stricte.
  • lib-oauth2 : L'audience du jeton JWT n'a pas été vérifiée par rapport à client_id, comme l'exige la spécification.
  • lib-ssl-iostream : L'utilisation du paramètre ssl_require_crl=yes pouvait entraîner des échecs de vérification CRL pour les connexions SSL/TLS sortantes, bien qu'il soit supposé qu'il n'affecte la vérification CRL que pour les clients. de certificats SSL. v2.3.17 régression.
  • lib-sql : Le pilote MySQL permettait une fuite de mémoire lors d'une connexion échouée.
  • lib-storage : Divers correctifs en cas de manque d'espace disque.
  • master : La configuration d'idle_kill du service ne fonctionnait pas correctement sur les serveurs chargés. Il était très peu probable qu'un processus reste inactif assez longtemps pour être tué. De plus, avec un grand nombre de processus (par exemple, imap), le code de gestion d'idle_kill utilisait beaucoup de CPU dans le processus principal. Désormais, chaque intervalle d'idle_kill suivra le nombre minimum de processus inactifs puis tuera ce nombre.
  • mdbox : La vérification des fichiers temporaires était effectuée pour des répertoires toujours vides.
  • mdbox : Lors de l'écriture de courriels, l'appel à fdatasync() était effectué dans le mauvais répertoire parent. De plus, un échec entraînait un plantage au lieu d'écrire une erreur dans le journal.
  • notify_status : Le plugin se termine de manière inattendue lors de l'initialisation échouée de l'utilisateur. — pop3 : L'envoi d'une commande avec le symbole ‘:’ entraînait un échec « assert-crash ». Régression dans la version 2.3.18.
  • stats : Panic résolu lors de l'accès à un exportateur d'événements inexistant lors de l'ajout dynamique d'une nouvelle métrique avec la commande « doveadm stats add ». Un message d'erreur correct est maintenant affiché.
  • stats: Si le processus a exporté de nombreux événements puis s'est terminé, certains des derniers événements ont pu être perdus.
  • stats: Des noms de balises Prometheus incorrects ont été créés dans certaines configurations de histogram group_by. Prometheus a rejeté ces balises.
  • welcome: Le plugin ne s'exécutait pas dans certaines situations où la BOÎTE DE RÉCEPTION était créée mais pas ouverte, par exemple, si GETMETADATA était utilisé avant l'ouverture de la BOÎTE DE RÉCEPTION.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster