Vulnerabilitatea în OpenOffice care permite executarea codului la deschiderea unui fișier

O vulnerabilitate (CVE-2021-33035) a fost identificată în suita de birou Apache OpenOffice care permite executarea codului la deschiderea unui fișier special conceput în format DBF. Cercetătorul care a descoperit problema a avertizat despre crearea unui exploit funcțional pentru platforma Windows. Remedierea vulnerabilității este disponibilă în prezent numai sub forma unui patch în arhiva proiectului, care a fost inclus în versiunile de testare ale OpenOffice 4.1.11. Nu există încă actualizări pentru ramura stabilă.

Problema este cauzată de faptul că OpenOffice se bazează pe valorile fieldLength și fieldType din antetul fișierelor DBF pentru a aloca memorie, fără a verifica dacă tipul real de date din câmpuri se potrivește. Pentru a efectua un atac, puteți specifica un tip INTEGER în valoarea fieldType, dar plasați date mai mari și specificați o valoare fieldLength care nu corespunde mărimii datelor cu tip INTEGER, ceea ce va duce la coada datelor. din câmpul care se scrie dincolo de tamponul alocat. Ca urmare a unui buffer overflow controlat, cercetătorul a reușit să redefinească pointerul de returnare din funcție și, folosind tehnici de programare orientată pe returnare (ROP - Return-Oriented Programming), să realizeze execuția codului său.

Când folosește tehnica ROP, atacatorul nu încearcă să-și plaseze codul în memorie, ci operează pe bucăți de instrucțiuni ale mașinii deja disponibile în bibliotecile încărcate, care se termină cu o instrucțiune de returnare a controlului (de regulă, acestea sunt capetele funcțiilor bibliotecii) . Munca exploit-ului se rezumă la construirea unui lanț de apeluri către blocuri similare („gadget”) pentru a obține funcționalitatea dorită. Gadgeturile folosite în exploit-ul OpenOffice erau cod din biblioteca libxml2 folosită în OpenOffice, care, spre deosebire de OpenOffice însuși, a fost compilat fără mecanismele de protecție DEP (Data Execution Prevention) și ASLR (Address Space Layout Randomization).

Dezvoltatorii OpenOffice au fost anunțați despre problemă pe 4 mai, după care o dezvăluire publică a vulnerabilității a fost programată pentru 30 august. Întrucât actualizarea la ramura stabilă nu a fost finalizată până la data programată, cercetătorul a amânat dezvăluirea detaliilor pentru 18 septembrie, dar dezvoltatorii OpenOffice nu au reușit să creeze versiunea 4.1.11 până la această dată. Este de remarcat faptul că, în timpul aceleiași cercetări, a fost identificată o vulnerabilitate similară în codul de suport al formatului DBF din Microsoft Office Access (CVE-2021–38646), ale cărei detalii vor fi dezvăluite ulterior. Nu s-au găsit probleme în LibreOffice.

Sursa: opennet.ru

Adauga un comentariu