Je ne suis pas un expert en Ruby, mais je pensais que cette ligne de code empêcherait l’exécution de la partie vulnérable sur Azure, car elle devrait être évaluée à false ?? N’hésite pas à me corriger ici, car je ne connais pas bien Ruby.
De plus, en tant que solution temporaire (un pansement) et NON RECOMMANDÉE (car la mise à niveau reste la meilleure solution à 100 %), pourrais-tu modifier le fichier nginx pour régler le problème temporairement en attendant la mise à niveau ?
Voici comment procéder :
ssh vers la machine
cd /var/discourse
./launcher enter app
cd /etc/nginx/conf.d/
éditer discourse.conf
ajouter :
location ~* /webhooks/aws {
deny all;
}
sv restart nginx
J’ai bien l’intention de faire la mise à niveau, et ce bientôt. Mais j’aurai besoin d’environ une semaine pour organiser les choses dans notre environnement de production et je souhaite être sécurisé dans l’intervalle.
Cette ligne sera exécutée de toute façon, car ce paramètre provient de l’entrée utilisateur.
Cela peut fonctionner, mais comme vous l’avez dit, c’est un pansement. Une reconstruction supprimera la correction, et soyez très prudent lors des tests, car la configuration nginx est très délicate à mettre correctement en place.
Selon les analyses de notre équipe de sécurité, il ne s’agit pas d’un bug de Discourse. Ce bug se trouve dans notre système de distribution de messages SNS (MDS) (nous ne pouvons pas entrer dans les détails ici), ce qui signifie qu’il affectera chaque package qui utilise ou fait usage du service SNS.
Oui, le problème est bien causé par un problème en amont dans le gem aws-sdk-sns. Cependant, il est important de réaliser que, puisque Discourse utilise ce gem et expose le bug au monde entier, chaque instance Discourse est vulnérable, même si elle n’utilise pas réellement le service AWS SNS.
Ainsi, bien qu’il ne s’agisse pas d’un « bug de Discourse », il s’agit bel et bien d’une « vulnérabilité de sécurité dans Discourse ».