Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door , , 34 reacties
Submitter: bitrocks

In de libraries van het veelgebruikte archiverings- en compressieprogramma 7-Zip zitten kwetsbaarheden waardoor aanvallers dezelfde rechten hebben als ingelogde gebruikers. De kwetsbaarheden werden door Cisco-beveiligingsonderzoeker Jaeson Schultz ontdekt.

De problemen ontstaan door het niet goed valideren van de ingevoerde data, waardoor beveiligingsbugs CVE-2016-2335 en CVE-2016-2334 kunnen bestaan, schrijft Schultz op het Cisco Talos-blog. Nadat de bugs waren gemeld, heeft 7-Zip een fix uitgebracht in versie 16 van de applicatie.

Op The Register legt Schultz uit dat telkens als een gebruiker met bepaalde rechten kwetsbare 7-Zip-code uitvoert op het fysieke systeem, een aanvaller deze kwetsbaarheid kan misbruiken, doordat deze dan met dezelfde rechten code kan uitvoeren.

De kwetsbaarheden bestaan uit een out-of-bounds-leeskwetsbaarheid in de manier waarop 7-Zip udf-bestanden afhandelt. Dit probleem kan in gang gezet worden door invoer te geven met een verkeerd geformuleerde long allocation descriptor.

De andere kwetsbaarheid maakt gebruik van een heap-overflow-kwetsbaarheid, die bestaat in de Archive::NHfs::CHandler::ExtractZlibFile-functionaliteit op het Hfs+-bestandssysteem. Er wordt niet gecheckt of een blok groter is dan het formaat van de buffer, waardoor een blok met de verkeerde grootte de buf-grootte kan overstijgen, wat leidt tot een buffer overflow en vervolgens een heap corruption in CVE-2016-2334, legt Schultz uit op zijn blog.

De laatste versie met patch is via de 7-Zip-site te downloaden voor verschillende besturingssystemen.

Moderatie-faq Wijzig weergave

Reacties (34)

Tip voor de auteur: geef in het artikel aan wat de impact is van kwetsbaarheden, want uit het artikel maak ik niet op of ik er ooit last van zou kunnen krijgen.

Na wat Google werk, interpreteer ik het als volgt:

- De UDF bug is alleen van toepassing als je een speciaal in elkaar gesleuteld UDF bestand opent. Ik weet niet hoe wijdverbreid dit formaat is maar ik moest even opzoeken wat het is.
- De Hfs+ bug is alleen van toepassing op Mac systemen? Verbeter me als ik het verkeerd zie.

Ondanks de voor mij beperkte impact natuurlijk wel gelijk de update uitgevoerd, Better safe than sorry.
- De Hfs+ bug is alleen van toepassing op Mac systemen? Verbeter me als ik het verkeerd zie.
Zoals ik het interpreteer uit de blogpost, gaat het om een bestand dat op een Mac systeem compressed is. Maar mogelijk kan dat ook vervalst worden.
During extraction from an HFS+ image, having compressed files with a "com.apple.decmpfs" attribute and data stored in a resource fork, we land in the above code.
Verder lijkt de HFS+ bug vooral op te treden bij decompressie, maar het kan zijn dat deze routine al aangeroepen wordt bij het openen van het archief.
Block size information and their offsets are kept in a table just after the resource fork header. Prior to decompression, the ExtractZlibFile method reads the block size and its offset from the file. After that, it reads block data into static size buffer "buf". There is no check whether the size of the block is bigger than size of the buffer "buf", which can result in a malformed block size which exceeds the mentioned "buf" size. This will cause a buffer overflow and subsequent heap corruption.
Die impact is dus gewoon: Heel hoog. Ja de kans op een random crash is 0,00..1%, maar als je een bestand uit onbekende bron opent, kan dat altijd een speciaal geprepareerd bestand zijn van een aanvaller, dan maakt het niet uit hoe obscuur de functie is die hij gebruikt, zolang het programma er maar op fout gaat zeg maar.
UDF is een apart bestandsformaat, dat gebeurt dus niet als je een rar, 7z of zip opent. Dat valt dus al erg mee want ik me niet heugen dat ik ooit een dergelijk bestand ben tegengekomen.

Hfs+ is de bestandssysteemindeling van Apple. Elke Windows gebruiker zal daar dus al geen last van hebben. Linux kan het wel ondersteunen maar ik vraag me af of die kwetsbaarheid daar ook voor geld. Sowieso zullen de meeste Linux installaties enkel met BartFS, Ext3 en wellicht NTFS te hebben maken waardoor er niet zo heel veel mensen door getroffen kunnen worden.
7-zip is Windows software, waarom zou je dat op een Linux machine (via Wine?) willen gebruiken? Linux kent genoeg competente archive managers en disk mounters die tal van formaten ondersteunen, waaronder UDF en HFS+. Ik denk dus niet dat deze bug Linux gebruikers zal treffen.
Linux heeft volgens mij ook een command line 7-zip beschikbaar.
p7zip http://p7zip.sourceforge.net/

De reden dat je dat wil is dezelfde als voor RAR en de 100+ Windows (vaak zelfs betaalde!) disk archive formaten: Op Linux totaal overbodig wegens tar, xz en iso9660 met loopback, maar nodig om bestanden uit te pakken die op Windows gemaakt zijn.

[Reactie gewijzigd door kidde op 12 mei 2016 19:25]

Ondanks de voor mij beperkte impact [...]
False. De impact is hoog.

Als je een gecomprimeerd bestand een andere extensie geeft, zal 7z dit detecteren en openen. Probeer maar eens voor de grap een .zip bestand de extensie .7z te geven en te openen.

Dat betekent dat een malicious hacker een willekeurige archive (zoals 7z of zip) kan versturen naar een gebruiker - en via deze hack code kan uitvoeren op de machine. Zoals bijv. zijn favoriete ransomware.

tl;dr:
Code execution = bad.
Fixen via update = goed.
Ik wil de impact toch nuanceren. Het is uiteraard fout dat je code kunt executeren door gebruik te maken van buffer overflows, maar de echte fout is dat de gebruiker met te veel rechten draait als dit schadelijke effecten heeft voor je OS/systeem. Onder normale omstandigheden zou je:
a. niet als administrator moeten draaien
b. compress/decompress nooit als root/admin user moeten uitvoeren
c. geen ransom (of andere mal/spy/virus) ware moeten kunnen installeren, omdat je er geen rechten tot hebt.

Wat betreft is de zin die Schultz zegt, 'je met dezelfde rechten code uit kunt voeren' niet meer dan logisch. Zo is het altijd. Met UAC heeft Microsoft juist de veel verbreide, maar verwerpelijke, praktijk om als admin alles te doen aan banden gelegd.

Ik heb niet de artikelen gelezen waarheen verwezen wordt, maar wat ik hierboven schrijft, geldt vrij algemeen. Er is nog wel een toevoeging: als je door een veiligheidslek code kunt executeren waardoor je toegang krijgt tot gevoelige gegevens (bijv. een fout in een SSL verbinding, zoals de afgelopen tijd een paar keer werd gevonden) is wel van hoge impact.
Achterhaald principe, "als ze mn admin/root account maar niet hebben boeit het me niet".

Alle voor hackers interessante informatie is doorgaans opgeslagen onder gebruikers accounts; als de hacker via het browser profiel addons kan plaatsen / aanpassen, is dat net zo interessant als systeembestanden aanpassen. In de browser immers voeren mensen creditcard nummers en NAW gegevens in, en als normale gebruiker slaan ze foto's op en synchroniseren ze met Dropbox.

Als al je /usr bestanden geencrypt worden met root en ransomware, lekker boeien, alles eraf OS overnieuw installeren klaar. Bovendien zitten in een C:/Windows of /usr folder echt geen privacy gevoelige bestanden. Als ik ransomware maakte was ik veel meer geÔnteresseerd in C:/users/... en ~

[Reactie gewijzigd door kidde op 12 mei 2016 19:37]

Achterhaald principe, "als ze mn admin/root account maar niet hebben boeit het me niet".
Dat zei ik dus niet, want ik voegde nog wat toe:
Er is nog wel een toevoeging: als je door een veiligheidslek code kunt executeren waardoor je toegang krijgt tot gevoelige gegevens (bijv. een fout in een SSL verbinding, zoals de afgelopen tijd een paar keer werd gevonden) is wel van hoge impact.
Installeren van ransomware zou op Windows niet moeten mogen als je geen admin bent. En daarom zeg ik dat de impact van genoemd probleem volgens mij wel meevalt/beperkt is.
Ransomware hoeft niet geÔnstalleerd te worden. Zolang ze je Mijn Documenten map kunnen encrypten is het voldoende.
In UNIX land is noot die mallotige noodzaak geweest om als root gewone taken te doen. Daar wordt je root als het perse nodig is. En daar geldt nog sterker: great power comes with great responsibility. Op *NIX is een rm ook echt fini weg.

Eigenlijk geldt op *NIX nog meer dan op Windows dat je moet weten waar je mee bezig bent (en daar ook veel consistenter mee omging en gaat als Windows).

Mijn punt was meer dat wat Schultz zegt geen nieuws is. Als het andersom zou zijn (default meer of minder rechten dan de eigen credentials) dat zou pas gek zijn (als je er niet doelbewust software voor gebruikt, zoals sandboxie of zo).
Tsja, zo had ik het nog niet bekeken. Leve nieuwe inzichten.
Netjes dat je het een tip voor de auteur noemt.
Ik hoop dat tweakers niet dezelfde kant opgaat als vele andere nieuws sites die weinig meer doen dan copy en paste artikelen....
Gelukkig is er al wel een fix,-)
Het is maar de vraag hoe effectief zo'n fix is. 7-zip draait voornamelijk op windows systemen, en bij gebrek aan een fatsoenlijk updatemechanisme kan het jaren duren voordat zo'n fix bij iedereen toegepast is.
Het zou inderdaad mooi zijn als Windows ook eens met een standaard package manager zou komen zoals bijvoorbeeld in linux het geval is.
Ik gebruik nu zelf https://chocolatey.org/ om pakketjes te installeren na een schone Windows installatie, en draai dan via een scheduled task het commando cup all -y die dan alle update's ophaalt indien noodzakelijk. :)
Het punt met dergelijke 3rd party package managers is alleen dat je de bestanden niet uit officiŽle bron haalt en je over de betrouwbaarheid van de repository niet echt controle hebt. Het is handig inderdaad maar uit veiligheidsoogpunt zou ik de bestanden liever direct bij de bron (en onaangepast) willen halen.
chocolatey maakt voornamelijk gebruik van scripts die de installers automatisch van de officiele website download, en deze dan in "silent mode" installeert
Klinkt interessant, maar is het ook betrouwbaar?

Heb vaker zulke soort oplosingen gebruikt (o.a. Ninite) maar dan liep je regelmatig tegen issues aan dat bepaalde pakketten opeens niet meer beschikbaar waren (URL veranderd) of er iets gewijzigd was waardoor een pakketje opeens niet meer wou updaten. Je wilt zoiets geautomatiseerd hebben, maar je wil er ook vervolgens geen omkijken meer naar hebben. Dus niet bijvoorbeeld opeens crapware geÔnstalleerd krijgen naast de plugin die je wilde updaten..
Chocolatey haalt bij veel pakketten de .msi of setup.exe van de site van de ontwikkelaar zelf op. Het is dus geen aparte hosting, maar meer een powershell gebaseerde pakket manager die pakketten automatisch vanaf de ontwikkelaar kan ophalen en updaten.
Verder kun je bij veel pakketten eerst het powershell script laten weergeven voordat je het runt.

[Reactie gewijzigd door Qaatloz op 12 mei 2016 12:08]

Mocht je toegang tot Windows 10 hebben, open powershell en tik "get-command -Module PackageManagement". MS host zelf alleen geen software repositories, en zo ver ik weet is er nog geen -bruikbare- publieke repository.

https://technet.microsoft.com/en-us/library/dn890706.aspx
Microsoft heeft een package manager... De store .. Nu alleen nog speciaal ontwikkelde apps maar van af de zomer release kan je ook w32 apps packagen. Dus wie weet wordt het dan beter (al blijf ik met vragen over het commerciŽle plaatje en daarmee het uiteindelijk succes zitten)
Ik snap je punt over het makkelijke updaten van via een Linux package manager geÔnstalleerde programma's, maar als jij zelf een programma installeert op Linux zonder een packagemanager (bijvoorbeeld source code download die niet in een repo zit, compiled, en installeert), zit je met hetzelfde probleem.

Windows heeft MSI installers, maar die kunnen jammergenoeg niet automatisch updates, of meldingen geven.

Ten tweede gebruiken maar bar weinig programma's daadwerkelijk een MSI bestand om te installeren, in plaats daarvan een exe file die ook nog is allelei rotzooi achterlaat.
Dat ben ik helemaal met je eens. Ervaring leert dat niet technische mensen niets van bugs en de fixes afweten. Het kan inderdaad best wenselijk zijn om tijdens het opstarten een melding weer te geven dat er een update beschikbaar is, de impact van de update en waar die te downloaden is.

edit: typo

[Reactie gewijzigd door crime op 12 mei 2016 22:20]

"Nadat de bugs waren gemeld, heeft 7-Zip een fix uitgebracht in versie 16 van de applicatie." ;)

Maar ook even linkje toegevoegd onderaan nu :)
Voor mensen die wat meer over (de basis van) buffer overflows willen weten is hier een video "Buffer Overflow Attack - Computerphile"
https://www.youtube.com/watch?v=1S0aBV-Waeo
De bugs die gefixed zijn bij 16.0:
- bzip2 decoder -mmt2 reported E_FAIL (for k_My_HRESULT_WritingWasCut case),
if we extract partial file.
- 7z solid update (hang in break)
- sha1 worked incorrectly for call after call with ((size & 3) != 0)
- 7z update bcj bugs were fixed.
- split (aaa.001) fixed
- iso loop fix
- rar4 multivol -stdin kpidSize
- drag and drop 1<2.txt
- memory access violation fix
Handig om dit te weten! Zal snel mijn 7zip updaten :)
Handig om dit te weten! Zal snel mijn 7zip updaten :)
Niet alleen je 7zip, maar ook alles wat intern van een outdated versie van 7zip gebruik zou kunnen maken. Gebruik je bijv. image viewer software die ook compressed archives kan openen? Dikke kans dat die een outdated versie van 7zip aan boord heeft.
Gebruik je bijv. image viewer software die ook compressed archives kan openen? Dikke kans dat die een outdated versie van 7zip aan boord heeft.
Nou nou nou, er is eigenlijk best een dikke kans van niet.

Er zijn enorm veel libraries die met compressie om kunnen gaan, incl. native support voor compressed archives in o.a. .NET en Java. De meest gebruikte library voor ZIP-ish files is bijv. libzip of een port daarvan zoals #ziplib. 7z wordt vaak gelezen via de LZMA libs.

Het wordt pas spannend als de image viewer ook formaten aankan zoals RAR - en ook daarvoor zijn ports beschikbaar die niet vulnerable zijn zoals SharpCompress.
[...]

Nou nou nou, er is eigenlijk best een dikke kans van niet.
Een van de meest populaire image viewers voor comics en manga is CDisplayEX. En laat die nou net de 7zip library gebruiken als archive file decompressor.

Op dit item kan niet meer gereageerd worden.



Apple iOS 10 Google Pixel Apple iPhone 7 Sony PlayStation VR AMD Radeon RX 480 4GB Battlefield 1 Google Android Nougat Watch Dogs 2

© 1998 - 2016 de Persgroep Online Services B.V. Tweakers vormt samen met o.a. Autotrack en Carsom.nl de Persgroep Online Services B.V. Hosting door True