Mae gwendid (CVE-2025-47154) wedi'i nodi yn yr injan JavaScript LibJS a ddefnyddir yn y porwr gwe Ladybird, sy'n caniatΓ‘u gweithredu cod personol yn y system wrth brosesu cod JavaScript wedi'i fformatio'n arbennig. Mae'r gwendid yn cael ei achosi gan ryddhau cof yn y fector m_argument_values_buffer, yr arhosodd pwyntydd iddo yn strwythur arguments_list, a arweiniodd at fynediad i ardal cof a oedd eisoes wedi'i rhyddhau. Mae prototeip gweithredol o'r camfanteisio ar gael.
Cynhaliodd yr ymchwilydd a nododd y broblem brofion aneglur o LibJS, a arweiniodd at 10 damwain. Dangosodd dadansoddiad o un o'r damweiniau y gellir manteisio ar y broblem wrth brosesu cod JavaScript. Roedd y bregusrwydd yn caniatΓ‘u darllen ac ysgrifennu i feysydd mympwyol o gof prosesau. Trefnwyd gweithredu cod yn yr ecsbloet trwy ddisodli'r pwyntydd dychwelyd o'r swyddogaeth rendro. Gan ddefnyddio Rhaglennu sy'n Canolbwyntio ar Ddychwelyd (ROP, mae'r ecsbloet yn cael ei ffurfio o ddarnau presennol o gyfarwyddiadau peiriant sy'n gorffen gyda chyfarwyddyd dychwelyd), ffurfiwyd cadwyn i weithredu'r alwad system execve i lansio cymhwysiad allanol.
Mae porwr Ladybird yn cael ei ddatblygu gan Andreas Kling, a fu unwaith yn gweithio yn Nokia ac a ddatblygodd KHTML, ac yna yn Apple oedd un o ddatblygwyr Safari. Yn y cyfnod datblygu presennol, mae Ladybird yn y cyfnod cyn-alffa, ac mae'n addas i'w ddefnyddio gan ddatblygwyr yn unig. CrΓ«wyd y prosiect yn wreiddiol fel cymhwysiad ar gyfer system weithredu SerenityOS, ond yr haf diwethaf cafodd ei droiβn brosiect ar wahΓ’n a derbyniodd rodd o $1 miliwn. Mae'r porwr wedi'i ysgrifennu yn C++ (penderfynwyd newid i Swift) ac mae wedi'i ddosbarthu o dan y drwydded BSD. Mae'r prosiect yn datblygu ei beiriant LibWeb ei hun, y dehonglydd JavaScript LibJS a llyfrgelloedd cysylltiedig.
Ffynhonnell: opennet.ru
