CVE Upozornenie: Knižnica API jazyka Python so závažným rizikom vzdialeného spustenia kódu

CVE Upozornenie: Knižnica API jazyka Python so závažným rizikom vzdialeného spustenia kódu

Nebezpečná deserializácia YAML v yaml.Loader v transmute-core pred verziou 1.13.5 umožnila útočníkom spustiť ľubovoľný kód v Pythone.

Náš pentester Josef objavil zraniteľnosť vo verejnej knižnici pythonu, ktorú používa rozhranie API REST aplikácie. Zraniteľnosť bola nájdená v podpore knižnice pre rôzne typy obsahu, ktoré by mohli byť použité na komunikáciu s API. Hoci predvoleným typom obsahu pre API bol JSON, zistilo sa, že knižnica podporuje aj YAML.

Problém vznikol preto, že knižnica používala nesprávne nakonfigurovanú knižnicu na parsovanie YAML - pyYAML, ktorá ju robila zraniteľnou voči nebezpečnej deserializácii YAML. To znamenalo, že útočník mohol zneužitím tejto zraniteľnosti spustiť ľubovoľný kód (tzv. Remote Code Execution).

Na odhalenie zraniteľnosti náš tím vyskúšal rôzne typy obsahu pri interakcii s rozhraním API. Pri niektorých nepodporovaných typoch obsahu API reagovalo chybovou správou, že daný typ obsahu nie je podporovaný, zároveň však uviedlo všetky podporované typy obsahu, z ktorých jeden bol YAML.

Keďže typ obsahu YAML sa v API nepoužíva často a keďže náš tím z iných zistení vedel, že riešenie je napísané v jazyku Python, okamžite sa pokúsil využiť známy vektor v parsovaní YAML v jazyku Python - Unsafe Deserialization. Tento vektor sa ukázal ako platný a podarilo sa dosiahnuť vzdialené spustenie kódu. Tým sa neúmyselne získal prístup k citlivým informáciám o implementácii a konfigurácii aplikácie, ktoré mohol útočník potenciálne zneužiť.

Objavenie tejto zraniteľnosti nám umožnilo upozorniť klienta a poskytnúť dočasné odporúčania na nápravu, keďže používanú knižnicu neudržiaval, oslovili sme autora knižnice, nahlásili zraniteľnosť spolu s návrhom na odstránenie problému a podali žiadosť o identifikátor CVE, ktorý bol prijatý a identifikovaný ako CVE-2023-47204. Autor knižnice okamžite vydal novú, opravenú verziu. Potom bol klient upozornený, aby problém riešil aktualizáciou knižnice.

Pre organizácie je veľmi dôležité pravidelne vyhodnocovať bezpečnosť svojich systémov a aplikácií, a to prostredníctvom interného testovania aj externého penetračného testovania. Pomáha to identifikovať a riešiť zraniteľnosti skôr, ako ich môžu zneužiť záškodníci.

Záverom možno konštatovať, že zraniteľnosť objavená v knižnici používanej v rozhraní REST API ukázala potenciálne riziká rozšírenia priestoru na útok používaním knižníc tretích strán, ktoré nie sú pravidelne testované ani časovo overené. Slúži ako pripomienka, aby sa pri vývoji softvéru uprednostňovala bezpečnosť a pravidelne sa vykonávali hodnotenia bezpečnosti s cieľom zmierniť potenciálne hrozby.

Kontaktujte nás ešte dnes a premeňte svoje slabiny na silné stránky!

O autorovi

Citadelo
Citadelo
Citadelo je dom plný etických hackerov na vašej strane. Pomáhame otestovať ich informačnú bezpečnosť. Podrobte svoje IT prostredie výzve a odhaľte, do akej miery sú vaše citlivé dáta chránené.
Zobraziť viac od autora

Podobné blogy