Plusieurs vulnérabilités PHP corrigées par les équipes d'Ubuntu

Date de publication :

Les équipes de sécurité d'Ubuntu ont publié un bulletin de sécurité dans lequel sont corrigées 5 vulnérabilités concernant PHP. 
Ces vulnérabilités peuvent permettre à un attaquant de réaliser un déni de service sur le système ou bien d'accéder à des données en dehors de la mémoire allouée.

Les attaques sont peu complexes à mettre en œuvre, ne nécessitent pas de privilèges particuliers ou d'interaction avec un utilisateur. Les équipes de sécurité d'Ubuntu estiment que l'impact sur la confidentialité, l’intégrité et la disponibilité est élevé.

PHP: Hypertext Preprocessor, plus connu sous son sigle PHP (acronyme récursif), est un langage de programmation libre, principalement utilisé pour produire des pages Web dynamiques via un serveur HTTP, mais pouvant également fonctionner comme n'importe quel langage interprété de façon locale. PHP est un langage impératif orienté objet.
PHP a permis de créer un grand nombre de sites web célèbres, comme Facebook, Wikipédia, etc. Il est considéré comme une des bases de la création de sites web dits dynamiques mais également des applications web.

Les équipes d'Ubuntu ont découvert plusieurs accès mémoire hors limites dans les extensions xmlrpc, mbstring et phar et dans la fonction dns_get_record().

Les paquets vulnérables ont été corrigés dans les dépôts Ubuntu.

Détails techniques

Les vulnérabilités ont été référencées comme suit :

  • CVE-2019-9020 et CVE-2019-9024 [CVSS 9.8 V3 et CVSS V3 7.5] : Une vulnérabilité, liée à la mauvaise gestion du décodage des données XML par le module XML-RPC, a été découverte dans PHP avant 5.6.40, 7.x avant 7.1.26, 7.2.x avant 7.2.14, et 7.3.x avant 7.3.1. Une entrée invalide à la fonction xmlrpc_decode() peut conduire à un accès mémoire invalide.
  • CVE-2019-9021 [CVSS V3 9.8] : Une vulnérabilité, liée à la mauvaise gestion des noms de fichiers par le module PHAR, a été découverte dans PHP avant 5.6.40, 7.x avant 7.1.26, 7.2.x avant 7.2.14, et 7.3.x avant 7.3.1. Un dépassement de lecture sur le tas (heap-based buffer over-read) dans les fonctions de lecture PHAR de l'extension PHAR peut permettre à un attaquant de lire la mémoire allouée ou non allouée au-delà des données réelles lorsqu'il essaie d'analyser un nom de fichier.
  • CVE-2019-9022 [CVSS V3 7.5] : Une vulnérabilité, liée à la mauvaise gestion des expressions rationnelles dans mbstring, a été découverte dans PHP avant 5.6.40, 7.x avant 7.1.26, 7.2.x avant 7.2.14, et 7.3.x avant 7.3.1. Plusieurs dépassements de lecture sur le tas ont été détectés dans les fonctions de gestion d'expression rationnelle de mbstring lors du traitement de données invalides de plusieurs octets.
  • CVE-2019-9023 [CVSS V3 9.8] :  Une vulnérabilité, liée à une analyse incorrecte de certaines réponses DNS, a été découverte dans PHP 7.x avant 7.1.26, 7.2.x avant 7.2.14, et 7.3.x avant 7.3.2. dns_get_record() analyse mal une réponse DNS, ce qui peut permettre à un serveur DNS hostile d'amener PHP à mal utiliser memcpy, entraînant des opérations de lecture dépassant la mémoire tampon allouée pour les données DNS.

Afin de se protéger contre ces vulnérabilités, il est recommandé de faire une mise à jour standard du système Ubuntu (ou au moins des paquets impactés) qui apportera toutes les modifications nécessaires sur les paquets PHP.

Informations

La faille est activement exploitée :

Un correctif existe :

Une mesure de contournement existe :

Risques

Impact

  • Déni de service

Criticité

Importante

Existence d’un code d’exploitation de la vulnérabilité

Des preuves de faisabilité (Proof-of-Concept) ont été publiées pour chacune des vulnérabilités listées.

Composants & versions vulnérables

  • Ubuntu 16.04 LTS et dérivés.
  • Ubuntu 14.04 LTS et dérivés.

CVE

  • CVE-2019-9020
  • CVE-2019-9021
  • CVE-2019-9022
  • CVE-2019-9023
  • CVE-2019-9024

Solutions ou recommandations

Mise en place de correctif de sécurité

Une mise à jour standard du système Ubuntu apportera toutes les modifications nécessaires sur les paquets PHP pour corriger les vulnérabilités listées.

Solution de contournement

Aucune solution de contournement n’est proposée.