Efter 20 år er en sårbarhed i kompressions-algoritmen Lempel-Ziv-Oberhumer (LZO) omsider blevet lappet.
Det har taget så længe at få hullet lukket, fordi koden har flydt rundt i udvikler-miljøet, hvor den er blevet genbrugt igen og igen.
Det betyder, at sårbarheden i årevis har været særdeles udbredt i eksempelvis massevis af open source-libraries, Android-telefoner, Samsung-telefoner og en række andre enheder.
Den anvendes i eksempelvis det amerikanske rumfarts-agentur Nasas Mars-robot, OpenVPN, Mplayer2, FFmpeg og Linux-kernen, mens varianten LZ4 anvendes til kompression i Solaris' ZFS, Apaches Hadoop samt FreeBSD.
Kompressions-algoritme
LZO-algoritmen blev skrevet i 1994 af Markus Oberhumer. Det er en kompressions-algoritme, der sætter skub i hastigheden i en række funktioner.
Algoritmen er mest anvendt i applikationer til video-transmissioner eller lignende, hvor der er behov for at sende store billed-filer.
Sårbarheden er blevet opdaget af sikkerhedsmanden Don Bailey efter en manuel gennemgang af hele koden.
"På grund af den stigende popularit er LZO blevet omskrevet af masser af udvikler-firmaer med henblik på både lukkede og åbne systemer. Disse omskrivninger har imidlertid altid været baseret på Oberhumers open source-implementering. Det betyder, at de alle har arvet sårbarheden," skriver Don Baily i en blog-post.
Her skriver han også, at stort set det samme hul i koden er blevet overført til LZ4.
Ifølge Don Bailey gør sårbarheden, at koden er åben, når der afvikles en Literal Run.
"Ved at angribe denne funktionalitet kan en hacker få adgang til data, der kan udnyttes til at overtage kontrollen over applikationer. Det giver potentielt mulighed for at kompromitere systemet," lyder det fra Don Bailey.
Hackere kan eksempelvis få adgang via skannere og lignende.
Langt de fleste af de ramte open source-distributioner, der anvender LZO og LZ4 er opmærksom på sårbarheden og er i fuld gang med at implementere rettelser. Du kan læse om deres patches her.