To na každou zranitelnost píšou takhle dlouhé pdfko ?
BTW v mezičase došlo k tomu že patch v 2.15.0 je nedostatečný takže kdo má hotovo, může začít znova na 2.16.0 :)
Prostě patchovani knihoven je potřeba zautomatizovat, fascinuje me kolik je to vsude prace, pritom log4j ma krasny stabilni api a dobre verzovani. Kdo nema continuos delivery zaplace
Jenom bych doplnil, že vývojáři, kteří tu knihovnu používají, ji nazývají Log4j 2. Když před nimi řeknete Log4j, představí si pod tím starou řadu 1.x.
Takže všechna ta oznámení zmiňující jen „Log4j“ jsou poněkud nebezpečná, protože na jejich základě je snadné si říct „no jo, takhle prastará verze, tomu se nelze divit, že je děravá, mi naštěstí používáme verzi 2“ a minout tak to, že se ve skutečnosti jedná o Log4j 2. Na druhou stranu, pokud tu knihovnu někdo používá a o chybě ještě neví, nepomůže mu asi už nic.
15. 12. 2021, 16:33 editováno autorem komentáře
Úplně bych netvrdil že to mají správně, je to vydané dneska a říkají tam že se má updatovat na log4j 2.15RC2 a aktuální informace je že už bylo vydáné 2.16.0 které to opravuje pořádně.
Btw v javě se jména knihoven udávají pomocí 3 identifikatoru, a ta 2 v tom jmenu proste neni, je jen ve verzi, imho říkat pouze log4j je legitimní
Viz rozdíl mezi 1 a 2 :
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.16.0</version>
</dependency>
„Správně“ se vztahovalo jen na pojmenování té knihovny.
S uváděním postižených verzí mají máslo na hlavě především autoři Log4j 2 a možná objevitelé té chyby. První informace byla, že první nepostižená verze je 2.15.0-rc2. Jenže v okamžiku, kdy šly informace ven, byl už pravděpodobně vydaná 2.15.0 (finální verze) – byla vydaná už ve čtvrtek v noci, informace o zranitelnosti šly pokud vím až v pátek ráno našeho času. Takže je poměrně obtížné udržet krok s tím, která verze je zrovna aktuální…
Když se podíváte na oficiální stránky Log4j 2, vidíte tam tenhle název rovnou v hlavním nadpisu, v titulku stránky a několikrát v textu (všude tam, kde není explicitně uvedené číslo verze). Takže „obchodní“ název té současné verze knihovny je nepochybně Log4j 2, prostě se ta verze bere jako součást názvu. Podobně to měl svého času Angular 2, než raději přejmenovali Angular 1 na AngularJS. Když napíšete Log4j bez dvojky, většina Java vývojářů si představí Log4j 1.x.
Já bych se držel označování softwaru tak, jak ho označují jeho autoři. Vymýšlet jiné názvy je akorát matoucí. Navíc u starého neudržovaného softwaru bych takovouhle chybu čekal spíš, než u projektu, který se vyvíjí.
A do třetice – Log4j 1.x umřel mnohem dřív, než byl jeho oficiální EOF, nějakou dobu nebylo kam přejít. Pak se objevil slf4j + Logback, jenže to bylo potřeba si aktivně najít, že existuje jiná knihovna. Log4j 2 není v Maven repository označen jako následovník Log4j*) (ono není tak jednoduché to označit, resp. potřebujete práva k publikování v původnímu repu, která nemusíte mít, pokud jste vývoj převzal). Takže pokud někdo aktivně neřešil přechod z Log4j 1.x jinam, zůstal stále na té verzi a třeba z Mavenu se nedozví, že existuje „novější“ verze nebo že je verze 1.x ukončena. (Aby bylo jasno, nepíšu o mém týmu – píšu o tom, co vidím třeba u OSS projektů.)
*) To, že na mvnrepository.com vidíte poznámku, nic neznamená – ta je tam ručně doplněná, ten údaj není v metadatech, takže nástroje to nepoznají.
OSS projekty řikáš? Tady je příklad Apache Hadoop, https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/ClusterSetup.html, píšou na svých stránkách tohle "Hadoop uses the Apache log4j via the Apache Commons Logging framework for logging" a přitom používají dvojku.
Proč se snažíš generalizovat svůj osobní názor, že to tak je všude? Může to tak být v bublině, ale určitě bych z toho nedělal pravidlo, že to tak je všude.
K správnému jménu této knihovny mohu říci pouze toto :
https://dl.airtable.com/.attachments/8f2a010d8937c9520695d871d3138afa/edf3c41a/FGnhgugXMAQMrg7