Sigurnosna greška visoke ozbiljnosti otkrivena je u Nuclei kompanije ProjectDiscovery , široko korišćenom skeneru ranjivosti otvorenog koda koji bi, ako se uspješno iskoristi, mogao omogućiti napadačima da zaobiđu provjere potpisa i potencijalno izvrše maliciozni kod.
Praćen kao CVE-2024-43405 , ima CVSS ocjenu 7,4 od maksimalnih 10,0. Utječe na sve verzije Nucleija kasnije od 3.0.0.
“Ranjivost proizlazi iz neslaganja između načina na koji proces verifikacije potpisa i YAML parser rukuju znakovima novog reda, u kombinaciji s načinom na koji se više potpisa obrađuje”, prema opisu ranjivosti.
“Ovo omogućava napadaču da ubaci maliciozni sadržaj u šablon uz održavanje valjanog potpisa za benigni dio šablona.”https://thehackernews.com/2025/01/researchers-uncover-nuclei.html
Nuclei je skener ranjivosti dizajniran da ispita moderne aplikacije, infrastrukturu, platforme u cloud-u i mreže kako bi identifikovao sigurnosne propuste. Motor za skeniranje koristi šablone , koji nisu ništa drugo do YAML datoteke, za slanje specifičnih zahtjeva kako bi se utvrdilo prisustvo greške.
Osim toga, može omogućiti izvršavanje eksternog koda na operativnom sistemu domaćina pomoću protokola koda , dajući na taj način istraživačima veću fleksibilnost u toku radnog testiranja sigurnosti.
Firma za Cloud sigurnost Wiz, koja je otkrila CVE-2024-43405, rekla je da je ranjivost ukorijenjena u procesu verifikacije potpisa šablona, koji se koristi da bi se osigurao integritet šablona dostupnih u zvaničnom spremištu šablona .
Uspješno iskorištavanje ranjivosti je zaobilaženje ovog ključnog koraka verifikacije, omogućavajući napadačima da naprave zlonamjerne šablone koji mogu izvršiti proizvoljan kod i pristupiti osjetljivim podacima s hosta.
“Pošto je ova provjera potpisa trenutno jedina dostupna metoda za validaciju Nuclei šablona, ona predstavlja potencijalnu jednu tačku neuspjeha”, rekao je istraživač Wiza Guy Goldenberg u analizi od petka.
U svojoj srži, problem proizlazi iz upotrebe regularnih izraza (aka regex) za provjeru valjanosti potpisa i sukoba raščlanjivanja koji nastaje kao rezultat korištenja i regex i YAML parsera, čime se otvaraju vrata scenariju u kojem napadač može uvesti ” \r” znak tako da zaobilazi verifikaciju potpisa zasnovanu na regularnim izrazima i da ga YAML parser tumači kao prelom reda.
Drugačije rečeno, ove nedosljednosti raščlanjivanja mogle bi se ulančati kako bi se stvorio Nuclei šablon koji koristi “\r” da uključi drugu liniju “# digest:” koja izbjegava proces verifikacije potpisa, ali biva raščlanjena i izvršena od strane YAML interpretatora.
“Go-ova provjera potpisa zasnovana na regularnim izrazima tretira \\r kao dio iste linije, dok YAML parser to tumači kao prijelom reda. Ova neusklađenost omogućava napadačima da ubace sadržaj koji zaobilazi verifikaciju, ali ga izvršava YAML parser,” objasnio je Goldenberg .
“Logika verifikacije potvrđuje samo prvi # sažetak: red. Dodatni # sažetak: redovi se zanemaruju tokom verifikacije, ali ostaju u sadržaju koji će raščlaniti i izvršiti YAML.”
Osim toga, proces verifikacije uključuje korak za isključivanje linije potpisa iz sadržaja predloška, ali to čini na način da se samo prvi red provjerava, čime se sljedeći redovi ostavljaju neprovjerenim, ali izvršnim.
Nakon odgovornog otkrivanja, ProjectDiscovery ga je pozabavio 4. septembra 2024. sa verzijom 3.3.2 . Trenutna verzija Nucleija je 3.3.7.
“Napadači bi mogli izraditi maliciozne šablone koji sadrže izmanipulisane redova sažetka ili pažljivo postavljene \r prijelome reda kako bi zaobišli verifikaciju potpisa Nucleija”, rekao je Goldenberg.
“Vektor napada za ovu ranjivost nastaje kada organizacije pokreću nepouzdane šablone ili šablone koje doprinosi zajednica bez odgovarajuće validacije ili izolacije. Napadač bi mogao iskoristiti ovu funkcionalnost da ubaci maliciozne šablone, što dovodi do proizvoljnog izvršavanja naredbi, eksfiltracije podataka ili kompromitacije sistema.”
Izvor:The Hacker News