web-dev-qa-db-fra.com

Comprendre les vulnérabilités SVG dans Wordpress liées à un correctif spécifique

J'ai activé le téléchargement SVG pour mon logo Wordpress en utilisant la réponse fournie sur ce lien de pile , même si j'ai lu, à de nombreux endroits, que la prise en charge SVG sur un site Wordpress ouvre la voie à des attaques par script. Voici juste une telle source:

Pour quelles raisons de sécurité les svgs sont-ils bloqués dans l'utilitaire de téléchargement multimédia?

Ma question est triple:

1) Si je comprends bien, le hack que j'ai utilisé (basé sur le lien ci-dessus ) me permet de télécharger des SVG pour le logo. Cela signifie-t-il également que les utilisateurs finaux (non administrateurs) peuvent télécharger des fichiers SVG malveillants pouvant causer de sérieux dommages à mon site si je leur permet de télécharger des fichiers?

2) S'il autorise les utilisateurs à télécharger des fichiers SVG malveillants, y a-t-il un autre code que je peux utiliser pour protéger mon site contre les attaques?

3) S'il y a une vulnérabilité introduite par le correctif SVG que j'ai utilisé, quel type de dommage un pirate informatique peut-il causer? Quel type de commandes aurait besoin de déclencher les scripts malveillants?

Merci!

4
CoderScissorhands

Cet article a un tas d'excellentes réponses à vos questions. Je recommande fortement de vérifier pour en savoir plus sur l'ampleur de ce problème, mais je peux vous donner un bref aperçu.

SVG, étant basé sur XML, rend très difficile le déchiffrement de ce qui est malveillant ou non. D'un côté, il vous ouvre les portes des attaques XSS et, à l'autre bout, il pourrait en fait servir une attaque par déni de service.

Il fait référence à ce ticket Wordpress Trac discute de la sécurité SVG depuis longtemps, avec apparemment aucune fin de site.

Quoi qu'il en soit, pour répondre à vos questions:

  1. Ma réaction instinctive est négative, mais cela dépend vraiment de ce que vos utilisateurs finaux sont capables de faire. S'ils n'ont pas le droit de télécharger quoi que ce soit, tout va bien. Si tel est le cas, cela dépend de ce que vous utilisez pour analyser votre système de téléchargement de fichiers frontal. Il s’agit principalement des utilisateurs WP qui ont la possibilité de télécharger des éléments et dans quelle mesure vous leur demandez de ne pas télécharger des éléments malveillants.

  2. Il existe un plugin appelé Safe SVG basé sur une bibliothèque appelée SVG Sanitizer . Consultez le readme sur les deux pour mieux comprendre ce qu’il peut/ne peut pas empêcher.

  3. Les dommages pourraient être n'importe quoi, de la suppression d'informations à la suppression de votre serveur d'hébergement. Je vous renvoie à l'article original que j'ai lié à. La profondeur de ce qui pourrait arriver lorsque vous ouvrez un fichier SVG est plutôt ouverte.

Les SVG sont l'avenir et je les utilise sur tous les sites que je construis, mais je ne les autorise généralement pas à être téléchargés, ne serait-ce que parce qu'ils peuvent généralement être codés en dur dans le thème.

J'ai autorisé les envois SVG sur des sites qui doivent être plus fluides, mais je pense pouvoir comprendre que ce n'est pas activé par défaut, car je peux compter sur une main le nombre de fois que cela a été nécessaire.

7
socki03

Comme il est expliqué dans l'autre réponse, permettre aux utilisateurs de télécharger des fichiers SVG peut être un risque pour la sécurité en général, il ne s'agit pas d'un problème spécifique dans WordPress. Notez cependant que vous utilisez un paramètre de personnalisation, de sorte que vous n'autorisez pas le téléchargement de fichiers SVG à tous les utilisateurs, mais uniquement aux utilisateurs pouvant accéder au personnalisateur de thème.

Par défaut, seuls les utilisateurs dotés de la fonctionnalité edit_theme_options peuvent accéder au personnalisateur de thème, et par défaut seuls les administrateurs disposent de cette fonctionnalité. Donc, dans ce contexte, les risques sont vraiment minimes; Les administrateurs sont censés savoir ce qu'ils font.

Et vous pouvez contrôler exactement les utilisateurs pouvant accéder aux sections et aux paramètres du personnaliseur à l'aide de l'argument capability de WP_Customize_Manager::add_section() et WP_Customize_Manager::add_setting() méthodes:

  $wp_customize->add_section( 'mytheme_options', 
     array(
        'capability' => 'edit_theme_options', // Change this if you wish
     ) 
  );

  $wp_customize->add_setting( 'some_setting',
     array(
        'capability' => 'edit_theme_options', // Change this if you wish
     ) 
  );
5
cybmeta