Een groot aantal websites is gevoelig voor een aanval waarbij kwaadwillenden kwaadaardige code kunnen uitvoeren door een afbeelding met foutieve code te uploaden naar bijvoorbeeld een fotoalbum. Er is een workaround; een patch komt dit weekend beschikbaar.
Details van de veiligheidsbug lekten uit voordat ImageMagick-versie 7.0.1 en 6.9.3 gepatcht konden worden, waardoor de kwetsbaarheid al wordt misbruikt. Een van de bugs heeft al een cve-nummer CVE-2016-3714 en ook al een naam: ImageTragick. De bug werd ontdekt door onderzoeker Stewie. Nikolay Ermishkin van Mail.ru vond nog andere problemen, zoals de mogelijkheid om op afstand code uit te voeren.
ImageMagick adviseert gebruikers van de applicatie op webservers enkele regels code toe te voegen aan het policy.xml-bestand. Https-gebruikers wordt aangeraden ook code te wijzigen in het delegates.xml-bestand. Met de gewijzigde bestanden wordt in ieder geval een aantal van de exploits tenietgedaan.
Op de ImageTragick-site, gemaakt door ontwikkelaar en beveiligingsonderzoeker Ryan Huber van Slack, wordt geadviseerd om elk beeldbestand dat geüpload wordt, te checken op de 'magic bytes' die aan het begin van elk beeldbestand moeten staan. Pas als die kloppen, zou een beeldbestand verwerkt mogen worden. Magic bytes zijn de eerste paar bytes van een bestandstype waardoor het type te verifiëren is. Een jpeg-bestand begint bijvoorbeeld met 'FF D8'. De hele lijst staat op Wikipedia.
Mogelijke aanvalsscenario's zijn dat een kwaadwillende een bestand uploadt met een extensie als jpg, png of een andere afbeeldingsextensie. ImageMagick zal daarna het bestand proberen te begrijpen en proberen het plaatje om te vormen in een tussenformaat. Dat kan in sommige gevallen leiden tot een onveilige manier van decoderen en vervolgens tot het uitvoeren van kwaadaardige code op een server, ofwel remote code execution.
Op dit moment is nog niet duidelijk of alle problemen al naar boven gekomen zijn. Tot die tijd zijn volgens Huber ook de workarounds niet te vertrouwen. Het probleem bestaat onder andere doordat ImageMagick meer dan 200 verschillende formaten ondersteunt. Een mogelijkheid voor de toekomst is om de GraphicMagick-fork te gebruiken die een veel kleiner aantal bestandstypen ondersteunt, schrijft Ars Technica.
ImageMagick is een veel gebruikte beeldverwerkingsbibliotheek die onder andere ondersteund wordt door php, Ruby, NodeJS, Python. Veel contentmanagementsystemen, socialmediasites, blogs en dergelijke maken direct of indirect gebruik van ImageMagick om beelden van formaat te veranderen of andere beeldverwerking erop toe te passen.