CVE-2025-63663
Executive Summary
CVE-2025-63663 is a critical vulnerability in the GT Edge AI Platform, specifically within the /api/v1/conversations/*/files API endpoint. The flaw is an improper access control (CWE-284) that allows an unauthenticated or unauthorized attacker to access files uploaded by other users. This can lead to data breaches, exposure of sensitive information, and potential lateral movement within the platform. The vulnerability affects all versions before v2.0.10, and no public exploit code or proof-of-concept has been released at this time. The vendor has not yet released a patch, but upgrading to v2.0.10 is the recommended mitigation.
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 a specific package manager (NPM, PyPI, Go, Ruby) but is a direct flaw in the GT Edge AI Platform's API. However, if the platform is deployed via container images or third-party packages, organizations should verify the integrity of their deployment artifacts and ensure they are not using vulnerable versions.
CVSS Breakdown & Threat Level
The CVSS score is currently listed as 0.0, which is likely a placeholder. Based on the description, the vulnerability would likely score high due to the following factors:
- Attack Vector (AV): Network (N) – The API is accessible over the network.
- Attack Complexity (AC): Low (L) – No special conditions are required.
- Privileges Required (PR): None (N) – No authentication needed.
- User Interaction (UI): None (N) – No user action required.
- Scope (S): Unchanged (U) – The vulnerability affects only the API.
- Confidentiality (C): High (H) – Unauthorized access to files.
- Integrity (I): None (N) – No file modification.
- Availability (A): None (N) – No denial of service.
Estimated CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Estimated Score: 7.5 (High)
Deep Dive & Mechanics
The vulnerability resides in the /api/v1/conversations/*/files endpoint. The API is designed to allow users to upload and retrieve files associated with their conversations. However, due to improper access control checks, the endpoint does not verify that the requesting user is the owner of the conversation or has the appropriate permissions to access the files.
An attacker can exploit this by sending a GET request to the endpoint with a conversation ID that belongs to another user. For example:
GET /api/v1/conversations/12345/files
If the server does not validate the session or token against the conversation owner, it will return the list of files for that conversation. The attacker can then download any file by specifying the file ID.
The root cause is likely a missing or flawed authorization check in the backend code. The platform may rely on the client to provide the correct conversation ID without verifying that the user is authorized to access that conversation.
Vulnerable vs. Patched Code
Vulnerable Code (before v2.0.10):
@app.route('/api/v1/conversations/<conversation_id>/files', methods=['GET'])
def get_conversation_files(conversation_id):
# No authorization check
files = db.query("SELECT * FROM files WHERE conversation_id = ?", conversation_id)
return jsonify(files)
Patched Code (v2.0.10):
@app.route('/api/v1/conversations/<conversation_id>/files', methods=['GET'])
def get_conversation_files(conversation_id):
user_id = get_current_user_id() # Assume this function returns the authenticated user's ID
# Authorization check: ensure the user owns the conversation
conversation = db.query("SELECT * FROM conversations WHERE id = ? AND user_id = ?", conversation_id, user_id)
if not conversation:
return jsonify({"error": "Unauthorized"}), 403
files = db.query("SELECT * FROM files WHERE conversation_id = ?", conversation_id)
return jsonify(files)
The patched version adds a check to verify that the authenticated user is the owner of the conversation before returning the files.
Exploitation & Lab Setup
Red Team
Lab Setup:
- Deploy a vulnerable instance of GT Edge AI Platform (version < 2.0.10) in a controlled environment.
- Create two user accounts:
user1anduser2. - As
user1, create a conversation and upload a file. - As
user2, attempt to accessuser1's files.
Exploitation Steps:
- Obtain a valid session token for
user2(or no token if no authentication is required). - Send a GET request to the vulnerable endpoint with
user1's conversation ID:GET /api/v1/conversations/1/files - If successful, the server will return a list of files belonging to
user1. - Download any file by appending the file ID:
GET /api/v1/conversations/1/files/1/download
Example cURL command:
curl -X GET http://target.com/api/v1/conversations/1/files -H "Authorization: Bearer <user2_token>"
Blue Team
Detection:
- Monitor API logs for requests to
/api/v1/conversations/*/filesfrom users who do not own the conversation. - Look for patterns of rapid file access across multiple conversation IDs.
- Alert on any access to files without a valid session or token.
Hunting:
- Search for logs where the
user_idin the request does not match theconversation_idowner. - Correlate file access events with user authentication logs.
Mitigation:
- Immediately upgrade to version 2.0.10 or later.
- If upgrade is not possible, implement a Web Application Firewall (WAF) rule to block requests to the vulnerable endpoint from unauthorized users.
- Conduct a thorough review of all API endpoints for similar access control issues.
Indicators of Compromise (IOCs)
- Network: Unusual GET requests to
/api/v1/conversations/*/filesfrom a single IP address across multiple conversation IDs. - Logs: API access logs showing
user_idmismatch between the authenticated user and the conversation owner. - File Access: Unauthorized download of files that are not associated with the requesting user's account.
- System: Unexpected file access patterns in the platform's audit logs.
Detection Engineering
YARA Rule
rule CVE_2025_63663_GT_Edge_AI_Platform_Access_Control {
meta:
description = "Detects unauthorized access to files via CVE-2025-63663"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-63663"
strings:
$api_path = "/api/v1/conversations/" nocase
$files_path = "/files" nocase
condition:
$api_path and $files_path
}
Sigma Rule
title: Unauthorized File Access via CVE-2025-63663
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects attempts to exploit improper access control in GT Edge AI Platform
author: Valters IT
date: 2025/04/10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'GET'
cs-uri-stem|startswith: '/api/v1/conversations/'
cs-uri-stem|endswith: '/files'
condition: selection
falsepositives:
- Legitimate file access by authorized users
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-63663 - Unauthorized File Access Attempt"; flow:to_server; content:"GET"; http_method; content:"/api/v1/conversations/"; http_uri; content:"/files"; http_uri; classtype:attempted-recon; sid:1000001; rev:1;)
Remediation & Mitigation
- Immediate Action: Upgrade to GT Edge AI Platform version 2.0.10 or later.
- Workaround: If upgrade is not possible, implement a WAF rule to block requests to
/api/v1/conversations/*/filesfrom unauthenticated users or users without proper authorization. - Code Review: Conduct a thorough review of all API endpoints to ensure proper access control checks are in place.
- Monitoring: Enable detailed logging for all API requests and set up alerts for suspicious access patterns.
- User Education: Inform users to report any unusual file access or data breaches.
Valters IT
Securing Digital Frontiers