Heap overflow sebezhetőség az OpenOffice.org és a StarOffice irodai programcsomagokban

Az NGSSoftware kutatói bejelentették, hogy súlyos biztonsági hibákat találtak az OpenOffice.org és a StarOffice irodai programcsomagokban, melyek kihasználásával a támadók tetszőleges kódot futtathatnak az aktuális felhasználó jogaival.

A hibák a WMF és EMF formátumok kezeléséért felelős kódban találhatóak:

1.) svtools\source\filter.vcl\wmf\winwmf.cxx


case W_META_ESCAPE :
...
sal_uInt32 i, nStringLen, nDXCount;
...
aMemoryStream >> aPt.X()
      >> aPt.Y()
      >> nStringLen;

sal_Unicode* pBuf = aString.AllocBuffer( (sal_uInt16)nStringLen );
for ( i = 0; i < nStringLen; i++ )
aMemoryStream >> pBuf[ i ];

A nStringLen változó sal_uInt32 típusú, amit a buffer méretének meghatározásához sal_uInt16-tá cast-olnak, viszont a buffer feltöltésénél használt counter az eredeti 32 bites marad, így az nStringLen-nek 0xFFFF-nél nagyobb értéket adva heap overflow váltható ki, ezzel átírhatunk egy function pointert, így tetszőleges kódot futtathatunk.

2.) svtools\source\filter.vcl\wmf\enhwmf.cxx


case EMR_POLYPOLYGON :

INT32 i, nPoly, nGesPoints;
...
*pWMF >> nPoly >> nGesPoints;
...
pPtAry  = (Point*) new char[ nGesPoints * sizeof(Point) ];

for ( i = 0; i < nGesPoints; i++ )
{
 *pWMF >> nX32 >> nY32;
 pPtAry[ i ] = Point( nX32, nY32 );
}

Az nGesPoints * sizeof(Point) értéket tároló integer túlcsordul, ha nGesPoints > (0x100000000 / sizeof(Point)), így szintén heap overflow váltható ki.

A 3. hiba ehhez nagyon hasonló.

A sebezhetőségek az OpenOffice.org 2.1.0 előtti, és a StarOffice 6, 7, 8 verzióit érintik.

További info:
OpenOffice.org
StarOffice

Hozzászólások

Nem értem, hogy miért 2007. január 4-én jelentenek be egy olyan hibát, ami az OOo Issue Trackerben 2006. október 2. óta benne van a javítással együtt. Hiányolom az újdonságot.

"annyiban talán nem haszontalan, hogy így több userhez eljut az információ, és eldönthetik, hogy malmoznak amíg a disztibúciójuk lenyomja a 2.1-et, esetleg patchli az előző verziókvalamelyikét,"

Egyetértek. Hasonló megfontolásból a __javítatlan___ && __publikus exploittal___ rendelkező MOAB hibákra is ezért kell felhívni a figyelmet.

"agy megpróbálják maguk felrakni valahogyan valahonnan"

A valahonnan / valahogy-nak van helyes és módja.

Letöltés:

http://hu.openoffice.org/

Telepítés.

--
trey @ gépház