Is jouw WordPress installatie in gevaar door timthumb?

De afgelopen dagen is er veel onrust ontstaan onder gebruikers van WordPress. In het script timthumb.php is een veiligheidslek ontdekt. Dit script wordt in vele WordPress themes gebruikt om dynamische thumbnails te genereren.

Er zijn enkele websites die berichten over malware die verspreid zou worden via WordPress blogs. Onder andere Webwereld schreef over deze malware. Zoals het er nu naar uit ziet, is het timthumb.php de oorzaak van deze malware problemen. Dit veiligheidsrisico is eenvoudig onschadelijk te maken.

Loopt mijn installatie gevaar?

Op het Sucuri security blog is een lijst van themes gepubliceerd, die het timthumb.php script gebruiken. Deze lijst bestaat uit themes in de WordPress theme directory, maar niet alle themes zijn openbaar beschikbaar.

Staat jouw theme niet op de lijst, maar wil je het zekere voor het onzekere nemen, zoek dan in de map van jouw theme naar het ‘timthumb.php’-bestand.

Is dit bestand aanwezig, dan is het noodzakelijk om de volgende voorzorgsmaatregelen te treffen.

Hoe bescherm ik mijn WordPress installatie?

VaultPress heeft een handleiding om dit veiligheidslek onschadelijk te maken gepubliceerd. In het kort, komt dit neer op de volgende wijzigingen in de code van het timthumb.php bestand in jouw theme:

1. Download de meest recente versie van timthumb.php

Download de meest recente versie van het timthumb.php bestand en overschrijf hiermee het huidige timthumb.php bestand in jouw theme.

2. Zet de ALLOW_EXTERNAL constante op false

In de code van het timthumb.php bestand, wordt de ALLOW_EXTERNAL constante gedefineerd. Het kan zijn dat deze op ‘true’ staat. Deze moet op ‘false’ staan, zoals in de volgende code:

define( 'ALLOW_EXTERNAL', false );

3. Verwijder de lijst van websites waarvoor toestemming verleend is

In de code van het timthumb.php bestand staat een array genaamd $ALLOWED_SITES. Dit is een lijst van websites waarvoor toestemming verleend is om bestanden van te downloaden en te gebruiken:

$ALLOWED_SITES = array (
	'flickr.com',
	'picasa.com',
	'img.youtube.com',
	'upload.wikimedia.org',
	'photobucket.com',
	'imgur.com',
	'imageshack.us',
	'tinypic.com'
);

Deze lijst maken we leeg, zodat de code er als volgt uitziet:

$ALLOWED_SITES = array (
);

 4. Zoek naar alternatieve manieren om thumbnails te genereren

WordPress heeft standaard een aantal functies om thumbnails te genereren. Het is dan ook niet nodig om timthumb.php te gebruiken.

Maak jij zelf themes, of beheer je een theme voor een WordPress website, bekijk dan de functie add_thumbnail_size() eens. Deze functie verzorgt vergelijkbare functionaliteit als het timthumb.php script, maar werkt net even anders.

Externe inhoud nooit zomaar vertrouwen

De les die alle WordPress gebruikers hiervan kunnen leren, is om externe inhoud nooit te zomaar te vertrouwen. Op dit moment is het timthumb.php script de meest waarschijnelijke oorzaak van de malware problemen. Het is echter een goed idee om externe inhoud niet zomaar te gebruiken. Externe inhoud als plaatjes kan zich anders voordoen dan het daadwerkelijk is.

Via dit timthumb.php script konden kwaadwillende hackers, code uitvoeren op elk WordPress blog wat dit script gebruikte. Het is dus niet de code van WordPress zelf die hier oorzaak in heeft, maar het externe timthumb.php script.

Got something to say?

Drop me a line on Twitter, I'm @CoenJacobs.