Apache Log4j versi 2.17.0 telah dikeluarkan secara rasmi, menyelesaikan kerentanan keselamatan ketiga yang ditemui CVE-2021-45105.
Apache Log4j2 versi 2.0-alpha1 hingga 2.16.0 tidak menghalang pengulangan carian rujukan kendiri yang tidak terkawal. Apabila konfigurasi log menggunakan Reka Letak Corak dan Carian Konteks bukan lalai (contohnya, $${ctx:loginId}), penyerang yang mengawal data input peta konteks benang (MDC) boleh mencipta data input berniat jahat yang mengandungi carian rekursif, menyebabkan a StackOverflowError dengan itu menamatkan proses. Ini juga dipanggil serangan DoS. [Disyorkan: Tutorial penggunaan Apache]
Bermula dari versi 2.17.0 (untuk Java 8), hanya rentetan carian dalam konfigurasi akan dikembangkan secara rekursif dalam mana-mana penggunaan lain, Hanya atas -pencarian peringkat dihuraikan, bukan sebarang carian bersarang.
Dalam versi terdahulu, isu ini boleh dikurangkan dengan memastikan konfigurasi pengelogan anda melakukan perkara berikut:
Dalam konfigurasi pengelogan Dalam PatternLayout, gantikan Carian Konteks seperti ${ctx:loginId} atau $${ctx:loginId} dengan corak Peta Konteks Benang (%X, %mdc atau %MDC).
Jika tidak, alih keluar rujukan kepada Carian Konteks seperti ${ctx:loginId} atau ${ctx:loginId} dalam konfigurasi ia berasal daripada sumber luar aplikasi, seperti HTTP pengepala atau input pengguna..
Kemas kini khusus versi 2.17.0 termasuk:
Betulkan rekursi penggantian rentetan. Betulkan LOG4J2-3230
Hadkan JNDI kepada protokol java sahaja. Secara lalai, JNDI akan kekal dilumpuhkan. JNDI yang dinamakan semula membolehkan sifat daripada "log4j2.enableJndi" kepada "log4j2.enableJndiLookup", "log4j2.enableJndiJms", dan "log4j2.enableJndiContextSelector". Betulkan LOG4J2-3242
JNDI terhad kepada protokol java sahaja. Secara lalai, JNDI akan kekal dilumpuhkan. Sifat daya telah dinamakan semula kepada "log4j2.enableJndiJava". Betulkan LOG4J2-3242
Jangan isytiharkan log4j-api-java9 dan log4j-core-java9 sebagai kebergantungan kerana ini akan menyebabkan masalah dengan pemalam penguatkuasa Maven. Betulkan LOG4J2-3241
PropertiesConfiguration.parseAppenderFilters NPE apabila menghuraikan penapis fail sifat. Betulkan LOG4J2-3247
Jambatan Log4j 1.2 Syslog Appender lalai kepada port 512 dan bukannya 514. Betulkan LOG4J2-3249
Log4j 1.2 jambatan API kod keras Protokol Syslog kepada TCP. Betulkan LOG4J2-3237
Atas ialah kandungan terperinci Apache Log4j 2.17.0 telah dikeluarkan! Lihat masalah apa yang telah diselesaikan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!