Zranitelnost v programovacím jazyce Python, která byla 15 let přehlížena, je nyní opět v centru pozornosti. Ovlivňuje více než 350 000 projektů a může vést ke vzdálenému spuštění kódu. Informoval o tom server The Hacker News.
Ovlivněné open source repositáře pokrývají řadu softwarového světa, jako je například umělá inteligence/strojové učení, vývoj webu, vývoj softwaru, bezpečnost a správa IT. Bezpečnostní problém, který byl odhalen v roce 2007, je označen jako CVE-2007-4559 a nikdy nebyl opraven. Jediným zmírněním je upozornění v dokumentaci pro vývojáře.
A 15-year-old unpatched Python #vulnerability potentially affects as many as 350,000 open-source projects, leaving them vulnerable to code execution attacks.
Read: https://t.co/6kkCNnx4nz#infosec #cybersecurity #hacking #technews #technology
— The Hacker News (@TheHackersNews) September 22, 2022
Zranitelnost je známá přes 15 let
Zranitelnost se nachází v balíčku tarfile v jazyce Python. A to v kódu, který používá nesanitizovanou funkci tarfile.extract() nebo vestavěné výchozí nastavení tarfile.extractall(). Jedná se o chybu procházení cest, která útočníkovi umožňuje přepsat libovolné soubory.
Technické podrobnosti k CVE-2007-4559 jsou k dispozici od prvního nahlášení v srpnu 2007. „Zranitelnost je v podstatě následující: Pokud zabalíte soubor /../../../../../../etc/passwd“ a pak ho správce rozbalí, /etc/passwd se přepíše,“ vysvětlil tehdy Matejek.
Začátkem tohoto roku při zkoumání jiného bezpečnostního problému byl CVE-2007-4559 znovu objeven výzkumníkem společnosti Trellix. „Nenapsání bezpečnostního kódu pro úpravu členských souborů před voláním tarfile.extract() nebo tarfile.extractall() má za následek zranitelnost typu directory traversal, která umožňuje přístup k souborovému systému.“ uvedl Charles McFarland, výzkumník zranitelností v týmu Trellix Advanced Threat Research.
Zjednodušeně řečeno, útočník může tuto slabinu zneužít nahráním škodlivého tar souboru. Ten dokáže uniknout z adresáře, do kterého má být extrahován, a dosáhnout spuštění kódu, což mu umožní potenciálně převzít kontrolu nad cílovým zařízením.
„Nikdy neextrahujte archivy z nedůvěryhodných zdrojů bez předchozí kontroly,“ píše se v dokumentaci jazyka Python k souboru tarfile. „Je možné, že soubory jsou vytvořeny mimo cestu, např. členy, které mají absolutní názvy začínající na ‚/‘ nebo názvy souborů se dvěma tečkami ‚..‘.“
Při analýze dopadu výzkumníci společnosti Trellix zjistili, že zranitelnost se vyskytuje v tisících softwarových projektech. Výzkumníci vybrali sadu 257 repositářů, u nichž je pravděpodobnější, že obsahují zranitelný kód, a ručně zkontrolovali 175 z nich, zda jsou postiženy. Tím zjistili, že 61 % z nich je zranitelných.
Na základě 61% míry zranitelnosti ověřené ručně společnost Trellix se odhaduje, že existuje více než 350 000 zranitelných úložišť. Mnohé z nich využívají nástroje strojového učení (např. GitHub Copilot), které pomáhají vývojářům rychleji dokončit projekt.