CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-2249

The Open Door Policy: Unauthenticated RCE in METIS DFS

Alon Barad
Alon Barad
Software Engineer

Feb 11, 2026·7 min read·79 visits

Executive Summary (TL;DR)

Critical Unauthenticated RCE (CVSS 9.8) in METIS DFS devices <= 2.1.234-r18. The application exposes a `/console` endpoint that accepts system commands without authentication. Patch immediately to version 2.1.235-r19 or block access to the web interface.

In the high-stakes world of maritime and industrial data analytics, the METIS Data Fusion System (DFS) serves as a critical nervous system. However, a startling oversight in version control turned these devices into wide-open doors for attackers. CVE-2026-2249 represents the worst-case scenario for edge devices: a hardcoded, unauthenticated web console exposing a direct shell to the operating system. With a CVSS score of 9.8, this isn't just a vulnerability; it's a welcome mat for remote command execution, allowing anyone with network access to execute commands as the 'daemon' user without a password, a key, or even a polite knock.

The Hook: The Ghost in the Machine

In the world of OT (Operational Technology) and maritime systems, "Data Fusion" sounds sophisticated. It implies the elegant merging of sensor data, navigation metrics, and engine diagnostics into a single source of truth. METIS Cyberspace Technology built their DFS (Data Fusion System) to do exactly that. But as any seasoned hacker knows, the more complex the system, the simpler the mistake that brings it down.

Imagine buying a high-tech, reinforced steel safe. It has biometric scanners, a timed lock, and seismic sensors. But around the back, the manufacturer left a post-it note saying "Debug Mode" pointing to a generic latch that opens the door. That is CVE-2026-2249 in a nutshell.

We aren't dealing with a complex heap overflow or a race condition that requires nanosecond precision here. We are dealing with a web application that simply forgot to ask, "Who are you?" before handing over the keys to the kingdom. Specifically, the oscore firmware versions up to 2.1.234-r18 expose a /console endpoint. This isn't a restricted API; it is a direct conduit to the underlying Linux shell, running with daemon privileges. For an attacker, this is the holy grail: Remote Command Execution (RCE) with zero friction.

The Flaw: A Console for Everyone

The root cause here is a classic instance of CWE-306: Missing Authentication for Critical Function. Somewhere in the development lifecycle, a developer likely needed a quick way to debug the appliance during field tests or QA. They implemented a web-based terminal—a convenient feature when you don't want to hook up a serial cable or configure SSH keys.

The logic failure was catastrophic but simple: the routing configuration for the /console URI lacks any middleware to verify a session token, an API key, or a username. The web server treats a request to execute a shell command with the same casual indifference as a request for the site's favicon.

Usually, when we see RCEs, they involve chaining an authentication bypass with an arbitrary file upload or an insecure deserialization flaw. Here, the vendor removed the middleman. The application logic effectively says: "If you can reach this URL, you are the administrator." It blindly passes input parameters from the HTTP request directly to a system shell execution function (likely popen, system, or exec).

The Code: Anatomy of a Screw-Up

While the exact proprietary source code isn't public, the behavior describes a pattern we see all too often in embedded web servers (often Python/Flask, Node.js, or Go). Let's reconstruct the crime scene based on the vulnerability behavior.

The Vulnerable Pattern

In the vulnerable version (<= 2.1.234-r18), the routing logic likely resembled this pseudo-code:

# VULNERABLE CODE (Hypothetical Reconstruction)
@app.route('/console', methods=['POST'])
def web_console():
    # No @login_required decorator!
    command = request.form.get('cmd')
    
    # DIRECT execution of user input
    # This is the "Game Over" line
    output = subprocess.check_output(command, shell=True)
    
    return jsonify({'output': output})

Notice the absence of any @login_required or session validation. If the request hits the endpoint, the code runs. The shell=True (or equivalent) parameter allows for command chaining, pipes, and redirection, giving the attacker full flexibility.

The Fix

In version 2.1.235-r19, the vendor likely applied one of two fixes: either removing the route entirely (the best option for production) or enforcing strict authentication middleware.

# PATCHED CODE
from core.auth import login_required, admin_only
 
@app.route('/console', methods=['POST'])
@login_required  # Step 1: Prove you are a user
@admin_only      # Step 2: Prove you are an admin
def web_console():
    # Even with auth, shell=True is dangerous,
    # but at least the door is locked now.
    ...

The simplicity of the flaw makes it terrifying. There was no clever obfuscation to decode, no memory layout to map—just a URL that shouldn't have been there.

The Exploit: Walking Through the Open Door

Exploiting this vulnerability requires no special tooling. A web browser is enough to verify it, and curl is enough to weaponize it. The barrier to entry is effectively zero.

The Attack Chain

  1. Recon: The attacker scans port 80/443 on the target IP.
  2. Verification: A simple POST request confirms the vulnerability.
  3. Weaponization: A reverse shell is injected.

A Warning on "Fake" Exploits

During my research, I found a repository named NightlyAudit/CVE-2026-2249 claiming to contain an exploit. Do not use it. It directs users to a suspicious third-party download link. This is a common tactic: attackers prey on security researchers and script kiddies looking for a quick win by bundling malware into fake PoCs. The real exploit is trivial enough that you don't need a shady Python script to pull it off. If you can type curl, you can exploit this.

The Impact: Sinking the Ship

Why is this a critical issue? METIS DFS units are often deployed in maritime or industrial environments. They aggregate data from sensors, engines, and navigation systems. Compromising this device allows an attacker to intercept sensitive telemetry, falsify sensor data, or use the device as a pivot point into the wider Operational Technology (OT) network.

While the commands run as daemon and not root, privilege escalation on embedded Linux systems is often trivial due to outdated kernels or insecure file permissions. Furthermore, daemon usually has network access.

An attacker could:

  • Exfiltrate Data: Steal configuration files, logs, and proprietary algorithms.
  • Lateral Movement: Scan the internal network (using the DFS as a proxy) to find PLCs or HMI interfaces.
  • Botnet Recruitment: Install Mirai or similar malware to use the device for DDoS attacks.
  • Ransomware: Encrypt the local filesystem, rendering the data fusion capabilities useless until a ransom is paid.

In a maritime context, losing access to data fusion systems could blind the crew to critical engine diagnostics in the middle of the ocean. This moves the impact from "digital annoyance" to "physical safety risk."

The Fix: Closing the Hatch

METIS Cyberspace Technology SA acted quickly, releasing oscore 2.1.235-r19 on the same day the CVE was published. The primary mitigation is straightforward: Update immediately.

Remediation Steps

  1. Identify: Scan your network for METIS DFS devices. Check the version string in the web UI footer or headers.
  2. Patch: Apply the oscore 2.1.235-r19 update provided by the vendor.
  3. Verify: Attempt to access http://<device-ip>/console. You should receive a 404 Not Found or a 403 Forbidden response.

Defense in Depth

If patching is not immediately possible (common in maritime environments with low bandwidth), you must implement network controls:

  • WAF Rules: Block any requests to */console* at the network edge.
  • Segmentation: Ensure these devices are not directly exposed to the internet. They should live behind a VPN or on an isolated OT VLAN.
  • Monitoring: Alert on any outbound connections from the DFS device to the internet, especially on non-standard ports, which would indicate a reverse shell attempt.

Official Patches

METIS Cyberspace Technology SAVendor Homepage and Support

Technical Appendix

CVSS Score
9.8/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Affected Systems

METIS DFS (Data Fusion System)

Affected Versions Detail

Product
Affected Versions
Fixed Version
METIS DFS
METIS Cyberspace Technology SA
<= oscore 2.1.234-r18oscore 2.1.235-r19
AttributeDetail
CWE IDCWE-306 (Missing Authentication)
Attack VectorNetwork (AV:N)
CVSS Score9.8 (Critical)
Privileges RequiredNone (PR:N)
ImpactFull System Compromise (RCE)
Current StatusPatched / PoC Available

MITRE ATT&CK Mapping

T1190Exploit Public-Facing Application
Initial Access
T1059.004Command and Scripting Interpreter: Unix Shell
Execution
T1068Exploitation for Privilege Escalation
Privilege Escalation
CWE-306
Missing Authentication for Critical Function

The software does not perform any authentication for functionality that requires a proveable user identity or consumes a significant amount of resources.

Known Exploits & Detection

GitHub (Fake/Malware Warning)Repository claiming to have an exploit but linking to suspicious external files. Avoid downloading.
ManualTrivial exploitation via POST request to /console with command payload.

Vulnerability Timeline

Vulnerability Discovered by Or Balog
2026-02-11
CVE Assigned and Published
2026-02-11
Vendor Released Patch (oscore 2.1.235-r19)
2026-02-11

References & Sources

  • [1]NIST NVD Entry
  • [2]Cydome Security (Researcher)

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•1 day ago•GHSA-9Q4R-4842-93VW
7.7

GHSA-9Q4R-4842-93VW: Cross-Tenant SQL Injection in Trigger.dev TSQL Query Compiler

A critical cross-tenant SQL injection vulnerability exists in the TSQL query compiler of Trigger.dev, allowing authenticated users to bypass tenant isolation boundaries and read arbitrary ClickHouse analytics logs and execution payloads belonging to other organizations.

Alon Barad
Alon Barad
8 views•6 min read
•1 day ago•GHSA-4672-HWV6-GQ62
5.4

GHSA-4672-HWV6-GQ62: Cross-environment deployment cancellation in Trigger.dev

A logical authorization bypass vulnerability exists in Trigger.dev versions prior to 4.5.6. This flaw allows an authenticated client with a low-trust environment API key, such as development or staging, to cancel active worker deployments in a higher-trust environment like production within the same project. The vulnerability occurs because write operations on deployments were scoped solely by project identifier instead of environment identifier.

Alon Barad
Alon Barad
6 views•6 min read
•1 day ago•GHSA-JQMF-MX4F-HFR6
10.0

GHSA-JQMF-MX4F-HFR6: Multiple Remote Code Execution and Security Flaws in Vibe-Trading AI-Agent Pipeline

An in-depth technical analysis of multiple critical security flaws identified in the Vibe-Trading ecosystem (vibe-trading-ai). These issues range from unauthenticated remote command injection via agent tool executions to arbitrary Python execution through dynamic module loading and unsafe Jinja2 template autoescaping, allowing full system compromise.

Amit Schendel
Amit Schendel
15 views•7 min read
•2 days ago•GHSA-5RMQ-CHC7-M22F
7.5

GHSA-5RMQ-CHC7-M22F: Arbitrary File Read and Path Traversal in Vibe-Trading Platform

An arbitrary file read and path traversal vulnerability in the Vibe-Trading platform allows unauthenticated remote attackers to retrieve sensitive configuration files, API keys, and system secrets. The flaw stems from permissive directory checking in path validation tools and a complete lack of input sanitization in the document reader utility. Remediation was introduced in version 0.1.7 by implementing strict path allowlists, forcing user authentication, and dropping root execution privileges within the container environment.

Alon Barad
Alon Barad
7 views•6 min read
•2 days ago•GHSA-V2F8-6655-7GRJ
10.0

GHSA-v2f8-6655-7grj: Remote Code Execution and Authentication Bypass in vibe-trading-ai

The vibe-trading-ai package prior to version 0.1.7 contains multiple critical security vulnerabilities including unauthenticated remote code execution (RCE) via session message injection, missing authentication on read endpoints, unrestricted file upload, insecure CORS policies, and sensitive key disclosure. Because the application default settings failed open, ran as root within Docker, and bound to all interfaces, remote unauthenticated attackers could compromise host environments containing sensitive trading data.

Amit Schendel
Amit Schendel
11 views•6 min read
•2 days ago•CVE-2026-18140
7.5

CVE-2026-18140: Uncontrolled Recursion in aws-smithy-json Token Skipping Path

CVE-2026-18140 is a denial-of-service vulnerability in the Amazon aws-smithy-json Rust crate. Under-validation of recursion depth within the unknown-key skipping path allows a remote, unauthenticated attacker to cause stack exhaustion and process aborts by sending deeply nested JSON arrays.

Amit Schendel
Amit Schendel
9 views•6 min read