CERTFR-2019-ALE-014
Vulnerability from certfr_alerte

Le CERT-FR a publié un avis concernant la CVE-2019-11043 qui affecte PHP et permet l'exécution de code arbitraire à distance.

Un code d'exploitation est maintenant disponible sur internet, facilitant l'utilisation de cette vulnérabilité.

Ce code d'exploitation nécessite une configuration communément recommandée de nginx et php-fpm utilisant fastcgi_split_path_info. Voici un exemple de configuration vulnérable:

location ~ [^/]\.php(/|$) {
 ...
 fastcgi_split_path_info ^(.+?\.php)(/.*)$;
 fastcgi_param PATH_INFO $fastcgi_path_info;
 fastcgi_pass php:9000;
 ...
}

Il est possible que d'autres chemins d'exploitation non connus à ce jour permettent d'abuser de la vulnérabilité.

Le CERT-FR recommande fortement la mise à jour de php vers une version non vulnérable, et ce dans les plus brefs délais si votre configuration nginx utilise fastcgi_split_path_info.

Les versions de PHP antérieures à 7.1 peuvent être également affectées, et ne bénéficieront pas de mise à jour. Il est primordial d'utiliser une version supportée par l'éditeur.

Solution

Le CERT-FR recommande de mettre à jour PHP vers une version non vulnérable sans attendre.

Contournement provisoire

Il est possible de se prémunir contre ce code d'exploitation en vérifiant l'existence du fichier PHP. Ainsi, les requêtes malformées sont filtrées au niveau de nginx, de cette manière l'attaquant n'est pas capable d'exploiter la vulnérabilité dans php-fpm.

Afin de mettre en place ce contournement provisoire, il faut insérer try_files $uri =404; avant de passer la requête à php-fpm (avant la ligne fastcgi_pass dans l'exemple plus haut).

None
Impacted products
Vendor Product Description
PHP PHP PHP versions 7.3.x antérieures à 7.3.11
PHP PHP PHP versions 7.1.x antérieures à 7.1.33
PHP PHP PHP versions 7.2.x antérieures à 7.2.24

Show details on source website


{
  "$ref": "https://www.cert.ssi.gouv.fr/openapi.json",
  "affected_systems": [
    {
      "description": "PHP versions 7.3.x ant\u00e9rieures \u00e0 7.3.11",
      "product": {
        "name": "PHP",
        "vendor": {
          "name": "PHP",
          "scada": false
        }
      }
    },
    {
      "description": "PHP versions 7.1.x ant\u00e9rieures \u00e0 7.1.33",
      "product": {
        "name": "PHP",
        "vendor": {
          "name": "PHP",
          "scada": false
        }
      }
    },
    {
      "description": "PHP versions 7.2.x ant\u00e9rieures \u00e0 7.2.24",
      "product": {
        "name": "PHP",
        "vendor": {
          "name": "PHP",
          "scada": false
        }
      }
    }
  ],
  "affected_systems_content": null,
  "closed_at": "2020-01-08",
  "content": "## Solution\n\nLe CERT-FR recommande de mettre \u00e0 jour PHP vers une version non\nvuln\u00e9rable sans attendre.\n\n## Contournement provisoire\n\nIl est possible de se pr\u00e9munir contre ce code d\u0027exploitation en\nv\u00e9rifiant l\u0027existence du fichier PHP. Ainsi, les requ\u00eates malform\u00e9es\nsont filtr\u00e9es au niveau de nginx, de cette mani\u00e8re l\u0027attaquant n\u0027est pas\ncapable d\u0027exploiter la vuln\u00e9rabilit\u00e9 dans php-fpm.\n\nAfin de mettre en place ce contournement provisoire, il faut ins\u00e9rer\n`try_files $uri =404;` avant de passer la requ\u00eate \u00e0 php-fpm (avant la\nligne `fastcgi_pass` dans l\u0027exemple plus haut).\n",
  "cves": [
    {
      "name": "CVE-2019-11043",
      "url": "https://www.cve.org/CVERecord?id=CVE-2019-11043"
    }
  ],
  "initial_release_date": "2019-10-29T00:00:00",
  "last_revision_date": "2020-01-08T00:00:00",
  "links": [
    {
      "title": "Article de la soci\u00e9t\u00e9 Tenable du 24 octobre 2019",
      "url": "https://www.tenable.com/blog/cve-2019-11043-vulnerability-in-php-fpm-could-lead-to-remote-code-execution-on-nginx"
    }
  ],
  "reference": "CERTFR-2019-ALE-014",
  "revisions": [
    {
      "description": "Version initiale",
      "revision_date": "2019-10-29T00:00:00.000000"
    },
    {
      "description": "Ajout du contournement",
      "revision_date": "2019-10-30T00:00:00.000000"
    },
    {
      "description": "Cl\u00f4ture de l\u0027alerte.",
      "revision_date": "2020-01-08T00:00:00.000000"
    }
  ],
  "risks": [
    {
      "description": "Ex\u00e9cution de code arbitraire \u00e0 distance"
    }
  ],
  "summary": "Le CERT-FR a publi\u00e9 un avis concernant la CVE-2019-11043 qui affecte PHP\net permet l\u0027ex\u00e9cution de code arbitraire \u00e0 distance.\n\nUn code d\u0027exploitation est maintenant disponible sur internet,\nfacilitant l\u0027utilisation de cette vuln\u00e9rabilit\u00e9.\n\nCe code d\u0027exploitation n\u00e9cessite une configuration commun\u00e9ment\nrecommand\u00e9e de nginx et php-fpm utilisant `fastcgi_split_path_info`.\nVoici un exemple de configuration vuln\u00e9rable:\n\n    location ~ [^/]\\.php(/|$) {\n     ...\n     fastcgi_split_path_info ^(.+?\\.php)(/.*)$;\n     fastcgi_param PATH_INFO $fastcgi_path_info;\n     fastcgi_pass php:9000;\n     ...\n    }\n\nIl est possible que d\u0027autres chemins d\u0027exploitation non connus \u00e0 ce jour\npermettent d\u0027abuser de la vuln\u00e9rabilit\u00e9.\n\nLe CERT-FR recommande fortement la mise \u00e0 jour de php vers une version\nnon vuln\u00e9rable, et ce dans les plus brefs d\u00e9lais si votre configuration\nnginx utilise `fastcgi_split_path_info`.\n\nLes versions de PHP ant\u00e9rieures \u00e0 7.1 peuvent \u00eatre \u00e9galement affect\u00e9es,\net ne b\u00e9n\u00e9ficieront pas de mise \u00e0 jour. Il est primordial d\u0027utiliser une\nversion support\u00e9e par l\u0027\u00e9diteur.\n",
  "title": "Vuln\u00e9rabilit\u00e9 dans PHP",
  "vendor_advisories": [
    {
      "published_at": null,
      "title": "Bulletin de s\u00e9curit\u00e9 PHP 7.3.11 du 24 octobre 2019",
      "url": "https://www.php.net/ChangeLog-7.php#7.3.11"
    },
    {
      "published_at": null,
      "title": "Bulletin de s\u00e9curit\u00e9 PHP 7.1.33 du 24 octobre 2019",
      "url": "https://www.php.net/ChangeLog-7.php#7.1.33"
    },
    {
      "published_at": null,
      "title": "Bulletin de s\u00e9curit\u00e9 PHP 7.2.24 du 24 octobre 2019",
      "url": "https://www.php.net/ChangeLog-7.php#7.2.24"
    },
    {
      "published_at": null,
      "title": "Avis du CertFR du 24 octobre 2019",
      "url": "https://www.cert.ssi.gouv.fr/avis/CERTFR-2019-AVI-534/"
    }
  ]
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…