Uroš Popović v krátkém článku vysvětluje, co jsou emulátor terminálu, TTY a shell a jaké jsou mezi nimi rozdíly. Jde o první díl seriálu na jeho novém webu Linux Field Guide věnovaném nízkoúrovňové práci s linuxovými systémy.
Byl vydán Debian 13.5, tj. pátá opravná verze Debianu 13 s kódovým názvem Trixie a Debian 12.14, tj. čtrnáctá opravná verze Debianu 12 s kódovým názvem Bookworm. Řešeny jsou především bezpečnostní problémy, ale také několik vážných chyb. Instalační média Debianu 13 a Debianu 12 lze samozřejmě nadále k instalaci používat. Po instalaci stačí systém aktualizovat.
CiviCRM (Wikipedie) bylo vydáno v nové verzi 6.14.0. Podrobnosti o nových funkcích a opravách najdete na release stránce. CiviCRM je robustní open-source CRM systém navržený speciálně pro neziskové organizace, spolky a občanské iniciativy. Projekt je napsán v jazyce PHP a licencován pod GNU Affero General Public License (AGPLv3). Český překlad má nyní 45 % přeložených řetězců a přibližuje se milníku 50 %. Potřebujeme vaši pomoc, abychom se dostali dál. Pokud máte chuť přispět překladem nebo korekturou, přidejte se na platformu Transifex.
Další lokální zranitelností Linuxu je ssh-keysign-pwn. Uživatel si může přečíst obsah souborů, ke kterým má právo ke čtení pouze root, například soubory s SSH klíči nebo /etc/shadow. V upstreamu již opraveno [oss-security mailing list].
Singularity (YouTube) je nejnovější otevřený film od Blender Studia. Jedná se o jejich první 4K HDR film.
Vyšla hra Život Není Krásný: Poslední Exekuce (Steam, ProtonDB). Kreslená point & click adventura ze staré školy plná černého humoru a nekorektního násilí. Vžijte se do role zpustlého exekutora Vladimíra Brehowského a projděte s ním jeho poslední pracovní den. Hra volně navazuje na sérii Život Není Krásný.
Společnost Red Hat představila Fedora Hummingbird, tj. linuxovou distribuci s nativním kontejnerovým designem určenou pro vývojáře využívající AI agenty.
Hru The Legend of Zelda: Twilight Princess od společnosti Nintendo si lze nově díky projektu Dusklight (původně Dusk) a reverznímu inženýrství zahrát i na počítačích a mobilních zařízeních. Vyžadována je kopie původní hry (textury, modely, hudba, zvukové efekty, …). Ukázka na YouTube. Projekt byl zahájen v srpnu 2020.
Byla vydána nová major verze 29.0 programovacího jazyka Erlang (Wikipedie) a související platformy OTP (Open Telecom Platform, Wikipedie). Detailní přehled novinek na GitHubu.
Po zranitelnostech Copy Fail a Dirty Frag přichází zranitelnost Fragnesia. Další lokální eskalace práv na Linuxu. Zatím v upstreamu neopravena. Přiřazeno ji bylo CVE-2026-46300.
Aktuální vývojové jádro je 3.19-rc6, vydané 25. ledna.
>Stabilní aktualizace: Stabilní verze jádra 3.18.4, 3.14.30 a 3.10.66 byly vydány 27. ledna. V revidování jsou tři stabilní jádra: 3.18.5, 3.14.31, and 3.10.67. Dají se očekávat 30. ledna, možná ještě před tímto datem.
„A protože proklínám lidi, kteří ignorují nahlášené regrese s odůvodněním "opravuje to chybu", měl bych si udělat čas a říci vám, jak rád vidím, když vysvětlujete lidem, kteří regresi nahlásili, proč se to stalo a jaké vás k tomu vedly důvody. *Takhle* by to mělo fungovat. "Moje chyba, tohle byl důvod, proč jsem si myslel, že je to dobrý nápad.“
- Ted Ts'o
Vkládání modulu do běžícího jádra je poměrně invazivní, proto je tato operace několika způsoby omezena. Ve většině případů vyžaduje načtení modulu práva roota (nebo schopnost CAP_SYS_MODULE), ale existují i výjimky. Některé moduly se načtou automaticky, jakmile dojde k připojení nového hardwaru nebo souborového systému či když je zapotřebí nového kryptografického algoritmu jádra. V tomto posledním případě však neoprávnění uživatelé mohou kterýkoli modul z knihovny načíst využitím díry v krypto subsystému, tedy až donedávna.
Tento nedostatek objevil před téměř dvěma roky Mathias Krause, když ve vláknu poukázal na podobný bug spojený s mountováním a uživatelskými jmennými prostory. Tehdy šlo o to, že root v uživatelském jmenném prostoru (který mohl být běžným uživatelem v nejvyšším jmenném prostoru) mohl připojit souborový systém za pomoci možnosti -t (type) a přidat modulu libovolný název jako parametr. To způsobovalo, že jádro načetlo modul, i když nešlo o souborový systém. Krause poznamenal, že totéž se týkalo kryptografického subsystému.
Problém s připojením byl opraven krátce poté, co byl nahlášen, ale oprava kryptografické chyby očividně proklouzla. Ani jedna z těchto chyb neumožňovala neoprávněným uživatelům nahrát libovolné (tedy útočníkem ovládané) moduly, což by byl daleko větší problém. I tak možnost nahrávat neočekávané moduly ze standardního umístění (běžně /lib/modules) může vést k různým zranitelnostem, včetně zvýšení úrovně oprávnění - v podstatě ke kompromitování celého systému.
Vzhledem k tomu, že moduly jádra mají k jádru blízký přístup, docházelo v minulosti ke zneužívání těchto chyb v zabezpečení. Ale pokud si administrátor myslí, že běžný uživatel nemůže nahrávat konkrétní moduly, mohl by být méně ochotný aktualizovat jádro k vyřešení problému zdánlivě nedůležitého modulu. Také existuje nebezpečí neznámých či zero-day chyb v zabezpečení. Riziko těchto chyb může být velmi malé, ale i tak je nahrávání modulů do jádra vyhrazeno jen některým uživatelům.
Obvyklou opravou (která byla aplikována pro souborový systém) je navodit jméno modulu uživatele specifickým textovým řetězcem; pro souborové systémy se používalo„fs-“. Všechny souborové systémy, které mohou být postaveny jako moduly, dostanou MODULE_ALIAS(), s použitím prefixu. Požadavek pro request_module byl upraven, aby předcházel prefixu, což znamená, že jádro již nebude nahrávat jakýkoli modul jako souborový systém, ten by již skutečně musel být modulem souborového systému.
Je zřejmé, že stejné schéma může být aplikováno na šifrovaný subsystém, toto řešení však má několik zádrhelů, jak už ostatně Kraus uvedl ve svém příspěvku na G+. Za prvé, chyba v zabezpečení je o něco snadněji přístupná než mount a chyba jmenného prostoru. Každý user-space program, který se váže k socketu AF_ALG (který uživatelskému prostoru poskytuje netlink rozhraní k šifrovacímu subsystému), může určit typ šifry, kterou chce použít. Pokud vybraná šifra není k dispozici, pokusí se jádro šifru daného jména načíst. Vzhledem k tomu, že neexistuje omezení pro jméno, bude každé jméno modulu schváleno a bude načteno.
Úprava všech šifrovacích algoritmů, které mohou být sestaveny jako moduly přidáním „šifrovací“ předpony a změnou kódu pro načítání modulů, je zřejmou cestou kupředu. Změnu provedl Kees Cook, ale s opravou nastal problém. Kryptografické šifry mohou také určit mód, takže šifra AES v ECB (electronic codebook) by byla také specifikována jako „ecb(aes)“. Cookova původní oprava by umožnila, aby byl kterýkoli modul upřesněn v režimu (např. vfat(aes) a načten.
To vedlo Cooka ke druhé opravě, která ovšem postrádala některé potřebné kryprografické aliasy. Ty dodal až Krauseův patch.
I tak se v tomto procesu ještě podařilo najít chybu (nesouvisela s jádrem). Jádro převádí načítání modulů nástroji uživatelského prostoru modprobe, který najde modul, načte ho a použitím funkce init_module() jej načte do jádra. Vyšlo najevo, že Krause pro testování patche používá příkazový procesor BusyBox. Objevil to, že modprobe procesoru BusyBox efektivně využívá kořen názvu modulu, který zpracovává, což znamená, že všechno až po poslední „/“ je ignorováno. Žádost o /vfat se změní na žádost o „šifrovaný /vfat“, ale modprobe BusyBoxu první část klidně ignoruje a načte modul vfat, což nás přivádí opět na začátek.
Tento problém postihl nejen šifrování (Krause ve skutečnosti v zprávě chyb šifrování ani nezmiňuje, zřejmě proto, že ještě nedošlo ke sloučení Cookových oprav). Povšiml si ještě dvou příkazů, které nahrávaly moduly, když neměly:
# ifconfig /usbserial up # mount -t /snd_pcm none /
V obou případech je prefix použit („netdev-“ a „fs-“), ani nedošlo k žádným komplikacím, ale BusyBox je celkem úspěšně ignoroval. Správce BusyBoxu, Denys Vlasenko chybu opravil hned druhý den poté, co ji Krause nahlásil.
Zpočátku docházelo ke komplikacím, ale jak Krause poznamenal, tyto chyby jsou nyní odstraněny:
Celkově vzato vedla prvotní připomínka k jinak nesouvisejícímu LKML vláknu k nedostatečné opravě, která, když byla testována, odhalila svou nedostatečnost a ještě další chybu v úplně jiném kódu. Tomu říkám hezká oprava chyb;)
Chyba v jádru se vyskytovala od roku 2011, kdy bylo zavedeno rozhraní AF_ALG ke šifrovacímu subsystému ve verzi 2.6.38. Chybám byla přiřazena tři samostatná čísla CVE: CVE-2013-7421 pro původní chybu, na kterou Krause upozornil v roce 2013, CVE-2014-9644 pro variaci „vfat(aes) a CVE-2014-9645 pro chybu modprobe BusyBoxu. Opravy jádra jsou součástí hlavních aktualizací a budou vydány ve verzi 3.19; Dá se očekávat také podpora stabilních jader.
I když se nejedná o kritickou chybu, nedoporučuje se ponechávat neautorizovaným uživatelům možnost pohrávat si s útrobami jádra. Chyba i tak zůstávala nevyřešená po dva roky od svého objevení, což je celkem překvapivé. Zakázat nahrávání modulů (ať už při bootování či konfiguraci jádra) je jednou z možností, kterak zmírnit hrozbu, příliš se však nehodí pro některé typy systémů (hlavně pro desktopy a laptopy).
Nástroje: Tisk bez diskuse
Tiskni
Sdílej:
na podobný bug
oprávnění - v podstatě
navodit jméno modulu uživatele specifickým textovým řetězcem
dostanou MODULE_ALIAS(), s použitím prefixu
přístupná, než mount
Jádro převádí načítání
který zracovává
A nakonec tahle červená citací je ve tmavém stylu podivně kontrastní (asi jako červená na modré), takže se nedá číst.
„A protože nadávám na lidi, kteří ignorují regresní zprávy, protože „opravují chybu“ měl bych si udělat čas na to říct, jak se mi líbilo vidět vás, jak vysvětlujete lidem, kteří tuto regresi oznámili, jak se to stalo a jaké bylo uvažování. Takhle by to mělo fungovat. Kvůli tomu jsem měl pocit, že to byl dobrý nápad, moje chyba.“Četl jsme to česky třikrát, a stejně jsem to nepochopil. Přitom v originálu to nijak zamotané není.
A protože proklínám lidi, kteří ignorují nahlášené regrese s odůvodněním "opravuje to chybu", měl bych si udělat čas a říci vám, jak rád vidím, když vysvětlujete lidem, kteří regresi nahlásili, proč se to stalo a jaké vás k tomu vedly důvody. *Takhle* by to mělo fungovat. "Moje chyba, tohle byl důvod, proč jsem si myslel, že je to dobrý nápad."
man insmod