• 0 Votes
    1 Messages
    31 Vues

    L’environnement de bureau GNOME est affecté par une faille de sécurité importante présente dans une bibliothèque qu’il utilise. En exploitant cette vulnérabilité, un attaquant peut exécuter du code arbitraire sur la machine Linux. Faisons le point.

    GNOME est un environnement de bureau populaire pour les distributions Linux, et c’est une alternative à XFCE, KDE, etc… Il est utilisé (ou proposé) au sein de distributions Linux populaires comme Ubuntu, Debian ou encore Red Hat Enterprise Linux.

    La faille de sécurité qui impacte GNOME est présente dans la bibliothèque “libcue” intégrée à l’outil d’indexation de métadonnées de fichiers Tracker Miners. Ce dernier est intégré dans les dernières versions de GNOME. En fait, libcue sert à analyser les fichiers de type “cue sheets” qui contiennent les métadonnées d’un CD ou d’un DVD (nom de la piste, durée de la piste, artiste, etc.).

    La faille de sécurité CVE-2023-43641 est de type “1-click RCE” c’est-à-dire qu’elle permet une exécution de code en un seul clic puisqu’il suffit que l’utilisateur clique sur un lien malveillant pour que du code soit exécuté sur la machine Linux.

    Kevin Backhouse, qui a fait la découverte de cette vulnérabilité, a mis en ligne de nombreux détails techniques sur son GitHub.

    Il précise : “Parfois, une vulnérabilité dans une bibliothèque apparemment inoffensive peut avoir un impact important.” - Dans une démonstration, on voit qu’il clique sur un lien Web correspondant à un fichier “.cue” et le code est exécuté dès la fin du téléchargement du fichier, car le fichier est immédiatement indexé par Tracker Miners. D’autres formats sont pris en charge par cet indexeur : HTML, JPEG, PDF, etc…

    Il y a un réel risque vis-à-vis de cette vulnérabilité et Kevin Backhouse est clair : “Si vous utilisez GNOME, mettez à jour dès aujourd’hui !”. Actuellement son exploit PoC complet n’est pas accessible publiquement, mais il sera mis en ligne par la suite.

    La semaine dernière, une autre vulnérabilité baptisée Looney Tunables a été découverte dans Linux. Elle permet de devenir “root” sur une machine locale.

    – Source

    https://www.it-connect.fr/linux-avec-gnome-cette-faille-permet-une-execution-de-code-avec-un-simple-telechargement-de-fichier/

  • 1 Votes
    1 Messages
    32 Vues

    En raison du passage de GNOME Shell aux modules JavaScript standard (ESM)

    À l’heure actuelle, ce n’est probablement plus une nouvelle pour beaucoup : GNOME Shell est passé du système d’importation personnalisé de GJS aux modules JavaScript standard (ESM).

    IMPORTS ? ESM ?

    JavaScript est apparu dans les navigateurs web pour ajouter un peu d’interactivité à des pages par ailleurs statiques. Il n’était pas nécessaire de diviser de petits extraits de code en plusieurs fichiers, et le langage ne prévoyait donc pas de mécanisme pour cela.

    Le problème s’est posé lorsque les gens ont commencé à écrire des programmes plus importants en JavaScript, et des environnements tels que node.js et GJS ont ajouté leurs propres systèmes d’importation pour organiser le code en plusieurs fichiers. En conséquence, les développeurs et les outils ont eu du mal à passer d’un environnement à l’autre.

    Les choses ont changé en 2015 lorsque ECMAScript 6 a normalisé les modules, ce qui a donné lieu à une syntaxe bien définie et largement supportée par tous les principaux moteurs JavaScript. GJS supporte ESModules depuis 2021, mais le portage de GNOME Shell était une tâche bien plus importante qui devait être réalisée en une seule fois.

    ALORS ? POURQUOI DEVRAIS-JE M’EN SOUCIER ?

    Eh bien, il y a un tout petit inconvénient : Les modules et les importations héritées sont incompatibles en pratique.

    Les modules sont chargés différemment des scripts, et certaines instructions - à savoir import et export - ne sont valables que dans les modules. Cela signifie qu’essayer d’importer un module avec le système existant entraînera une erreur de syntaxe si le module utilise l’une de ces instructions (ce qui est aussi probable qu’un pape soit catholique).

    Les modules cachent également à l’extérieur tout ce qui n’est pas explicitement exporté. Ainsi, bien qu’il soit techniquement possible d’importer un script en tant que module, cela est aussi utile que d’importer un fichier vide.

    QU’EST-CE QUE CELA SIGNIFIE POUR LES EXTENSIONS ?

    Les extensions qui ciblent les anciennes versions de GNOME ne fonctionneront pas dans GNOME 45. De même, les extensions adaptées à GNOME 45 ne fonctionneront pas dans les anciennes versions.

    Vous pouvez toujours prendre en charge plus d’une version de GNOME, mais vous devrez télécharger différentes versions sur extensions.gnome.org pour la prise en charge avant et après 45.

    Il existe un guide de portage contenant des informations détaillées. Les deux changements les plus importants (qui seront suffisants pour de nombreuses extensions !) sont les suivants :

    1. Utiliser la syntaxe standard pour importer des modules depuis gnome-shell :

    123import * as Main from 'resource:///org/gnome/shell/ui/main.js';   Main.notify('Loaded!');

    2. Exporter une classe par défaut avec les méthodes enable() et disable() de votre extension.js.
    Vous pouvez étendre la nouvelle classe Extension qui remplace l’API de commodité de l’ancien module ExtensionUtils.

    1234567891011import {Extension, gettext as _} from 'resource:///org/gnome/shell/extensions/extension.js';   export default class MyTestExtension extends Extension { enable() { console.log(_('%s is now enabled').format(this.uuid)); }   disable() { console.log(_('%s is now disabled.').format(this.uuid)); } }

    Enfin, vous pouvez toujours trouver des personnes sympathiques sur Matrix et Discourse qui seront heureuses de vous aider à résoudre vos problèmes de portage.

    RÉSUMÉ

    Passer du système d’importation personnalisé de GJS au standard de l’industrie ECMAScript 6 entraînera la rupture de toutes les extensions. Cependant, ce changement signifie de suivre les standards appropriés et non pas les standards maison, ce qui permet une plus grande compatibilité avec l’écosystème JavaScript. Les importations héritées sont toujours prises en charge sur extensions.gnome.org mais vous devrez télécharger un support pré et post GNOME 45 afin de prendre en charge à la fois les distributions LTS et régulières.

    Pour les développeurs d’extensions GNOME :
    Il existe une communauté active d’extensions qui peut vous aider à porter vos extensions vers le nouveau système d’importation de Matrix et Discourse qui peut vous aider à porter rapidement vos extensions vers la nouvelle version.

    Vous pouvez tester vos extensions en téléchargeant la dernière version de GNOME OS et en essayant votre extension.

    Source : GNOME, developpez.com

    Et vous ?

    Quel est votre avis sur le sujet ?