More

    Sigurnosne greške u Judge0 omogućavaju eskalaciju privilegija i izvršavanje koda izvan sandboxa

    Višestruke kritične sigurnosne greške otkrivene su u sistemu za izvršavanje koda otvorenog koda Judge0 koji bi se mogao iskoristiti za postizanje izvršenja koda na ciljnom sistemu.

    Tri mane, koje su  kritične prirode, omogućavaju “protivniku sa dovoljnim pristupom da izvrši bijeg iz sandboxa i dobije root dozvole na glavnoj mašini”, rekla je australijska firma za cyber sigurnost Tanto Security u izvještaju objavljenom danas.

    Judge0 (izgovara se “nulti sudac”) njegovi održavaoci opisuju kao “open-source sistem za izvršavanje koda na mreži” koji se može koristiti za izgradnju aplikacija koje zahtijevaju funkcije za izvršavanje koda na mreži kao što su procjena kandidata, e-učenje , te online uređivači kodova i IDE.

    Prema njegovoj web stranici, uslugu koriste 23 korisnika kao što su AlgoDaily, CodeChum i PYnative, između ostalih. Projekat je do danas razdvajan 412 puta na GitHubu .

    Nedostaci, koje je otkrio i prijavio Daniel Cooper u martu 2024., navedeni su u nastavku –

    • CVE-2024-28185 (CVSS rezultat: 10,0) – Aplikacija ne uzima u obzir simboličke veze postavljene unutar sandbox direktorija, koje napadač može iskoristiti za pisanje u proizvoljne datoteke i ostvarivanje izvršavanja koda izvan sandboxa.

    • CVE-2024-28189 (CVSS rezultat: 10,0) – Zaobilaznica zakrpe za CVE-2024-28185 koja proizlazi iz upotrebe UNIX komande chown na nepouzdanoj datoteci unutar sandbox-a. Napadač to može zloupotrijebiti stvaranjem simboličke veze (symlink) na datoteku izvan sandbox-a, dozvoljavajući napadaču da pokrene chown na proizvoljnim fajlovima izvan sandbox-a.

    • CVE-2024-29021 (CVSS rezultat: 9,1) – Podrazumijevana konfiguracija Judge0 ostavlja uslugu ranjivom na izbjegavanje sandbox-a putem falsifikovanje zahteva na strani servera (SSRF). Ovo omogućava napadaču sa dovoljnim pristupom Judge0 API-ju da dobije izvršenje koda bez okruženja kao root na ciljnoj mašini.

    Problem je ukorijenjen u Ruby skripti pod nazivom ” isolate_job.rb “, koja je odgovorna za postavljanje sandbox-a, kao i za pokretanje koda i čuvanje rezultata izvršenja.

    Konkretno, to podrazumijeva kreiranje simboličke veze u direktorijumu prije nego što se bash skripta postavi za izvršavanje programa na osnovu jezika za podnošenje, tako da dozvoljava pisanje u proizvoljni fajl na sistemu bez zaštićenog okruženja.

    Haker bi mogao iskoristiti ovu manu da prepiše skripte na sistemu i dobije izvršenje koda izvan sandbox-a i na Docker kontejneru koji izvodi posao slanja.

    Štaviše, napadač bi mogao eskalirati svoje privilegije izvan Docker kontejnera zbog toga što se on izvodi koristeći privilegiranu zastavicu kao što je navedeno u docker-compose.yml.

    “Ovo će omogućiti napadaču da montira Linux host fajl sistem, a napadač tada može pisati datoteke (na primjer, zlonamjerni cron posao) kako bi dobio pristup sistemu”.

    “Od ove tačke napadač će imati potpuni pristup sistemu Judge0 uključujući bazu podataka, interne mreže, Judge0 web server i sve druge aplikacije koje rade na Linux hostu.”

    CVE-2024-29021, s druge strane, ima veze s konfiguracijom koja dozvoljava komunikaciju sa Judge0-ovom PostgreSQL bazom podataka dostupnom unutar interne Docker mreže, čime se omogućava protivniku da oruža SSRF da se poveže na bazu podataka i promijeni tip podataka relevantnog kolone i na kraju dobiti komandni injekciju.

    Nakon odgovornog otkrivanja, nedostaci su uklonjeni u verziji 1.13.1 objavljeno 18. april 2024. Korisnicima Judge0 se savjetuje da ažuriraju na najnoviju verziju kako bi ublažili potencijalne prijetnje.

    Izvor:The Hhacker News

    Recent Articles

    spot_img

    Related Stories