Bringing MySQL to the web

PMASA-2013-3

Announcement-ID: PMASA-2013-3

Date: 2013-04-24

Summary

Locally Saved SQL Dump File Multiple File Extension Remote Code Execution.

Description

phpMyAdmin can be configured to save an export file on the web server, via its SaveDir directive. With this in place, it's possible, either via a crafted filename template or a crafted table name, to save a double extension file like foobar.php.sql. In turn, an Apache webserver on which there is no definition for the MIME type "sql" (the default) will treat this saved file as a ".php" script, leading to remote code execution.

Severity

We consider this vulnerability to be serious.

Mitigation factor

This vulnerability can be triggered only by someone who logged in to phpMyAdmin, as the usual token protection prevents non-logged-in users to access the required form. Moreover, the SaveDir directive is empty by default, so a default configuration is not vulnerable. The $$cfg['SaveDir'] directive must be configured, and the server must be running Apache with mod_mime to be exploitable.

Affected Versions

Versions 3.5.x and 4.0.0 (before -rc3) are affected.

Solution

For 3.5.x, upgrade to phpMyAdmin 3.5.8 or newer; for 4.0.x, upgrade to 4.0.0-rc3 or newer. You can also apply the patches listed below.

References

Thanks to Janek Vind for reporting this issue.

Assigned CVE ids: CVE-2013-3239

CWE ids: CWE-661 CWE-94

Patches

The following commits have been made on the 3.5 branch to fix this issue:

More information

For further information and in case of questions, please contact the phpMyAdmin team. Our website is phpmyadmin.net.