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
no, ve vlastních aplikacích jsme opravu spáchali ještě v pátek, ale v aplikacích třetí strany to vůbec není snadné, řada vendorů patch ještě nevydala takže se to musí složitě prohledávat a měnit z venku.
CD je nepoužitelné na cokoliv co je koupené a zrovna Java je poměrně častá v placeném SW.
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
čemu se divíte, vždyť je to nukib... "To" by snad ani nemělo existovat, jejich informace jsou v podstatě k ničemu.
NÚKIB to má správně. Špatně se to často objevuje v médiích (jako např. tady). Svůj podíl na tom mají jistě i objevitelé té zranitelnosti, protože i oni zpočátku psali o Log4j a až dodatečně tu a tam doplnili „Log4j verze 2“.
Ú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.
pokud mluvím o log4j, není důvod myslet verzi 4 roky po EOF. Pokud náhodou děláš v týmu, který něco takového ještě v kódu udržuje, proč ne, ale podle toho kolik SW používá ještě původní verzi, bych řekl, že takových vývojářů bude minorita.
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.
Nikde jsem nepsal, že to tak označují všichni. Ale já bych se držel označování softwaru tak, jak ho označují jeho autoři. Pokud to někdo označuje jinak, je to jeho chyba, ale nemyslím si, že je nutné chyby po ostatních opakovat.
K správnému jménu této knihovny mohu říci pouze toto :
https://dl.airtable.com/.attachments/8f2a010d8937c9520695d871d3138afa/edf3c41a/FGnhgugXMAQMrg7