Nous utilisons des cookies pour générer des statistiques anonymes de visite. Ils sont installés uniquement si vous acceptez. En savoir plus

Accepter Refuser

Alerte de sécurité : incident eMudhra / emSign, mettez à jour pip sur votre serveur Modoboa

Antoine Nguyen24 octobre 2026 — Antoine Nguyen

Que s'est-il passé ?

Les 20 et 21 octobre 2026, un incident de sécurité touchant des certificats intermédiaires d'eMudhra a entraîné le retrait du certificat racine emSign des magasins de certificats publics. Les clés privées des 8 autorités de certification d'eMudhra ont été mal générées et doivent être considérées comme compromises. Quiconque les détient peut émettre, pour n'importe quel domaine, des certificats qu'accepte un client faisant confiance à emSign.

Concrètement, une machine qui fait encore confiance à emSign est exposée à des attaques de type « man-in-the-middle » sur ses connexions TLS. Cela inclut les connexions vers pypi.org : un attaquant pourrait donc fournir des paquets modifiés lors d'un pip install.

L'écosystème Python a publié des versions corrigées, listées dans l'annonce publiée sur discuss.python.org :

Packages to update
Package Fixed in Advisory
certifi 2026.10.19 GHSA-6q48-6c7w-9gw2
pip 26.2.2 release notes
uv 0.13.4 GHSA-hq85-5cpj-mr62

Pourquoi mettre à jour le système ne suffit pas

pip embarque sa propre copie de certifi et la charge toujours en plus du magasin de certificats du système. Il n'existe aucun moyen officiel de désactiver ce comportement (pypa/pip#14374). Mettre à jour le paquet ca-certificates de votre distribution est nécessaire, mais le pip de chaque environnement virtuel continue de faire confiance à emSign tant qu'il n'a pas lui-même été mis à jour.

Mon serveur Modoboa est-il concerné ?

Très probablement, oui. Modoboa s'exécute dans des environnements virtuels Python, chacun avec son propre pip, et utilise certifi via requests. Modoboa s'en sert en fonctionnement pour ses connexions HTTPS sortantes, par exemple pour vérifier la disponibilité de nouvelles versions ou récupérer des calendriers externes.

Si vous avez utilisé modoboa-installer avec ses paramètres par défaut, voici les environnements à mettre à jour :

environments to update
Virtual environment Owner Used by
/srv/modoboa/env modoboa Modoboa web app, RQ workers, policy daemon, cron jobs
/srv/radicale/env radicale Radicale (calendars and contacts), if enabled

Si vous avez modifié home_dir ou venv_path dans installer.cfg, adaptez les chemins ci-dessous. Tout autre environnement virtuel présent sur la machine, ainsi que toute image Docker construite avant le 21 octobre 2026, doit être traité de la même façon.

Procédure de mise à jour

Exécutez ces étapes en tant que root sur le serveur Modoboa. Cela prend quelques minutes et n'entraîne qu'un bref redémarrage des services.

Étape 1 : mettre à jour le magasin de certificats du système

Sur Debian ou Ubuntu, lancez la commande ci-dessous. Sur les systèmes de type RHEL, utilisez plutôt dnf upgrade ca-certificates.

apt update && apt install --only-upgrade ca-certificates

Étape 2 : mettre à jour pip dans l'environnement virtuel de Modoboa

L'URL du wheel contient sa somme de contrôle SHA256 : pip vérifie donc le fichier téléchargé même si la connexion TLS n'est pas encore fiable. C'est la méthode recommandée dans l'annonce Python.

sudo -u modoboa /srv/modoboa/env/bin/python -m pip install \
  "pip @ https://files.pythonhosted.org/packages/3f/06/3e4420302363fbb71be3c7f35ce042f54bfca330e3e66b3a2e3c4cca579f/pip-26.2.2-py3-none-any.whl#sha256=fd7f4dfa8190e014013b9f08f3e973f4e4c26ffd179a204895533a7254813a70"

Étape 3 : mettre à jour certifi avec le nouveau pip

sudo -u modoboa /srv/modoboa/env/bin/python -m pip install --upgrade "certifi>=2026.10.19"

Étape 4 : recommencer pour Radicale

Si Radicale est installé, répétez les étapes 2 et 3 en remplaçant modoboa par radicale et /srv/modoboa/env par /srv/radicale/env.

Étape 5 : redémarrer les services

Redémarrez les services pour que les processus en cours chargent le nouveau magasin de certificats. Sur les systèmes de type RHEL, le service supervisor s'appelle supervisord.

systemctl restart uwsgi supervisor

Vérifier que tout est à jour

Chaque environnement virtuel doit indiquer pip 26.2.2 (ou plus récent) et certifi 2026.10.19 (ou plus récent) :

for venv in /srv/modoboa/env /srv/radicale/env; do
  [ -x "$venv/bin/python" ] || continue
  echo "== $venv"
  "$venv/bin/python" -m pip --version
  "$venv/bin/python" -c "import certifi; print('certifi', certifi.__version__)"
done

La situation évolue encore, et l'annonce sera mise à jour au fil des nouveaux correctifs, y compris dans CPython. Pour toute question, contactez-nous sur les canaux habituels de la communauté.

Sources

Tags: pip security update