CVE-2024-39817
Executive Summary
CVE-2024-39817 is an information disclosure vulnerability in Cybozu Office versions 10.0.0 through 10.8.6. The flaw resides in the Custom App search functionality, where a user with login access can view data they are not authorized to see by performing a search under specific conditions. This is a classic case of Insertion of Sensitive Information into Sent Data (CWE-201), where the application inadvertently includes sensitive data in the search results or query responses. The vulnerability has a CVSS score of 0.0 (likely unassigned or placeholder), but the impact is clear: unauthorized data access within the application.
This is not a WordPress plugin or component; it is a standalone enterprise application (Cybozu Office). The attack vector is local (requires authentication), but the consequence is a breach of data confidentiality. No public exploit code or proof-of-concept is available at this time.
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.
No signup required
Supply Chain & Package Security
This vulnerability does not affect NPM, PyPI, Go, or Ruby packages. It is a proprietary enterprise application (Cybozu Office). No supply chain implications are identified.
CVSS Breakdown & Threat Level
- CVSS Score: 0.0 (Unassigned / Placeholder)
- Attack Vector (AV): Local (requires login)
- Attack Complexity (AC): Low (search functionality is standard)
- Privileges Required (PR): Low (authenticated user)
- User Interaction (UI): None
- Scope (S): Changed (data from other users/contexts)
- Confidentiality (C): High (unauthorized data access)
- Integrity (I): None
- Availability (A): None
Threat Level: Medium (due to required authentication but high confidentiality impact).
Deep Dive & Mechanics
The vulnerability is in the Custom App module of Cybozu Office. Custom Apps allow users to create and manage custom databases/forms. The search function within these apps fails to properly enforce access controls when processing search queries. Under specific conditions (likely involving search parameters that bypass permission checks), the application returns data that the requesting user should not have access to.
Root Cause: The application does not validate the user's permissions against the data being searched. When a search is performed, the query is executed against the database without filtering results based on the user's access rights. This is a classic Insecure Direct Object Reference (IDOR) or Missing Function Level Access Control issue, but classified as CWE-201 because the sensitive data is inserted into the sent data (search results).
Attack Scenario:
- An attacker with a valid low-privilege account logs into Cybozu Office.
- The attacker navigates to a Custom App that contains sensitive data (e.g., HR records, financial data).
- The attacker crafts a search query (e.g., using wildcards or specific parameters) that triggers the vulnerability.
- The application returns data from other users' records or restricted fields.
- The attacker exfiltrates the data.
Vulnerable vs. Patched Code
No patch is available. The vulnerable code is in the search handler of the Custom App module. A patched version would need to:
- Validate user permissions before executing the search query.
- Filter results based on the user's access rights.
- Ensure that search parameters do not bypass access control checks.
Vulnerable Code (Conceptual):
def search_custom_app(search_query):
# No permission check
results = db.execute("SELECT * FROM custom_app_data WHERE data LIKE ?", (f"%{search_query}%",))
return results
Patched Code (Conceptual):
def search_custom_app(search_query, user_id):
# Check user permissions
allowed_records = get_allowed_records(user_id)
results = db.execute("SELECT * FROM custom_app_data WHERE id IN ? AND data LIKE ?", (allowed_records, f"%{search_query}%"))
return results
Exploitation & Lab Setup
Red Team (Exploitation)
Prerequisites:
- Valid user account on Cybozu Office 10.0.0 to 10.8.6.
- Access to a Custom App with sensitive data.
Steps:
- Log in to Cybozu Office.
- Navigate to a Custom App (e.g., "Employee Records").
- Use the search bar to perform a search with a wildcard or specific parameter that triggers the vulnerability. Example:
%or*to return all records. - Observe that the search results include data from records the user should not have access to.
- Exfiltrate the data manually or via script.
Proof-of-Concept (No public exploit available):
import requests
session = requests.Session()
login_url = "https://target-cybozu/login"
search_url = "https://target-cybozu/custom_app/search"
# Login
session.post(login_url, data={"username": "attacker", "password": "password"})
# Exploit search
response = session.get(search_url, params={"q": "%"})
print(response.text) # Contains unauthorized data
Blue Team (Detection & Defense)
Detection:
- Monitor search queries in Custom Apps for unusual patterns (e.g., wildcards, broad searches).
- Alert on searches that return an abnormally high number of results.
- Log and review all search activities for unauthorized data access.
Defense:
- Apply the vendor patch when available.
- Implement strict access controls on Custom Apps.
- Use Web Application Firewall (WAF) rules to block suspicious search patterns.
- Enable audit logging for all search operations.
Indicators of Compromise (IOCs)
- Network: Unusual search queries to
/custom_app/searchwith parameters likeq=%orq=*. - Logs: Multiple search requests from a single user returning large result sets.
- System: Unauthorized access to Custom App data in audit logs.
Example IOC (Sigma Rule):
title: Suspicious Custom App Search
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects broad search queries in Cybozu Office Custom Apps
logsource:
product: cybozu
service: office
detection:
selection:
EventID: 1001
SearchQuery: "%"
condition: selection
falsepositives:
- Legitimate administrative searches
level: medium
Detection Engineering
YARA Rule
rule CVE_2024_39817_Cybozu_Search {
meta:
description = "Detects Cybozu Office search requests with wildcard patterns"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2024-39817"
strings:
$search_param = "q=%" ascii nocase
$search_param2 = "q=*" ascii nocase
$custom_app_path = "/custom_app/search" ascii nocase
condition:
any of ($search_param*) and $custom_app_path
}
Sigma Rule
title: Cybozu Office Custom App Search Abuse
id: 87654321-4321-4321-4321-210987654321
status: experimental
description: Detects potential exploitation of CVE-2024-39817 via broad search queries
logsource:
category: application
product: cybozu_office
detection:
selection:
RequestPath: "/custom_app/search"
QueryString|contains: "q=%"
condition: selection
falsepositives:
- Admin testing
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2024-39817 Cybozu Office Custom App Search Exploit";
flow:to_server,established;
content:"/custom_app/search"; http_uri;
content:"q=%"; http_uri;
classtype:attempted-recon;
sid:1000001;
rev:1;
)
Remediation & Mitigation
Immediate Actions:
- Disable Custom App search for non-admin users if possible.
- Implement strict access controls on Custom Apps using Cybozu's built-in permissions.
- Monitor logs for suspicious search activity.
Long-Term Fix:
- Apply the vendor patch when released (currently UNKNOWN/UNPATCHED).
- Upgrade to a patched version of Cybozu Office.
- Conduct a security review of all Custom App configurations.
Workaround:
- Restrict access to sensitive Custom Apps to only authorized users.
- Use a Web Application Firewall (WAF) to block search queries containing wildcards.
Valters IT
What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.