L'entreprise de sécurité Aspect Security a détecté une faille majeure dans le framework Spring. La vulnérabilité se situe dans la fonctionnalité “expression language”, et permet l'injection de code à distance. Ainsi, d'après le CEO d'Aspect Security. « Une application web pourrait être entièrement détournée par des attaquants et servir à exécuter du code malveillant sur le serveur ».
Selon Aspect Security, cette faille n'est pas facile à exploiter, ce qui bien entendu ne découragera pas les cybercriminels motivés. Malheureusement, la vulnérabilité semble également difficile à patcher. Le projet Spring travaille activement à le recherche d'une solution.
Selon marketwire.com qui a rapporté l'information, 22 000 entreprises seraient sous la menace de cette faille. Les plus menacées étant les entreprises qui utilisent Spring 3.0.5 ou inférieur, car ses moutures ne supportent pas la désactivation de la double résolution de Expression Language.
Mise à jour :
VMWare nous a contacté pour nous communiquer les précisions suivantes au sujet de cette faille dans Spring:
Bien que la découverte de Aspect Security soit en effet récente, un correctif publié par SpringSource existe depuis longtemps. Il a été mis à disposition dès 2011, quand cette faille a été découverte pour la première fois. Dan Amadio d'Aspect Security nous a récemment fait part de la possibilité d'exécuter du code à distance et SpringSource a donc mis à jour le bulletin de sécurité (12-06-2012) avec les dernières informations d'Aspect Security. Pour autant, le palliatif exposé dans le premier rapport de sécurité reste applicable.
Ce correctif est automatiquement présent dans les versions 3.1+ du framework Spring. Ceci n'est plus un problème pour les utilisateurs de Spring qui ont pris les mesures nécessaires dès la première publication du rapport en septembre 2011.
Par ailleurs, cette faille n'affecte qu'une infime partie des versions de Spring. Il suffit aux utilisateurs du framework de mettre à jour leur version (opération de maintenance, très simple). A titre d'exemple, la marche à suivre est détaillée plus bas.
La mise à jour régulière vers les dernières versions de maintenance est une procédure bien connue de tout utilisateur responsable.
La faille affecte uniquement les versions (anciennes) suivantes:
* 3.0.0 à 3.0.5 — la mise à jour en 3.0.6 corrige le problème
* 2.5.0 à 2.5.6.SEC02 (community release) — la mise à joour en 2.5.6.SEC03 corrige le problème
* 2.5.0 à 2.5.7.SR01 (clients SpringSource) — la mise à jour en 2.5.7.SR02 corrige le problème
A titre indicatif, la version actuelle du framework Spring est 3.2, rendue disponible en décembre 2012.