En lisant les détails de CVE-2009-4487 (qui concerne le danger des séquences d'échappement dans les fichiers journaux), je suis un peu surpris.
Pour citer CVE-2009-4487 :
nginx 0.7.64 écrit des données dans un fichier journal sans nettoyer les caractères non imprimables, ce qui pourrait permettre à des attaquants distants de modifier le titre d'une fenêtre, ou éventuellement d'exécuter des commandes arbitraires ou d'écraser des fichiers, via une requête HTTP contenant une séquence d'échappement pour un émulateur de terminal.
De toute évidence, il ne s'agit pas vraiment d'une faille de sécurité dans nginx, mais dans les émulateurs de terminaux.
Bien sûr, peut-être cat
qu'ingérer un fichier journal sur le terminal ne se produit que par accident, mais grep
ing un fichier journal est assez courant. less
peut-être désinfecte les séquences d'échappement, mais qui sait quelles commandes shell ne modifient pas les séquences d'échappement ...
J'ai tendance à être d'accord avec la réponse de Varnish :
La sagesse des échappées de réponse terminale en général a été remise en question à intervalles réguliers, mais aucun des principaux programmes d'émulation de terminal n'a jugé bon de rejeter ces séquences, probablement dans une tentative malencontreuse de compatibilité avec la technologie des années 1970 qui n'est plus utilisée. [..] Au lieu de blâmer tous les programmes qui écrivent des fichiers journaux, il serait beaucoup plus productif, d'un point de vue de la sécurité, de faire en sorte que les programmes d'émulation de terminal cessent de faire des choses stupides, et ainsi de résoudre ce problème et d'autres problèmes de sécurité une fois et pour tous.
Ainsi mes questions:
Comment puis-je sécuriser mon xterm, de sorte qu'il n'est plus possible d'exécuter des commandes ou d'écraser des fichiers via des séquences d'échappement?
Quels émulateurs de terminaux pour X sont protégés contre cette attaque?