Une · Langages · Python
Python 3.15 est sorti : UTF-8 par défaut, imports paresseux et un compilateur JIT renforcé
La version 3.15 du langage Python a été publiée le 9 octobre. Elle change un comportement ancien : les fichiers texte sont désormais lus et écrits en UTF-8 par défaut, quel que soit le réglage du système. Elle ajoute aussi un mot-clé pour retarder le chargement des modules, deux nouveaux types de base et un compilateur à la volée (JIT) nettement amélioré.
Jusqu’ici, un appel comme open('fichier.txt') sans paramètre d’encodage utilisait l’encodage de la « locale » du système, souvent différent de l’UTF-8 sous Windows. Le même programme pouvait donc lire correctement un fichier sur une machine et produire des caractères illisibles sur une autre. Avec Python 3.15 (PEP 686), c’est UTF-8 partout quand aucun encodage n’est indiqué. La documentation officielle recommande malgré tout de toujours donner l’encodage explicitement, pour rester compatible avec les versions plus anciennes ; l’ancien comportement reste disponible avec encoding='locale', ou globalement avec la variable d’environnement PYTHONUTF8=0 ou l’option -X utf8=0.
Autres nouveautés majeures : le type intégré frozendict, un dictionnaire qu’on ne peut plus modifier après sa création et qui peut servir de clé de dictionnaire si ses clés et ses valeurs sont elles-mêmes « hachables » ; un type sentinel pour les valeurs marqueurs ; un paquet profiling avec Tachyon, un profileur par échantillonnage à haute fréquence. Le compilateur JIT, toujours expérimental, gagne 7 à 8 % en moyenne géométrique sur la suite de mesures pyperformance face à l’interpréteur standard sous Linux x86-64, et 11 à 12 % sur macOS ARM ; selon les tests, l’écart va d’un ralentissement d’environ 15 % à une accélération de plus de 100 %. Les pointeurs de cadre sont activés par défaut, ce qui facilite l’observation des programmes par les outils système. Les imports paresseux font l’objet de notre Atelier ci-dessous.
Sources : Python.org, « What’s new in Python 3.15 » · LWN.net, 09.10.2026
Sécurité · Accès distant · SonicWall
SonicWall SMA1000 : la faille de gravité maximale corrigée mardi déjà visée par des attaques
Trois jours après sa correction (nous en parlions le 8.10), la faille CVE-2026-102255 des passerelles d’accès distant SonicWall SMA1000 fait l’objet de tentatives d’exploitation. Le chercheur Ryan Dewhurst, fondateur de Previdian, a indiqué à BleepingComputer que les leurres de son entreprise (des machines installées exprès pour attirer les attaquants) ont reçu des requêtes visant l’interface WorkPlace. Elles cherchaient à atteindre la base de données interne CouchDB de l’appareil, normalement inaccessible de l’extérieur, en fournissant les identifiants admin:admin.
Previdian ne sait pas encore si ces tentatives ont réussi à compromettre des systèmes, et SonicWall n’a pas, à ce stade, signalé d’exploitation. La faille touche les modèles 6210, 7210 et 8200v, pas la gamme SMA 100 ni le VPN des pare-feu SonicWall. L’organisation Shadowserver compte plus de 400 SMA1000 exposés sur Internet. Ces passerelles, utilisées par de grandes entreprises, des prestataires informatiques et des administrations, ont déjà subi deux vagues d’attaques par des failles inconnues en juillet et en septembre : il faut installer le correctif sans attendre.
Source : BleepingComputer, 09.10.2026
Cybercriminalité · Rançongiciels · Allemagne
Rançongiciel Qilin : un membre présumé du noyau dur livré par le Japon à l’Allemagne
Un Russe de 28 ans soupçonné d’appartenir au groupe central du rançongiciel Qilin a été arrêté en mai au Japon, où il était venu en touriste, puis extradé vers l’Allemagne au début du mois. L’Office de police criminelle de Rhénanie-du-Nord-Westphalie (LKA NRW) enquêtait discrètement sur Qilin depuis mi-2024. Le ministre de l’Intérieur du Land, Herbert Reul, a parlé mercredi d’un « succès historique » : c’est selon lui la première fois que des autorités allemandes font arrêter un pirate russe hors de Russie. Trois autres responsables présumés, établis en Russie, sont identifiés et recherchés.
Selon le quotidien japonais Asahi, cité par la presse allemande, l’homme est soupçonné d’avoir attaqué en septembre 2024 une entreprise de logistique allemande et exigé 165 000 dollars en bitcoins. La police japonaise a confirmé l’extradition jeudi. L’opération est rare : le Japon n’a de traité d’extradition qu’avec les États-Unis et la Corée du Sud. Qilin, apparu en 2022, vole les données avant de les chiffrer et menace de les publier ; ses victimes comptent le brasseur japonais Asahi et le constructeur Nissan.
Sources : FAZ, 07.10.2026 · tagesschau.de (WDR), 07.10.2026 · heise online, 06.10.2026 · Jiji Press / Nippon.com, 08.10.2026 · BleepingComputer, 09.10.2026
Technique · Atelier
Ne charger un module que s’il sert : comment fonctionnent les imports paresseux de Python 3.15
Un gros programme Python peut mettre plusieurs secondes à démarrer, simplement parce qu’il importe au lancement des dizaines de modules dont il n’utilisera qu’une partie. Python 3.15 ajoute le mot-clé lazy (PEP 810) pour régler ce problème proprement. Atelier pédagogique.
1. Pourquoi un import coûte cher. Quand Python rencontre import module, il doit trouver le fichier sur le disque, le lire, le compiler en bytecode s’il n’est pas déjà en cache, puis exécuter tout le code placé au premier niveau du module, qui importe souvent lui-même d’autres modules. Pour un outil en ligne de commande, chaque --help ou chaque petite sous-commande paie ainsi le prix de tout l’arbre de dépendances. Jusqu’ici, on contournait le problème en déplaçant les imports à l’intérieur des fonctions. Ça marche, mais les dépendances sont alors éparpillées dans le code et plus difficiles à suivre.
2. Ce que fait lazy. On écrit lazy import json ou lazy from pathlib import Path en tête de fichier, comme d’habitude. Python ne charge rien à ce moment-là : il place sous ce nom un objet intermédiaire léger. Le vrai chargement se fait de façon transparente à la première utilisation du nom, par exemple au premier json.loads(...). On garde la lisibilité des imports regroupés en haut du fichier, et on ne paie que pour les modules réellement utilisés pendant l’exécution.
3. Ce qui change pour les erreurs. Un import classique échoue tout de suite si le module manque. Avec un import paresseux, l’erreur n’apparaît qu’à la première utilisation, peut-être bien plus tard, dans une branche rarement exécutée. Python l’a prévu : la trace d’erreur montre à la fois l’endroit où le nom a été utilisé et la ligne de l’import d’origine. Conséquence pratique : les tests doivent passer par les chemins qui utilisent chaque dépendance paresseuse, sinon un module manquant peut ne se révéler qu’en production. Autre point : un module dont le chargement a des effets de bord (enregistrer un plugin, modifier une configuration globale) ne les produira qu’au premier usage. Ce code-là doit rester en import normal.
4. Les limites et les réglages. lazy n’est permis qu’au niveau du module : dans une fonction, une classe ou un bloc try/except, c’est une erreur de syntaxe, de même que lazy from module import *. Pour tester sans modifier le code, l’option -X lazy_imports=all ou la variable PYTHON_LAZY_IMPORTS rend tous les imports paresseux ; sys.set_lazy_imports_filter() permet de choisir, par exemple, de ne rendre paresseux que les modules de sa propre application et de garder les bibliothèques tierces en chargement immédiat. Pour du code qui doit aussi tourner sur des versions plus anciennes, un module peut déclarer __lazy_modules__ = ["json", "pathlib"] : ses imports normaux de ces modules deviennent paresseux sous 3.15 et restent ordinaires ailleurs. Bonne méthode : mesurer d’abord le temps de démarrage (l’option -X importtime détaille le coût de chaque import), puis rendre paresseux les modules lourds et rarement utilisés, plutôt que tout d’un coup.
Sources : Python.org, « What’s new in Python 3.15 », PEP 810 · LWN.net, 09.10.2026 — atelier pédagogique
Brèves
Let’s Encrypt passera aux certificats de 64 jours en février 2027
L’autorité de certification gratuite Let’s Encrypt émettra à partir du 10 février 2027 des certificats valables 64 jours au lieu de 90 ; le dernier certificat de 90 jours devrait expirer le 11 mai 2027. Aucun certificat valide ne sera révoqué. C’est la deuxième étape d’un plan annoncé en 2025, qui mènera à des certificats de 45 jours en 2028, comme l’exigent les règles du CA/Browser Forum, l’instance qui fixe les règles pour les autorités de certification et les navigateurs. Les sites qui renouvellent leurs certificats à la main ou à date fixe ont intérêt à passer au renouvellement automatique.
Sources : Let’s Encrypt, 07.10.2026 · LWN.net, 09.10.2026
7-Zip 26.04 corrige plusieurs failles de sécurité
Igor Pavlov a publié la version 26.04 de l’outil de compression 7-Zip. L’annonce mentionne seulement des corrections de failles et de bugs, sans dire combien ni leur gravité. 7-Zip n’a pas de mise à jour automatique : il faut installer la nouvelle version soi-même (sous Windows, par exemple, avec winget upgrade 7zip.7zip). En juin, la version 26.02 corrigeait une faille permettant d’exécuter du code avec des archives xz piégées.
Source : heise online, 10.10.2026
Les ventes mondiales de PC chutent de plus de 20 % au troisième trimestre
Selon Omdia, les livraisons mondiales d’ordinateurs de bureau, portables et stations de travail ont reculé de 21,2 % sur un an, à 58,1 millions d’unités au troisième trimestre 2026 ; IDC estime la baisse à 20,1 %, à 62,7 millions. En cause : la pénurie de mémoire due à la demande de l’intelligence artificielle, qui fait monter les prix, et les achats anticipés du premier semestre. Selon Omdia, la mémoire vive et les SSD représentent désormais près de 40 % du coût des composants d’un PC, contre environ 15 % auparavant.
Source : The Register, 09.10.2026