Cette semaine en sécurité : Chrome 0-day, Cassandra et Cisco PoC

Vous utilisez Chrome ou un navigateur basé sur Chromium ? Recherchez la version 98.0.4758.102 et mettez-la à jour si vous n’exécutez pas cette version ou une version supérieure. Petite astuce, utilisez chrome://restart pour déclencher un redémarrage immédiat de Chrome, tout comme celui qui vient après une mise à jour. C’est super utile surtout après avoir installé une mise à jour sur Linux, en utilisant apt, dnfou similaire.

CVE-2022-0609 est la grande vulnérabilité qui vient d’être corrigée, et Google a reconnu qu’elle était exploitée à l’état sauvage. C’est un bogue d’utilisation après libération, ce qui signifie que l’application marque une section de mémoire comme renvoyée au système d’exploitation, mais accède ensuite à cette adresse mémoire désormais invalide. L’intervalle de temps entre la libération et la réutilisation erronée de la mémoire permet à un code malveillant de revendiquer cette mémoire comme la sienne et d’écrire quelque chose d’inattendu.

Google a appris sa leçon sur le fait de rendre trop de détails publics trop tôt, et ce CVE et le bogue associé ne sont pas facilement trouvés dans la source du projet Chromium, et il ne semble pas y avoir d’exploit publié dans la suite de test de code Chromium.

Apache Cassandre

Cassandre LogoCassandra est une base de données distribuée populaire basée sur le paradigme NoSQL. Il est vulnérable à CVE-2021-44521, un RCE potentiellement méchant classant un CVSS de 8,4. La grâce salvatrice ici est qu’il s’agit d’une configuration non par défaut qui est vulnérable, nécessitant que trois indicateurs de configuration spécifiques soient modifiés par défaut pour être vulnérables. D’un autre côté, ces drapeaux sont tous liés aux fonctions définies par l’utilisateur (UDF) de Cassandra, une fonctionnalité qui tue pour le projet. Ces trois drapeaux sont : enable_user_defined_functions et enable_scripted_user_defined_functions défini sur vrai, et enable_user_defined_functions_threads défini sur faux.

Décomposons un peu cela et comprenons ce qui se passe ici. D’abord, enable_user_defined_functions est explicite, en ce sens qu’il active les UDF. Cela permet à un utilisateur de fournir une fonction Java qui s’exécute sur le serveur, en manipulant des données. Le deuxième indicateur active les fonctions scriptées, c’est-à-dire JavaScript dans ce contexte. Notez qu’il est connu qu’il n’est pas sûr d’autoriser ces fonctions JavaScript définies par l’utilisateur, mais cela est atténué en les exécutant dans un bac à sable, ce qui se produit automatiquement. Le dernier drapeau, enable_user_defined_functions_threads, est défini sur true par défaut et force ces UDF à s’exécuter sur des threads distincts. Plus important encore, ces threads s’exécutent avec un gestionnaire de sécurité défini sans autorisations spéciales.

Définir ce booléen sur false signifie que chaque fonction s’exécute dans le thread principal du programme. Ce qui n’est pas évident, c’est que cela signifie que les paramètres du gestionnaire de sécurité sont également hérités du programme principal. L’un de ces paramètres permet simplement de désactiver le gestionnaire de sécurité. À partir de là, la solution la plus simple consiste à appeler this.enginequi a des fonctions pour exécuter du code non-sandbox, y compris un Java .exec() appeler.

Rupture NAS

Une attaque très intelligente a mal tourné chez Pwn2Own, et nous avons la chance d’avoir un article à ce sujet. Il s’agit du Western Digital My Cloud Pro, et la vulnérabilité est une injection de commande résultant de l’inclusion d’une réponse HTTP dans une commande shell. L’appareil effectue un appel HTTP toutes les cinq minutes, vérifiant la connectivité Internet. La réponse est finalement enregistrée à l’aide du analyticlog binaire, et bien sûr inclut simplement une partie de la réponse dans l’appel système. Si vous n’êtes pas familier avec cette classe de vulnérabilité, sur les systèmes Unix, le backtick ` Le caractère peut être utilisé pour inclure une commande dans le cadre d’un argument. Il est extrêmement utile d’inclure la sortie de date dans un nom de fichier, par exemple, mais un cauchemar de sécurité dans des cas comme celui-ci.

La tournure de cette histoire est que l’attaque a échoué à Pwn2Own. Il s’agissait d’un simple exploit, juste une attaque Man-in-the-Middle contre le domaine HTTP, renvoyant une commande malveillante dans la réponse. Le problème était que l’attaque a fait cela en retournant une adresse IP contrôlée par l’attaquant, et ils ont oublié de changer cette adresse pour la disposition du réseau Pwn2Own. Le timing n’a tout simplement pas fonctionné pour permettre de corriger l’adresse IP et d’effectuer une vérification de la connectivité dans le temps imparti.

PoC approprié pour Cisco

La semaine dernière, nous avons parlé de la vulnérabilité de plusieurs passerelles VPN pour petites entreprises de Cisco, et maintenant un PoC a été publié. Il s’agit d’une simple paire de débordements de tampon sur les paquets HTTP entrants. Le premier se produit lors de la combinaison des en-têtes et du corps HTTP dans un tampon de 16k. Parce que les en-têtes et le corps peuvent atteindre un maximum de 16k, et qu’aucune autre vérification de taille n’est effectuée, cela peut parfaitement déborder le tampon de paquets, mais ne provoque pas de plantage ou d’exploit, car un deuxième tampon de 16k vient directement après. en mémoire. Ce qui se passe, c’est que ceci est ensuite copié dans un autre tampon 16k, mais celui-ci n’a pas de protection contre les débordements accidentels. C’est un naïf memcpy() de données à terminaison nulle, de sorte que toute la valeur du double tampon de données est copiée, brisant la pile et conduisant à une corruption exploitable.

Bits et octets

Sanity gagne dans l’incident de « piratage » du Missouri. Nous vous avons rapporté l’histoire du chercheur/journaliste qui a trouvé des numéros de sécurité sociale intégrés dans un site Web d’État. Après avoir divulgué la découverte de manière responsable, le gouverneur est sorti du scénario et a menacé le chercheur de poursuites judiciaires. Cette semaine, le procureur de la République chargé de l’affaire a publié une déclaration, dont une partie est intégrée ici.

Après examen du dossier, les questions au cœur de l’enquête ont été résolues par des moyens non juridiques. En tant que tel, il n’est pas dans le meilleur intérêt des citoyens du comté de Cole d’utiliser les ressources importantes et l’argent des contribuables qui seraient nécessaires pour poursuivre des poursuites pénales pour délit dans cette affaire.

(Note du rédacteur : c’est presque des excuses, non ?)

Google a augmenté les incitations pour certains bogues exploitables du jour 0 transmis à son programme de récompense de vulnérabilité, en particulier ceux impliquant le noyau Linux, Kubernetes et quelques autres projets. Le paiement maximum pour un exploit est désormais de 91 337 $, et les règles de ce qui est éligible à une récompense ont été assouplies. Si cela se trouve dans votre timonerie, il est maintenant temps d’aller à la chasse aux insectes.

Et enfin, le chercheur à l’origine de kazet.cc a publié une multitude de problèmes de plugins WordPress, découverts via son framework de fuzzing personnalisé. Il ne semble pas que le code ait été publié, mais c’est une description détaillée de la façon dont il a trouvé plus de 100 CVE de cette façon. C’est une grande source d’inspiration pour trouver de nouvelles façons de rechercher des bogues.