- -
-

Security policy

-

The phpMyAdmin developer team is putting lot of effort to make phpMyAdmin as -secure as possible. But still web application like phpMyAdmin can be vulnerable -to a number of attacks and new ways to exploit are still being explored.

-

For every reported vulnerability we issue a phpMyAdmin Security Announcement -(PMASA) and it get’s assigne CVE ID as well. We might group similar -vulnerabilities to one PMASA (eg. multiple XSS vulnerabilities can be announced -under one PMASA).

-

If you think you’ve found a vulnerability, please see Reporting security issues.

-
-

Typical vulnerabilities

-

In this secion, we will describe typical vulnerabilities, which can appear in -our code base. This list is by no means complete, it is intended to show -typical attack surface.

-
-

Cross-site scripting (XSS)

-

When phpMyAdmin shows a piece of user data, e.g. something inside a user’s -database, all html special chars have to be escaped. When this escaping is -missing somewhere a malicious user might fill a database with specially crafted -content to trick an other user of that database into executing something. This -could for example be a piece of JavaScript code that would do any number of -nasty things.

-

phpMyAdmin tries to escape all userdata before it is rendered into html for the -browser.

- -
-
-

Cross-site request forgery (CSRF)

-

An attacker would trick a phpMyAdmin user into clicking on a link to provoke -some action in phpMyAdmin. This link could either be sent via email or some -random website. If successful this the attacker would be able to perform some -action with the users privileges.

-

To mitigate this phpMyAdmin requires a token to be sent on sensitive requests. -The idea is that an attacker does not poses the currently valid token to -include in the presented link.

-

The token is regenerated for every login, so it’s generally valid only for -limited time, what makes it harder for attacker to obtain valid one.

- -
-
-

SQL injection

-

As the whole purpose of phpMyAdmin is to preform sql queries, this is not our -first concern. SQL injection is sensitive to us though when it concerns the -mysql control connection. This controlconnection can have additional privileges -which the logged in user does not poses. E.g. access the phpMyAdmin configuration storage.

-

User data that is included in (administrative) queries should always be run -through DatabaseInterface::escapeSring().

- -
-
-

Brute force attack

-

phpMyAdmin on its own does not rate limit authentication attempts in any way. -This is caused by need to work in stateless environment, where there is no way -to protect against such kind of things.

-

To mitigate this, you can use Captcha or utilize external tools such as -fail2ban, this is more details described in Securing your phpMyAdmin installation.

- -
-
-
-

Reporting security issues

-

Should you find a security issue in the phpMyAdmin programming code, please -contact the phpMyAdmin security team in -advance before publishing it. This way we can prepare a fix and release the fix together with your -announcement. You will be also given credit in our security announcement. -You can optionally encrypt your report with PGP key ID -DA68AB39218AB947 with following fingerprint:

-
pub   4096R/DA68AB39218AB947 2016-08-02
-      Key fingerprint = 5BAD 38CF B980 50B9 4BD7  FB5B DA68 AB39 218A B947
-uid                          phpMyAdmin Security Team <security@phpmyadmin.net>
-sub   4096R/5E4176FB497A31F7 2016-08-02
-
-
-

The key can be either obtained from the keyserver or is available in -phpMyAdmin keyring -available on our download server or using Keybase.

-

Should you have suggestion on improving phpMyAdmin to make it more secure, please -report that to our issue tracker. -Existing improvement suggestions can be found by -hardening label.

-
-
- - -