Een onderzoeker heeft in een populair compressiealgoritme een 20-jaar oude bug ontdekt, die ook in de Mars Curiosity Rover aanwezig blijkt te zijn. Via de bug is het in de meeste gevallen mogelijk om een Denial of Service te veroorzaken, hoewel in sommige gevallen ook het uitvoeren van code mogelijk is.
De bug bevindt zich in het Lempel-Ziv-Oberhumer (LZO) algoritme, dat in 1994 door Markus Oberhumer werd ontwikkeld. Het is een zeer geraffineerd en efficiënt compressiealgoritme. Het zit zo goed in elkaar dat het vier tot vijf keer sneller is dan andere compressie-oplossingen zoals zlib en bzip.
Vanwege de snelheid en efficiëntie wordt het algoritme in zowel gesloten als opensourceprojecten gebruikt. Het is bijvoorbeeld aanwezig in vliegtuigen, automotive-systemen en andere ingebedde systemen. Ook OpenVPN, MPlayer2, Libav, FFmpeg, de Linux-kernel, Juniper Junos en nog veel meer programma's en systemen maken er gebruik van.
Onderzoeker Don Bailey ontdekte echter een subtiele bug in de code, die ontstaat als er een "Literal Run" wordt verwerkt. Dit is een stuk gecomprimeerde data die in werkelijkheid niet gecomprimeerd is. Literals zijn ongecomprimeerde bytes waarvan de gebruiker heeft besloten dat ze niet gecomprimeerd moeten worden.
Als het algoritme een Literal Run te verwerken krijgt ontstaat er een integer overflow die bij de meeste implementaties voor een Denial of Service zorgt. Op sommige architecturen is echter ook het uitvoeren van code mogelijk. Het gaat dan met name om op Libav/FFmpeg-gebaseerde software en projecten. Bailey waarschuwde de aanbieders van LZO, die inmiddels allemaal een update hebben uitgebracht.
De onderzoeker merkt op dat het spannend is om een lek te ontdekken dat al twee decennia bestaat, maar dat het ook iets zegt over de manier waarop geprogrammeerd wordt. Ondanks het belang van veilige code en de steeds groter wordende impact van software, zou veilig programmeren en security nog steeds als aparte discipline worden gezien. Maar de één kan niet zonder de ander, stelt Bailey. "Zonder engineering kun je je gebruikers geen security bieden en zonder security kan engineering geen stabiel platform bieden."
Deze posting is gelocked. Reageren is niet meer mogelijk.