Les versions 10.3.6 et 12.1.3 sont vulnérables à une faille de sécurité majeure exposée dans la CVE-2019-2725. De niveau 9.8 cette faille permet une prise de contrôle à distance d’un serveur via une requête HTTP sans avoir besoin de s’authentifier. La faille s’appuie encore une fois sur la désérialisation des objets Java.
Une faille sensiblement identique a déjà été traitée dans l’article Sécurité des serveurs et la nécessité de les patcher
2 applications web peuvent servir de vecteur pour déclencher une attaque :
- wls-wsat.war
- bea_wls9_async
Contre-mesures
L’application du patch publié par Oracle est la solution recommandée.
Toutefois, il est également possible d’agir au niveau des 2 applications comme indiqué dans les chapitres ci-dessous.
Patching
Oracle propose le Patch 29694149 comme correctif. Il doit être appliqué après un des PSU (Patch Set Update) indiqués ci-dessous :
WebLogic Server 10.3.6.0
- PSU 10.3.6.0.190115 (Patch 28710912)
- PSU 10.3.6.0.190416 (Patch 29204678)
WebLogic Server 12.1.3.0
- PSU 12.1.3.0.190115 (Patch 28710923)
- PSU 12.1.3.0.190416 (Patch 29204657)
Les versions 12.2.x ne sont pas vulnérables à cette faille de sécurité.
Un bulletin de sécurité traitant du sujet a été publié par Oracle le 26 avril 2019.
Cette faille se situe au niveau des applications web internes wls-wsat et bea_wls9_async qui se trouvent :
- WebLogic Server 10.3.6 : $BEA_HOME/wlserver_10.3/server/lib/bea_wls9_async_response.war
- WebLogic Server 12.1.3 : $MW_HOME/oracle_common/modules/com.oracle.webservices.wls.bea-wls9-async-response_12.1.3.war
- WebLogic Server 10.3.6 : $BEA_HOME/wlserver_10.3/server/lib/wls-wsat.war
- WebLogic Server 12.1.3 : $MW_HOME/oracle_common/modules/com.oracle.webservices.wls.wsat-endpoints-impl_12.1.3.war
Ces applications web sont automatiquement déployées sur les serveurs WebLogic.
bea_wls9_async est par exemple accessible via l’url
http://[HOST]:[PORT]/_async/AsyncResponseServiceHttps
Désactivation de l’application bea_wls9_async
La propriété suivante permet d’indiquer à WebLogic de ne pas déployer l’application :
[pastacode lang= »java » manual= »-Dweblogic.wsee.skip.async.response%3Dtrue » message= » » highlight= » » provider= »manual »/]
Suppression des applications de l’installation
Si vos applications n’utilisent pas les 2 applications internes incriminées il peut être judicieux de les désactiver complètement, ce qui annule la faille par la même occasion.
Pour ce faire, il faut :
- Arrêter tous les serveurs du domaine.
- Supprimer ou renommer les .war
- Supprimer le répertoire « tmp » de chaque serveur sous $DOMAIN_HOME/servers/<nom du serveur>/tmp
- Démarrer les serveurs.
Un warning sera affiché dans la log de chaque serveur indiquant que WebLogic n’a pas réussit à déployer l’application.
Exemple :
[pastacode lang= »markup » manual= »%3C…%3E%20%3CWarning%3E%20%3CDeployer%3E%20%3CBEA-149617%3E%20%3CNon-critical%20internal%20application%20com.oracle.webservices.wls.bea-wls9-async-response_12.1.3%20was%20not%20deployed.%20Error%3A%20%5BDeployer%3A149158%5DNo%20application%20files%20exist%20at%20%22…%5Cwlserver%5Cserver%5Clib%5C..%5C..%5C..%5Coracle_common%5Cmodules%5Ccom.oracle.webservices.wls.bea-wls9-async-response_12.1.3.war%22.%3E » message= » » highlight= » » provider= »manual »/]