I JavaScript-motorn LibJS, som anvÀnds i webblÀsaren Ladybird, har en sÄrbarhet upptÀckts (CVE-2025-47154) som möjliggör exekvering av egen kod i systemet vid behandling av speciellt utformat JavaScript. SÄrbarheten uppstÄr pÄ grund av att minne frigörs pÄ vektorn m_argument_values_buffer, som fortfarande har en pekare i strukturen arguments_list, vilket leder till Ätkomst till ett redan frigjort minnesomrÄde. En fungerande prototyp av ett exploit Àr tillgÀnglig.
Forskaren som upptĂ€ckte problemet genomförde fuzzing-tester av LibJS, under vilka 10 krascher registrerades. Analysen av en av krascherna visade att problemet kan utnyttjas vid behandling av JavaScript. SĂ„rbarheten tillĂ€t lĂ€sning och skrivning till godtyckliga minnesomrĂ„den i processen. Exekvering av koden organiserades i exploit genom att ersĂ€tta returpekaren frĂ„n ritningsfunktionen. Genom anvĂ€ndning av retur-orienterad programmering (ROP â Return-Oriented Programming, dĂ€r exploiten skapas av befintliga bitar av maskininstruktioner som avslutas med en returinstruktion) bildades en kedja för att exekvera systemanropet execve för att starta ett externt program.
WebblÀsaren Ladybird utvecklas av Andreas Kling, som en gÄng arbetade pÄ Nokia och var involverad i utvecklingen av KHTML, för att senare vara en av utvecklarna av Safari pÄ Apple. Ladybird Àr för nÀrvarande i pre-alpha-stadiet, endast avsedd för utvecklare. Projektet skapades ursprungligen som en applikation för operativsystemet SerenityOS, men separerades i ett eget projekt förra sommaren och fick en donation pÄ 1 miljon dollar. WebblÀsaren Àr skriven i C++ (ett beslut har fattats att gÄ över till Swift) och distribueras under BSD-licens. Projektet utvecklar sin egen motor LibWeb, JavaScript-tolken LibJS och relaterade bibliotek.
KĂ€lla: opennet.ru
