Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2025-64485

CVE-2025-64485: CVAT Path Traversal Vulnerability

CVE-2025-64485 is a path traversal vulnerability in CVAT that allows malicious users to create or overwrite files in mounted shares. This article covers the technical details, affected versions, and mitigation.

Published:

CVE-2025-64485 Overview

CVE-2025-64485 is a path traversal vulnerability [CWE-22] in CVAT, an open source interactive video and image annotation tool for computer vision. Versions 2.4.0 through 2.48.1 allow an authenticated user with the User global role to write files to the root of a mounted file share or overwrite existing files. When no file share is mounted, the attacker can fill the import worker container's share directory and exhaust disk space. The maintainers addressed the issue in version 2.49.0.

Critical Impact

Authenticated CVAT users can overwrite arbitrary files on the mounted share, tamper with shared datasets, or trigger denial-of-service through disk exhaustion.

Affected Products

  • CVAT versions 2.4.0 through 2.48.1
  • CVAT import worker container (share directory)
  • CVAT deployments with a mounted file share

Discovery Timeline

  • 2025-11-08 - CVE-2025-64485 published to NVD
  • 2026-06-17 - Last updated in NVD database

Technical Details for CVE-2025-64485

Vulnerability Analysis

The vulnerability stems from CVAT accepting a user-controlled storage field on task and backup creation flows. A user with the User global role could set the storage type in ways that redirected file operations to the mounted share directory. Because CVAT's import worker writes uploaded files under this shared path, an attacker could create new files in the share root or overwrite files with matching names.

When no external share is mounted, writes fall back to the import worker container's internal share directory. Repeated writes in this state exhaust the container's disk, degrading annotation services for all tenants. The impact is scoped to integrity of the shared filesystem and availability of the import worker.

Root Cause

CVAT's serializer exposed the storage attribute as a client-writable field. This allowed the caller to override the server-side storage decision instead of deriving it from database state. The backup logic likewise assigned data["storage"] without validating the source, permitting untrusted values to influence file placement.

Attack Vector

An authenticated attacker submits a task or backup import request with a manipulated storage value. The import worker resolves this input into a filesystem path under the mounted share, then writes the uploaded content. No elevated privileges or user interaction are required beyond a standard User role account.

python
# Patch: cvat/apps/engine/backup.py — force server-controlled storage value
if self._db_data.storage == StorageChoice.CLOUD_STORAGE and not self._lightweight:
    data["storage"] = StorageChoice.LOCAL
else:
    data["storage"] = self._db_data.storage

return self._prepare_data_meta(data)

Source: GitHub commit cace877

python
# Patch: cvat/apps/engine/serializers.py — remove client-writable 'storage' field
'client_files', 'server_files', 'remote_files',
'use_zip_chunks', 'server_files_exclude',
'cloud_storage_id', 'use_cache', 'copy_data', 'storage_method',
'sorting_method', 'filename_pattern',
'job_file_mapping', 'upload_file_order', 'validation_params'

Source: GitHub commit cace877

Detection Methods for CVE-2025-64485

Indicators of Compromise

  • Unexpected files appearing in the root of the CVAT mounted file share directory.
  • Overwritten dataset or annotation files on the share with timestamps correlating to task import events.
  • Rapid disk consumption on the import worker container when no external share is mounted.
  • CVAT API requests from User role accounts containing a storage field in task or backup creation payloads.

Detection Strategies

  • Audit CVAT application logs for task and backup import requests that specify a storage parameter prior to 2.49.0.
  • Monitor filesystem changes on the mounted share using inotify or equivalent, alerting on writes outside expected task subdirectories.
  • Correlate CVAT user activity with file creation events on the share to identify accounts writing outside their scope.

Monitoring Recommendations

  • Track disk utilization on the CVAT import worker container and alert on abnormal growth rates.
  • Log all authenticated CVAT API calls and retain them for post-incident analysis of task creation payloads.
  • Establish baselines for share directory contents and alert on structural drift such as new top-level files.

How to Mitigate CVE-2025-64485

Immediate Actions Required

  • Upgrade CVAT to version 2.49.0 or later on all deployments.
  • Review the mounted file share for unauthorized or overwritten files created since deploying an affected version.
  • Rotate or restrict User role accounts that submitted anomalous task or backup imports.
  • Enforce disk quotas on the import worker container to contain availability impact.

Patch Information

The fix is delivered in CVAT 2.49.0. The patch removes storage from the client-writable serializer fields and forces the backup flow to derive storage from self._db_data.storage. See the GitHub Security Advisory GHSA-x396-w86c-gf6w and the upstream commit for full details.

Workarounds

  • Restrict CVAT account provisioning and reduce the number of users granted the User global role until patched.
  • Mount the CVAT file share as read-only where write access is not required by the workflow.
  • Apply container-level disk quotas or dedicated volumes to isolate import worker storage from other services.
bash
# Upgrade CVAT to the patched release
git checkout v2.49.0
docker compose pull
docker compose up -d

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.