Skip to main content
BlogSécuritéDigest de sécurité Linode du 13 au 19 mars 2023

Digest de sécurité Linode du 13 au 19 mars 2023

Digest de sécurité Linode

Dans le dossier de cette semaine, nous aborderons les sujets suivants :

  • manque d'état, de nonce et de vérifications PKCE pour l'authentification OAuth ;
  • Apache Serveur HTTP : mod_proxy_uwsgi Fractionnement de la réponse HTTP ; 
  • ShadowsocksX-NG signe avec les droits de com.apple.security.get-task-allow à cause de CODE_SIGNING_INJECT_BASE_ENTITLEMENTS ; et
  • un problème de contrôle d'accès dans runc qui permet à un attaquant d'élever ses privilèges dans un conteneur.
CVE-2023-27490 : Vérifications d'état, de nonce et de PKCE manquantes pour l'authentification OAuth

Contexte

OAuth (Open Authorization) est un protocole standard ouvert qui permet à des applications tierces d'accéder à des ressources au nom d'un utilisateur sans avoir besoin de connaître les informations d'identification de ce dernier, telles que son nom d'utilisateur et son mot de passe. OAuth permet à l'utilisateur d'accorder l'accès à ses ressources en s'authentifiant auprès du propriétaire de la ressource (par exemple, une plateforme de médias sociaux) et en obtenant un jeton d'accès, qui est ensuite utilisé pour accéder aux ressources au nom de l'utilisateur. Ce jeton d'accès est délivré par le propriétaire de la ressource et peut être utilisé par l'application tierce pour accéder aux ressources de l'utilisateur sans qu'il soit nécessaire de connaître les identifiants de connexion de l'utilisateur.

Vulnérabilité

La vulnérabilité CVE-2023-27490, existe dans le paquet Next-auth, qui est lié au flux d'authentification OAuth . Plus précisément, elle se produit au cours d'une session OAuth lorsque l'URL d'autorisation est interceptée et manipulée par un attaquant. Cette vulnérabilité peut permettre à l'attaquant de se connecter en tant que victime et de contourner la protection CSRF qui est normalement en place. Dans le flux OAuth , l'URL d'autorisation est utilisée pour lancer le processus d'authentification et demander l'accès aux ressources de l'utilisateur. L'URL contient des paramètres importants, tels que l'état, le pkce et le nonce, qui sont utilisés pour prévenir les attaques telles que CSRF, les attaques par rejeu et le vol de jetons. Cependant, si l'URL d'autorisation est interceptée et manipulée par un attaquant, ces protections peuvent être contournées, ce qui conduit à la vulnérabilité décrite dans le paquet Next-auth.

La cause première de la vulnérabilité est une défaillance partielle qui se produit au cours d'une session OAuth compromise. Plus précisément, un code de session est généré par erreur, ce qui permet à l'attaquant de contourner la protection CSRF et de se connecter en tant que victime.

Atténuation

  • La vulnérabilité a été corrigée dans la version next-auth v4.20.1. La mise à jour vers la dernière version est la solution recommandée pour résoudre ce problème.
  • Cependant, en utilisant l'initialisation avancée, les développeurs peuvent vérifier manuellement l'état, le pkce et le nonce de la demande de rappel par rapport à la configuration du fournisseur, et interrompre le processus de connexion en cas de non-concordance.
CVE-2023-27522 : Apache Serveur HTTP : fractionnement de la réponse HTTP de mod_proxy_uwsgi

Contexte

La contrebande de requêtes HTTP est une vulnérabilité d'application web qui se produit lorsqu'un attaquant peut manipuler la façon dont une application ou un serveur web traite les requêtes HTTP envoyées par un client. Cette vulnérabilité peut permettre à un attaquant de contourner les contrôles de sécurité, d'effectuer des actions non autorisées ou de voler des données sensibles.

L'attaque consiste généralement à exploiter des incohérences dans la manière dont un serveur web frontal et un serveur ou une application dorsale traitent les requêtes HTTP, telles que l'interprétation des en-têtes Content-Length ou la gestion de l'encodage par morceaux. En manipulant ces incohérences, un attaquant peut créer une requête qui est interprétée différemment par les deux serveurs, ce qui entraîne soit un traitement incorrect de la requête, soit l'exécution de requêtes malveillantes au nom de l'attaquant par le serveur frontal agissant en tant que mandataire de l'attaquant.

Vulnérabilité

La vulnérabilité CVE-2023-27522 affecte Apache HTTP Server versions 2.4.30 à 2.4.55, en particulier via le module mod_proxy_uwsgi. La vulnérabilité survient lorsque le serveur d'origine envoie un en-tête de réponse HTTP spécialement conçu qui contient certains caractères spéciaux, tels que des espaces ou des tabulations, suivis d'un en-tête "Content-Length".

Le module mod_proxy_uwsgi de Apache HTTP Server peut mal interpréter cet en-tête et transmettre la réponse au client avec un en-tête "Content-Length" tronqué ou divisé. Le client peut alors recevoir des réponses incomplètes ou incorrectes, ce qui peut permettre à un pirate de mener différents types d'attaques, telles que la fuite de données, la falsification de requêtes côté serveur (SSRF), le cross-site scripting (XSS) et l'exécution de code à distance (RCE).

Atténuation

  • Il est recommandé de passer à la dernière version de Apache HTTP Server ou d'appliquer les correctifs disponibles. 
  • En outre, les pare-feu d'application web et les systèmes de détection d'intrusion peuvent être utilisés pour détecter et prévenir les attaques de contrebande de réponses HTTP. 
  • Il est également important de veiller à ce que des techniques appropriées de validation des entrées et de codage des sorties soient utilisées pour empêcher l'injection de caractères spéciaux dans les réponses HTTP.
CVE-2023-27574 : ShadowsocksX-NG signe avec com.apple.security.get-task-allow 

Contexte

ShadowsocksX-NG est une application gratuite et open source qui aide les utilisateurs à contourner la censure sur Internet en créant un proxy socks5 sécurisé à travers lequel ils peuvent accéder à Internet.

Lorsqu'une application est développée et prête à être distribuée, elle doit être signée à l'aide d'un certificat valide afin de garantir qu'elle est légitime et qu'elle n'a pas été modifiée. Ce processus s'appelle la signature du code.

L'une des exigences de la signature du code est d'inclure les droits, qui sont des autorisations dont une application a besoin pour fonctionner correctement. Les droits précisent les ressources et les actions auxquelles l'application est autorisée à accéder, comme le réseau, le système de fichiers ou le matériel.

Vulnérabilité

La vulnérabilité CVE-2023-27574 existe dans l'application ShadowsocksX-NG version 1.10.0 qui est signée avec un droit appelé com.apple.security.get-task-allow. Ce droit permet à l'application d'être déboguée et inspectée par des outils de développement, tels que Xcode, même lorsqu'elle s'exécute sur l'appareil de l'utilisateur.

La raison de l'inclusion de ce droit est due à une fonctionnalité appelée CODE_SIGNING_INJECT_BASE_ENTITLEMENTS. Cette fonctionnalité fait partie du processus de signature du code et permet aux développeurs d'inclure des droits supplémentaires au-delà de ceux explicitement spécifiés dans le fichier des droits de l'application. En d'autres termes, lorsque la fonctionnalité CODE_SIGNING_INJECT_BASE_ENTITLEMENTS est activée, Xcode injecte automatiquement un ensemble de droits par défaut dans la signature de l'application. Ces droits sont basés sur le compte du développeur et les paramètres du projet. Ils incluent par défaut le droit com.apple.security.get-task-allow.

Le problème de cette approche est que le droit com.apple.security.get-task-allow peut être utilisé abusivement par des attaquants pour obtenir des informations sensibles de la mémoire de l'application, telles que des clés de cryptage ou d'autres données sensibles. Cela peut se faire en exploitant une vulnérabilité de l'application ou en utilisant un outil tiers pour lire la mémoire de l'application.

Atténuation

  • Il est conseillé aux utilisateurs de ShadowsocksX-NG version 1.10.0 de passer à une version plus récente qui n'inclut pas les droits de com.apple.security.get-task-allow ou de supprimer manuellement les droits de la signature du code de l'application.
  • En outre, les utilisateurs doivent être prudents lorsqu'ils utilisent des logiciels VPN/proxy et s'assurer qu'ils utilisent une version fiable et sécurisée du logiciel.
CVE-2019-5736 : problème de contrôle d'accès dans runc

Contexte

runc est un utilitaire en ligne de commande permettant de créer et d'exécuter des conteneurs conformément aux spécifications de l'Open Container Initiative (OCI). Il est couramment utilisé dans les environnements d'exécution de conteneurs tels que Docker, Kubernetes et autres.

Vulnérabilité

Cette vulnérabilité CVE-2019-5736 est un problème de contrôle d'accès qui permet à un attaquant d'élever ses privilèges dans un conteneur. Plus précisément, le problème est lié à la façon dont la version runc jusqu'à 1.1.4 gère le système de fichiers racine(rootfs) lors du lancement d'un conteneur.

Dans libcontainer/rootfs_linux.gorunc configure le rootfs d'un conteneur en le montant en lecture seule et en y superposant une couche inscriptible. Ce processus est utilisé pour créer le système de fichiers du conteneur et l'isoler du système hôte.

Cependant, une faille dans ce code permet à un pirate d'écraser le fichier /proc/self/exe du système hôte, qui est un lien symbolique vers le binaire runc lui-même. Ce faisant, l'attaquant peut exécuter du code arbitraire avec des privilèges élevés, échappant ainsi au conteneur et prenant le contrôle du système hôte.

Atténuation

  • Mettre à jour vers une version corrigée : La mise à jour vers une version corrigée de runc est la solution la plus efficace pour pallier cette vulnérabilité. Les versions 1.0.0-rc6 et ultérieures de runc incluent un correctif pour cette vulnérabilité.
  • Mettez à jour les environnements d'exécution de conteneurs : Si vous utilisez un environnement d'exécution de conteneurs tel que Docker ou Kubernetes, assurez-vous de mettre à jour vers une version qui inclut la version corrigée de runc.
  • Mettre en place des contrôles d'accès : Pour réduire le risque de cette vulnérabilité, des contrôles d'accès doivent être mis en place pour limiter la capacité des attaquants à créer des conteneurs avec des configurations de montage de volume personnalisées et à exécuter des images personnalisées. 
  • Réduire les privilèges des conteneurs : La réduction des privilèges des conteneurs peut contribuer à limiter la portée d'une attaque potentielle. Pour ce faire, on peut exécuter les conteneurs en tant qu'utilisateurs non root, restreindre les capacités des conteneurs et limiter l'accès aux ressources sensibles de l'hôte.

Commentaires

Laissez un commentaire

Votre adresse électronique ne sera pas publiée. Les champs obligatoires sont marqués d'un *.