Si je comprends bien, tu parles de la policy (fichier policy.xml), mais justement, c'est ça que je pige pas.
Je m'attends à ce que ImageMagick, sauf faille de sécurité, soit utilisable sans avoir de fichier policy.xml. Avoir une sandbox est une bonne chose, mais on parle d'ImageMagick, si le logiciel sans fichier policy.xml est troué par défaut, c'est un souci.
Donc quand j'examine le patch en détail, il touche 8 fichiers.
On peut retirer les tests et le mp3 de test qui va avec, ainsi que la modif de application.rb qui est la pour charger un autre fichier.
Il reste 5 modifs. Une est le fichier policy.xml, une pour utiliser le fichier en question. On va mettre ça de coté.
Il reste donc les 3 derniers bouts, à savoir:
- une classe MediaTypeSpoofDetectorExtensions
- une modif de transcoder.rb
- une modif de attachmentable.rb
De ce que je comprends, la derniére modif change juste la validation pour utiliser le type MediaTypeSpoofDetectorExtensions, ce qui permet de ne pas laisser passer certains mp3 mal détectés. C'est curieux d'avoir 2 libs pour trouver le type mime, mais on.
Et il reste que transcoder.rb, qui va échouer si on ne peux pas faire de transcoding au lieu de laisser passer ça à ImageMagick.
Donc on a:
- une meilleur vérification des fichiers transcodés (notament les mp3)
- on arrête le traitement si le transcodage échoue (mais quel traitement ? que fait mastodon à part du retaillage ?)
- une policy qui va bloquer le traitement de tout sauf les fichiers d'images, et qui va interdire le module URL.
Mais donc, les modules en questions, est ce que ImageMagick va les appeler sans demande explicite de l'utilisateur ?
Les fonctions des coders (plutôt des encodeurs et décodeurs) implique aussi de demander de les utiliser. Si je dit "transforme ce jepg en pdf", ça va appeler le coder pdf. Mais ça se fait pas sans une demande explicite via la CLI. Donc je pige pas, surtout que ImageMagick n'est pas directement appelé par le code, mais via paperclip (de ce que je comprends), donc il y a déja une couche d'astraction qu'on peut supposer sur (ou qui n'est pas documenté comme non sure).
Est ce que passer un fichier spécifique à ImageMagick dans sa config par défaut va être un souci de sécurité, ou est ce qu'il s'agit d'une faille dans l'instance si il y a une faille dans IM (auquel cas, il y a pas d'urgence sauf timing de merde, mais je vois personne dire "faut mettre à jour IM tout de suite")
[^] # Re: Quelques remarques
Posté par Misc (site web personnel) . En réponse au journal Vous hébergez un serveur Mastodon ? Mettez-le à jour !. Évalué à 3.
Si je comprends bien, tu parles de la policy (fichier policy.xml), mais justement, c'est ça que je pige pas.
Je m'attends à ce que ImageMagick, sauf faille de sécurité, soit utilisable sans avoir de fichier policy.xml. Avoir une sandbox est une bonne chose, mais on parle d'ImageMagick, si le logiciel sans fichier policy.xml est troué par défaut, c'est un souci.
Donc quand j'examine le patch en détail, il touche 8 fichiers.
On peut retirer les tests et le mp3 de test qui va avec, ainsi que la modif de application.rb qui est la pour charger un autre fichier.
Il reste 5 modifs. Une est le fichier policy.xml, une pour utiliser le fichier en question. On va mettre ça de coté.
Il reste donc les 3 derniers bouts, à savoir:
- une classe MediaTypeSpoofDetectorExtensions
- une modif de transcoder.rb
- une modif de attachmentable.rb
De ce que je comprends, la derniére modif change juste la validation pour utiliser le type MediaTypeSpoofDetectorExtensions, ce qui permet de ne pas laisser passer certains mp3 mal détectés. C'est curieux d'avoir 2 libs pour trouver le type mime, mais on.
Et il reste que transcoder.rb, qui va échouer si on ne peux pas faire de transcoding au lieu de laisser passer ça à ImageMagick.
Donc on a:
- une meilleur vérification des fichiers transcodés (notament les mp3)
- on arrête le traitement si le transcodage échoue (mais quel traitement ? que fait mastodon à part du retaillage ?)
- une policy qui va bloquer le traitement de tout sauf les fichiers d'images, et qui va interdire le module URL.
Mais donc, les modules en questions, est ce que ImageMagick va les appeler sans demande explicite de l'utilisateur ?
Les fonctions des coders (plutôt des encodeurs et décodeurs) implique aussi de demander de les utiliser. Si je dit "transforme ce jepg en pdf", ça va appeler le coder pdf. Mais ça se fait pas sans une demande explicite via la CLI. Donc je pige pas, surtout que ImageMagick n'est pas directement appelé par le code, mais via paperclip (de ce que je comprends), donc il y a déja une couche d'astraction qu'on peut supposer sur (ou qui n'est pas documenté comme non sure).
Est ce que passer un fichier spécifique à ImageMagick dans sa config par défaut va être un souci de sécurité, ou est ce qu'il s'agit d'une faille dans l'instance si il y a une faille dans IM (auquel cas, il y a pas d'urgence sauf timing de merde, mais je vois personne dire "faut mettre à jour IM tout de suite")