A nyílt forráskódú Apache Commons Text programkönyvtár távoli kódfuttatási hibája miatt néhányan aggódnak, hogy a következő Log4Shell lehet belőle. De a legtöbb kiberbiztonsági kutató szerint azonban a jelenlegi helyzet közel sem olyan aggasztó. Néztétek már, hogy titeket érint ez a probléma?
Az Apache Commons Text változóinterpolációt végez, lehetővé téve a tulajdonságok dinamikus kiértékelését és bővítését. Az interpoláció szabványos formátuma a "${prefix:name}", ahol a "prefix" az org.apache.commons.text.lookup.StringLookup egy példányát keresi, amely az interpolációt végzi. Az 1.5-ös verziótól kezdve az 1.9-es verzióig az alapértelmezett Lookup példányok készlete olyan interpolátorokat tartalmazott, amelyek tetszőleges kódfuttatást vagy távoli szerverekkel való kapcsolatot eredményezhettek. Ezek a lookupok a következők: - "script" - kifejezések végrehajtása a JVM script futtató motorjának (javax.script) segítségével - "dns" - dns rekordok feloldása - "url" - értékek betöltése url-ekből, beleértve a távoli szerverekből származó értékeket Az érintett verziók interpolációs alapértelmezett értékeit használó alkalmazások sebezhetőek lehetnek távoli kódfuttatással vagy távoli szerverekkel való véletlen kapcsolatfelvétellel szemben, ha nem megbízható konfigurációs értékeket használnak. A felhasználóknak ajánlott frissíteniük az Apache Commons Text 1.10.0-ra, amely alapértelmezés szerint letiltja a problémás interpolátorokat.
További információkért látogassa meg a következő webhelyet: CVE-2022-42889
- Ha olyan szoftverre támaszkodik, amely a commons-text 1.10.0 előtti verzióját használja, akkor valószínűleg még mindig nem sebezhető: csak akkor érintett, ha ez a szoftver a StringSubstitutor API-t használja anélkül, hogy megfelelően szanálná a nem megbízható bemenetet.
- Ha a saját szoftvere commons-text-et használ, ellenőrizze kétszer is, hogy használja-e a StringSubstitutor API-t anélkül, hogy megfelelően javítanáa nem megbízható bemenetet. Ha igen, egy frissítés az 1.10.0-ra gyors megoldást jelenthet, de a javasolt megoldás a nem megbízható bemenet megfelelő ellenőrzése és javítása.
Az Apache Commons Text egy alacsony szintű könyvtár különböző szövegműveletek elvégzésére, mint például az escaping, a karakterláncok közötti különbségek kiszámítása és a szövegben lévő jelölők helyettesítése interpolátorokon keresztül keresett értékekkel. A karakterlánc-helyettesítés funkció használatakor a rendelkezésre álló interpolátorok némelyike hálózati hozzáférést vagy kódfuttatást válthat ki. Ez szándékos, de azt is jelenti, hogy egy olyan alkalmazás, amely a felhasználói bemenetet a helyettesítéshez átadott karakterláncban tartalmazza anélkül, hogy azt megfelelően szanálná, lehetővé tenné a támadó számára, hogy ezeket az interpolátorokat kiváltsa.
Ezért az Apache Commons Text csapata úgy döntött, hogy frissíti a konfigurációt, hogy "alapértelmezés szerint biztonságosabb" legyen, így a bemenetek érvényesítésének elmulasztása enyhíti a hatást, és nem ad hozzáférést a támadónak ezekhez az interpolátorokhoz. Mindazonáltal továbbra is ajánlott, hogy a felhasználók óvatosan bánjanak a nem megbízható bemenetekkel.
Jelenleg nincs tudomásunk olyan alkalmazásról, amely nem megbízható bemenetet ad át a helyettesítőnek, és így az Apache Commons Text 1.10.0 előtt érintett lett volna ebben a problémában.
Ez a probléma különbözik a Log4Shell (CVE-2021-44228) problémájától, mivel a Log4Shellben a karakterlánc-interpoláció a naplóüzenet szövegéből volt lehetséges, amely általában nem megbízható bemenetet tartalmaz. Az Apache Common Text problémája esetében a vonatkozó módszer kifejezetten arra szolgál és egyértelműen dokumentált, hogy karakterlánc-interpolációt végezzen, így sokkal kevésbé valószínű, hogy az alkalmazások véletlenül nem megbízható bemenetet adnának át megfelelő validálás nélkül.
A hibátegymástól függetlenül jelezte Ruilin és Alvaro Muñoz, valamint a GitHub Security Lab csapat is.
További információk: