- Une grave faille de sécurité a été découverte : StarDict envoie, dans un environnement X11, le texte sélectionné par l’utilisateur à des serveurs externes via HTTP non chiffré
- Le problème survient parce que les plugins YouDao et dict.cn sont activés par défaut dans la configuration Debian
- Cela signifie que dès qu’un utilisateur sélectionne du texte, celui-ci est automatiquement envoyé au serveur, avec un risque de fuite d’informations sensibles
- Le responsable du paquet a examiné des propositions de désactivation de la fonctionnalité et de séparation des plugins, mais l’application d’une solution de fond reste insuffisante
- Le problème avait déjà été signalé à plusieurs reprises par le passé, ce qui remet en lumière l’absence de réponse complète et l’importance de la vigilance en matière de sécurité
Fonctionnement de StarDict et aperçu du problème de sécurité
- StarDict est un logiciel de dictionnaire multiplateforme sous licence GPLv3, avec la prise en charge de nombreuses langues et un écosystème de plugins
- Dans la configuration par défaut de Debian, lorsque StarDict est lancé, le texte sélectionné par l’utilisateur est transmis à deux serveurs distants, youdao.com et dict.cn, via HTTP non chiffré
- Le problème a aussi été signalé sur la mailing list oss-security et dans le bug tracker de Debian
Détails du problème
- Dans la conception de StarDict, la présence de code communiquant avec des sites de dictionnaire peut sembler naturelle, mais la fonctionnalité de "scan" est activée par défaut
- Cela signifie que lorsque l’utilisateur sélectionne du texte avec la souris, une fenêtre de traduction s’ouvre automatiquement et le texte est envoyé automatiquement à des serveurs externes
- Le problème devient grave lorsque l’utilisateur laisse StarDict tourner en permanence en arrière-plan
Différences selon l’environnement Linux
- Dans un environnement Wayland, StarDict ne peut pas capturer le texte d’autres applications ; la fonction de scan ne fonctionne donc pas et le problème de sécurité ne se produit pas
- Ce problème n’existe actuellement que dans les anciens environnements X11
Réaction de Debian et des développeurs de StarDict
- Le responsable du paquet Debian, Xiao Sheng Wen, a indiqué que
"la fonction de scan et le plugin YouDao peuvent être désactivés", sans considérer cela comme un problème majeur - Cependant, le rapporteur Vincent Lefevre a souligné que "les fonctionnalités liées à la vie privée doivent impérativement être désactivées par défaut"
- Il est possible d’informer sur cette fonctionnalité via la description du paquet, mais la description de stardict-plugin ne mentionne pas l’usage de dictionnaires en ligne
- Des pistes d’amélioration, comme la séparation des plugins, ont été proposées, mais aucune mesure immédiate n’a été prise
Entre praticité et inquiétudes de sécurité
- La fonction de scan constitue l’un des principaux atouts de StarDict pour ceux qui veulent consulter rapidement un dictionnaire pendant la lecture d’une langue étrangère
- Mais l’utilisateur a peu de chances d’imaginer que cette communication n’est pas chiffrée. N’importe qui sur le trajet réseau peut alors être exposé à du texte sensible
Incidents similaires passés et réponses apportées
- Des cas similaires avaient déjà été signalés en 2009 et en 2015
- En 2009 : la désactivation des dictionnaires réseau avait brièvement été définie par défaut
- Mais le plugin YouDao, ajouté en 2016, ignorait ce réglage
- Le problème de 2015 n’a été résolu qu’en 2025, sous la forme d’une suppression du plugin
- Cela montre une réapparition du problème et une lenteur de réaction, sur fond de changements de mainteneurs et de mauvaise hiérarchisation des priorités
Taille de la base d’utilisateurs et impact sur la sécurité
- Selon les statistiques Debian, seuls 178 utilisateurs environ ont actuellement StarDict installé, mais en tenant compte des systèmes ne participant pas aux statistiques, de nombreux utilisateurs ont pu être exposés pendant des années à un risque de fuite de texte
- Des éléments comme des mots de passe copiés, des e-mails sensibles ou du texte sélectionné lors de l’édition de documents ont potentiellement pu être exposés tels quels à l’extérieur
Écosystème open source et enjeux de sécurité
- Une grande distribution comme Debian gère d’innombrables paquets, et les mises à jour manquées ainsi que le vieillissement des logiciels y sont fréquents
- Même la loi de Linus — « avec suffisamment d’yeux, tous les bugs sont superficiels » — ne fonctionne en pratique que si quelqu’un découvre le bug, le signale, puis qu’un mainteneur reconnaît le problème et le corrige
Le passage de X11 à Wayland
- L’adoption de Wayland vise justement à réduire ce type de faille de sécurité, en particulier la possibilité même de fuites d’informations entre applications
- Cela laisse toutefois en suspens des contraintes fonctionnelles et de nouvelles méthodes de gestion des autorisations
Conclusion et enseignements
- Le fait que des problèmes de sécurité découverts, diagnostiqués et signalés restent encore non résolus ou réapparaissent est préoccupant
- Pour préserver la réputation de Linux en matière de sécurité, une prise de conscience continue et une réaction rapide de la part des développeurs open source, des mainteneurs de paquets et des utilisateurs sont indispensables
1 commentaires
Commentaires Hacker News
Comme Xiao l’a souligné, les utilisateurs qui installent un logiciel peuvent lire la description du paquet, et la fonction de scan y est effectivement mentionnée. Mais quand les mainteneurs Debian répondent souvent aux rapports de bug par quelque chose du genre « il faut lire attentivement toutes les descriptions de paquets, y compris les centaines installés comme dépendances », franchement, si on avait commencé à lire toutes les descriptions et tous les README de Trixie il y a quelques jours à sa sortie, on n’aurait probablement toujours pas fini
Bien sûr, on peut penser qu’un logiciel de dictionnaire contient du code pour communiquer avec des sites web. Mais si j’installe un dictionnaire avec apt-get, je peux m’attendre à avoir l’intégralité du dictionnaire sur ma machine. Après tout, on utilise bien des dictionnaires papier depuis des siècles… Stardict est orienté en ligne, donc c’est peut-être normal, mais ça donne quand même une impression de piège
J’ai été assez choqué de découvrir que sur les téléphones Samsung, toutes les données du presse-papiers sont partagées entre tous les appareils liés à mon compte Samsung, y compris les mots de passe, et qu’un historique est même conservé. Je ne me souviens plus si c’était activé par défaut ou si j’ai accepté ça par inadvertance. J’imagine que ces données transitent par les serveurs Samsung. J’ai désactivé le partage, mais l’historique du presse-papiers, lui, ne se désactive pas, et même si je change de clavier, dès que je repasse au clavier Samsung, tous les anciens contenus du presse-papiers sont encore là. Mon prochain téléphone ne sera probablement pas un Samsung
Je trouve qu’il y a un peu de confusion dans ce qui est dit sur Wayland. Le dernier résumé est exact : « StarDict a peut-être demandé des permissions spéciales pour fonctionner sous Wayland, et l’utilisateur les a probablement acceptées par défaut, comme il le ferait aujourd’hui. » Donc oui, c’est très probable, et ces permissions ont peut-être même été définies automatiquement à l’installation. Des logiciels malveillants, il y en aura toujours. Wayland peut bloquer certains types d’attaques, mais il ne protège pas d’un paquet installé comme partie intégrante de la distribution
Interroger un dictionnaire local à partir du presse-papiers, aucun problème. Ajouter une fonction de requête vers un dictionnaire distant, aucun problème non plus. Rendre ces deux fonctions faciles à combiner, avec un drapeau spécial ou quelque chose du genre pour les séparer, ce serait acceptable. Mais les mélanger dans la configuration par défaut, c’est presque malveillant
À propos de « bien sûr qu’un programme de dictionnaire contient du code relié à des sites web », je dirais qu’en pratique cela dépend de l’objectif. La version minimale du dictionnaire finnois que je fournis (
tsk) pèse environ 30 Mo et contient environ 250 000 mots, avec le dictionnaire directement embarqué dans le binaire, et reconstruit les recherches par préfixe à chaque exécution. En revanche, une énorme base de données incluant la lemmatisation, l’étymologie, etc., peut monter à plusieurs dizaines de gigaoctets. Mon but était une exploration totalement instantanée, au niveau de la saisie clavier, donc cette structure était nécessaire. Cela m’a demandé beaucoup d’efforts, au point que j’ai décidé de faire payer les versions suivantes tsk Github site de la version payante (actuellement hors ligne à cause d’un problème de signature de code sous Windows). Pour la plupart des autres usages, interroger un serveur est bien plus pratique. Il y a rarement une bonne raison de télécharger un dictionnaire géant en entier, donc une architecture hybride (par exemple mettre en cache localement les 10 000 mots les plus fréquents et interroger le serveur pour les mots rares) est tout à fait raisonnableEn voyant ça, il y a tellement d’éléments qu’il est difficile de ne pas conclure à une intention malveillante. Le mainteneur a répondu : « l’utilisateur a activé lui-même la fonction de “scan”, et sélectionner du texte déclenche la traduction... pourquoi sélectionner des données confidentielles comme requête de traduction ? »
Je respecte énormément le travail investi dans Debian, mais j’ai toujours détesté ce « maximalisme » des gestionnaires de paquets. Par exemple, on veut installer foo, et il installe aussi tous les logiciels liés possibles, puis démarre immédiatement tout démon réseau s’il y en a un. Je sais bien qu’il existe un drapeau pour empêcher l’installation des « paquets recommandés », mais j’ai toujours trouvé que le choix par défaut desservait l’utilisateur
--install-recommendssoit le comportement par défaut ne me dérange pas. La nuance entre Recommends = « la plupart d’entre nous veulent ça » et Suggests = « fonctionnalité de niche » n’est pas mauvaise. En revanche, je trouve aussi problématique que des mainteneurs individuels abusent du champ Recommends. Par exemple, quand l’installation d’un outil de compression entraîne celle d’un système d’init spécifique, ça n’a aucun sens (je regarde file-roller et l’équipe GNOME)Je ne comprends pas pourquoi tout ça n’est pas hors ligne. Un dictionnaire chinois complet contient moins de 400 000 mots, et même en comptant 1 ko par mot, 400 Mo suffiraient. C’est parfaitement faisable en local, donc dépendre d’une connexion réseau relève simplement d’une mauvaise conception
Ce genre de problème me met extrêmement en colère. C’est absolument inacceptable