Skip to main content

LazyOwn Framework EUVDEUVD-2026-51307

| CVE-2026-68502 CRITICAL
Missing Authentication for Critical Function (CWE-306)
2026-07-30 GitHub_M
9.8
CVSS 3.1 · Vendor: GitHub_M
Share

Severity by source

Vendor (GitHub_M) PRIMARY
9.8 CRITICAL
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
vuln.today AI
9.8 CRITICAL

Unauthenticated Socket.IO handler reaches subprocess.call(shell=True) over the network with no user interaction, giving low-complexity RCE and full C/I/A impact, so PR:N and AC:L.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

4
Patch available
Jul 30, 2026 - 22:20 EUVD
Source Code Evidence Fetched
Jul 30, 2026 - 21:33 vuln.today
Analysis Generated
Jul 30, 2026 - 21:33 vuln.today
CVE Published
Jul 30, 2026 - 20:38 cve.org
CRITICAL 9.8

DescriptionCVE.org

LazyOwn RedTeam/APT Framework is an AI-powered C2 and red-team operations framework. Prior to 0.2.154, LazyOwn's lazyc2.py registers an unauthenticated Socket.IO input event handler that dispatches data.get('value') to LazyOwnShell.one_cmd, reaching LazyOwnShell.do_cmd and subprocess.call(command, shell=True), allowing unauthenticated remote code execution in the C2 process. This issue is fixed in 0.2.154.

AnalysisAI

Remote code execution in LazyOwn RedTeam/APT Framework (grisuno/lazyown) before 0.2.154 allows unauthenticated attackers to run arbitrary OS commands on the C2 server. The lazyc2.py component registers a Socket.IO input event handler with no authentication that passes attacker-supplied data.get('value') through LazyOwnShell.one_cmd into subprocess.call(command, shell=True), yielding full command execution in the C2 process. CVSS 9.8 (AV:N/AC:L/PR:N/UI:N) reflects unauthenticated network-reachable execution; no public exploit identified at time of analysis, though the vulnerable code path and its fix are fully disclosed in the vendor commit.

Technical ContextAI

LazyOwn is an AI-powered command-and-control (C2) and red-team operations framework written in Python, using a Flask/Flask-SocketIO web server (lazyc2.py) as its team-server interface. The root cause is CWE-306 (Missing Authentication for a Critical Function): a WebSocket/Socket.IO event handler was exposed without the @login_required / current_user.is_authenticated checks applied to the framework's other routes. Because the handler forwards the raw 'value' field to LazyOwnShell.do_cmd, which executes it via subprocess.call(..., shell=True), any client that can open a Socket.IO connection to the server reaches a shell interpreter. The affected package is identified by CPE cpe:2.3:a:grisuno:lazyown, and the fix commit both adds @login_required decorators to numerous Socket.IO handlers (connect, handle_input, pty_input, resize, etc.) and hardens credential handling with an is_insecure_credential() check and auto-generated strong credentials.

RemediationAI

Upgrade to LazyOwn 0.2.154 or later, which is the vendor-released patch (https://github.com/grisuno/LazyOwn/releases/tag/release/0.2.154); this release adds @login_required authentication to the previously unauthenticated Socket.IO handlers (connect, handle_input, pty_input, resize and others) that reached the shell sink, per commit 2e1e3a7b5da8149ae28a970b5883aefa42921652 and advisory GHSA-fr84-8cfg-59w4. If immediate upgrade is not possible, do not expose the LazyOwn C2 web/Socket.IO interface to untrusted networks: bind it to localhost or a management VLAN and place it behind a firewall or reverse proxy that requires authentication, which prevents anonymous clients from opening the Socket.IO connection at the cost of requiring VPN/bastion access for operators. Additionally, rotate to strong, non-default C2 credentials - the same patch introduces is_insecure_credential() to reject weak/empty logins (e.g. 'LazyOwn'/'admin'/'root', passwords under 12 characters), so operators should assume any instance started with default credentials was also weakly protected.

Share

EUVD-2026-51307 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy