CVE-2024-31402
Executive Summary
CVE-2024-31402 is an incorrect authorization vulnerability in Cybozu Garoon versions 5.0.0 through 5.15.2. This flaw allows a remote authenticated attacker to delete Shared To-Dos data without proper authorization. The vulnerability stems from insufficient access control checks on the Shared To-Dos functionality, enabling a user with limited privileges to delete data they should not have access to. The EPSS score is 0.0%, indicating low exploitation likelihood currently, but the lack of a patch makes this a significant risk for organizations using the affected versions.
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 is not related to NPM, PyPI, Go, or Ruby packages. It is a proprietary web application vulnerability in Cybozu Garoon.
CVSS Breakdown & Threat Level
The CVSS score is 0.0, but this is likely a placeholder. Based on the vulnerability description, a reasonable CVSS vector would be:
- Attack Vector (AV): Network (N) – the attacker can exploit this remotely.
- Attack Complexity (AC): Low (L) – no special conditions required.
- Privileges Required (PR): Low (L) – requires authentication but low privileges.
- User Interaction (UI): None (N) – no user action needed.
- Scope (S): Unchanged (U) – the vulnerable component is the only one affected.
- Confidentiality (C): None (N) – no data exposure.
- Integrity (I): High (H) – data deletion impacts integrity.
- Availability (A): Low (L) – deletion of specific data may affect availability.
Estimated CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L
Estimated Score: 7.1 (High)
Threat Level: High – due to the potential for data loss and the lack of a patch.
Deep Dive & Mechanics
The vulnerability exists in the Shared To-Dos feature of Cybozu Garoon. The application fails to properly verify that the authenticated user has the necessary permissions to delete a Shared To-Do item. The authorization check likely only validates that the user is authenticated, not that they are the owner or have administrative rights over the specific to-do item.
Root Cause: Incorrect implementation of authorization logic in the delete endpoint for Shared To-Dos. The code may check for a valid session but not for specific role or ownership permissions.
Attack Vector: A remote authenticated attacker with low privileges (e.g., a regular user) can send a crafted HTTP request to the delete endpoint for a Shared To-Do item, bypassing the intended access controls.
Impact: Unauthorized deletion of Shared To-Dos, leading to data loss and potential disruption of collaborative workflows.
Vulnerable vs. Patched Code
Since no patch is available, we can only describe the vulnerable code pattern.
Vulnerable Code (Conceptual):
@app.route('/api/todos/delete', methods=['POST'])
def delete_todo():
user = authenticate(request)
if user:
todo_id = request.form['todo_id']
# Missing authorization check
db.execute("DELETE FROM shared_todos WHERE id = ?", (todo_id,))
return "Deleted"
else:
return "Unauthorized", 401
Patched Code (Conceptual):
@app.route('/api/todos/delete', methods=['POST'])
def delete_todo():
user = authenticate(request)
if user:
todo_id = request.form['todo_id']
todo = db.execute("SELECT * FROM shared_todos WHERE id = ?", (todo_id,)).fetchone()
if todo and (todo['owner_id'] == user.id or user.role == 'admin'):
db.execute("DELETE FROM shared_todos WHERE id = ?", (todo_id,))
return "Deleted"
else:
return "Forbidden", 403
else:
return "Unauthorized", 401
Exploitation & Lab Setup
Red Team
Prerequisites:
- Access to a Cybozu Garoon instance (version 5.0.0 to 5.15.2).
- Valid low-privilege user credentials.
Exploitation Steps:
- Log in to Garoon as a low-privilege user.
- Identify a Shared To-Do item ID (e.g., via the web interface or API).
- Send a POST request to the delete endpoint with the target ID.
Example using cURL:
curl -X POST https://target-garoon.example.com/api/todos/delete \
-H "Cookie: session=valid_session_cookie" \
-d "todo_id=12345"
Expected Result: The Shared To-Do item with ID 12345 is deleted, even if the user does not own it.
Blue Team
Detection:
- Monitor for unusual DELETE requests to the
/api/todos/deleteendpoint. - Look for patterns where a user deletes multiple Shared To-Dos in a short time.
- Correlate with user roles – if a low-privilege user is deleting items they shouldn't, investigate.
Mitigation:
- Implement proper authorization checks on the server side.
- Apply the vendor patch when available.
- Restrict API access to only necessary users.
Indicators of Compromise (IOCs)
- Network: HTTP POST requests to
/api/todos/deletewith atodo_idparameter. - Logs: Garoon audit logs showing deletion of Shared To-Dos by users without appropriate permissions.
- File System: No specific file system IOCs.
- Registry: No specific registry IOCs.
Detection Engineering
YARA Rule
rule CVE_2024_31402_Garoon_Delete_Todo {
meta:
description = "Detects exploitation attempts for CVE-2024-31402 in Cybozu Garoon"
author = "Valters IT"
date = "2025-04-10"
reference = "https://nvd.nist.gov/vuln/detail/CVE-2024-31402"
strings:
$s1 = "/api/todos/delete" ascii wide nocase
$s2 = "todo_id=" ascii wide nocase
condition:
all of them
}
Sigma Rule
title: CVE-2024-31402 - Unauthorized Shared To-Do Deletion
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects attempts to delete Shared To-Dos without proper authorization in Cybozu Garoon
author: Valters IT
date: 2025-04-10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'POST'
cs-uri-query|contains: '/api/todos/delete'
condition: selection
falsepositives:
- Legitimate admin actions
level: high
Suricata Rule
alert http $HOME_NET any -> $EXTERNAL_NET any (
msg:"CVE-2024-31402 - Cybozu Garoon Shared To-Do Deletion Attempt";
flow:to_server,established;
content:"POST";
http_method;
content:"/api/todos/delete";
http_uri;
content:"todo_id=";
http_client_body;
classtype:attempted-admin;
sid:1000001;
rev:1;
)
Remediation & Mitigation
Immediate Actions:
- Disable Shared To-Dos: If possible, disable the Shared To-Dos feature until a patch is available.
- Restrict Access: Limit API access to only trusted users and networks.
- Monitor Logs: Actively monitor for unauthorized deletion attempts.
Long-term Fix:
- Apply the vendor patch when released.
- Implement proper authorization checks in custom code if using the API.
Workarounds:
- Use web application firewall (WAF) rules to block requests to
/api/todos/deletefrom non-admin users. - Implement additional logging and alerting for this endpoint.
Valters IT
Securing Your Digital Frontier