HTTPoxy - est-ce que mon application Go est affectée ?

Solution Verified - Updated -

Environment

Red Hat Enterprise Linux 7.x

Issue

Ce problème a lieu quand on utilise Go en mode CGI. Dans le cas où un script Go CGI utilise la variable d'environnement "HTTP_PROXY" pour configurer un serveur proxy HTTP sortant pour les requêtes HTTP suivantes, ou si votre script utilise un module ou une bibliothèque en répliquant ce comportement, comme le module "http" de Go, it est possible que tout le traffic HTTP subséquent venant du script Go CGI soit redirigé par un serveur proxy extérieur contrôlé par l'attaquant.

Veuillez noter que c'est un problème uniquement quand le script Go CGI affecté est déployé sur un serveur HTTP activé-CGI qui fournit le contenu de l'en-tête  «Proxy » d'une requête HTTP entrante via la variable d'environnement « HTTP_PROXY ».

Resolution

Red Hat a publié des mises à jour et des mesures d’atténuation du risque pour les serveurs HTTP, qui les empêche de fournir le contenu de l'en-tête « Proxy » HTTP comme variable d’environnement « HTTP_PROXY ». La mise à jour de votre serveur HTTP ou l'application des mesures d’atténuation vont neutraliser ce vecteur et donc empêcher l’exploitation de cette vulnérabilité.

Pour empêcher l'en-tête fourni par l'attaquant d'être utilisé, une des approches suivantes peut être utilisée :

  • Configurer votre parefeu d'application Web afin de supprimer l'en-tête  « Proxy: »
    *Modifier votre configuration de serveur HTTP pour enlever l'en-tête « Proxy : »avant que les Go scripts soient invoqués (voir d'autres articles de base de connaissances liés dans l’article principal HTTPoxy ci-dessous).
  • Procédez aux changements suivants dans votre programme :
    Ajouter « os » aux importations si non déjà présent :
    import “os”

Ajouter au dessus de votre fonction « main » (principale) :

    os.Unsetenv(“HTTP_PROXY”)

Root Cause

Voir HTTPoxy - CGI "HTTP_PROXY" variable name clash pour plus d'informations.

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.