Apache Log4j version 2.17.0 a été officiellement publiée, résolvant la troisième vulnérabilité de sécurité découverte CVE-2021-45105.
Les versions 2.0-alpha1 à 2.16.0 d'Apache Log4j2 n'empêchent pas la récursivité incontrôlée des recherches autoréférentielles. Lorsque la configuration du journal utilise une disposition de modèle et une recherche de contexte autres que celles par défaut (par exemple, $${ctx:loginId}), un attaquant qui contrôle les données d'entrée de la carte de contexte de thread (MDC) peut créer des données d'entrée malveillantes contenant des recherches récursives, provoquant un StackOverflowError, mettant ainsi fin au processus. C'est ce qu'on appelle également une attaque DoS. [Recommandé : Tutoriel d'utilisation d'Apache]
À partir de la version 2.17.0 (pour Java 8), seule la chaîne de recherche dans la configuration sera développée de manière récursive ; dans toute autre utilisation, seule la recherche de niveau supérieur est analysée, pas ; toute recherche imbriquée.
Dans les versions précédentes, ce problème pouvait être atténué en vous assurant que votre configuration de journalisation effectuait ce qui suit :
Dans le PatternLayout de la configuration de journalisation, utilisez le modèle Thread Context Map (%X, %mdc ou %MDC) remplacez ${ctx:loginId} ou $${ctx:loginId} et d'autres recherches contextuelles.
Sinon, supprimez les références aux recherches contextuelles telles que ${ctx:loginId} ou ${ctx:loginId} dans la configuration ; elles proviennent de sources extérieures à l'application, telles que les en-têtes HTTP ou les entrées utilisateur.
Les mises à jour spécifiques de la version 2.17.0 incluent :
Correction de la récursion de remplacement de chaîne. Correction de LOG4J2-3230
Limiter JNDI au protocole Java uniquement. Par défaut, JNDI restera désactivé. Propriétés d'activation JNDI renommées de « log4j2.enableJndi » à « log4j2.enableJndiLookup », « log4j2.enableJndiJms » et « log4j2.enableJndiContextSelector ». Le correctif LOG4J2-3242
JNDI est limité au protocole Java uniquement. Par défaut, JNDI restera désactivé. La propriété d'activation a été renommée « log4j2.enableJndiJava ». Corrigez LOG4J2-3242
Ne déclarez pas log4j-api-java9 et log4j-core-java9 comme dépendances car cela entraînerait des problèmes avec le plugin Maven Enforcer. Correction de LOG4J2-3241
PropertiesConfiguration.parseAppenderFilters NPE lors de l'analyse des filtres de fichiers de propriétés. Correction de LOG4J2-3247
Le pont Log4j 1.2 de Syslog Appender est par défaut sur le port 512 au lieu de 514. Correction de LOG4J2-3249
Log4j 1.2 relie en dur l'API le protocole Syslog à TCP. Correction de LOG4J2-3237
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!