CVE-2025-66908
MediumCVSS 5.3Exploitation Probability (EPSS)
Low risk36th percentile - higher than 36% of all known CVEs
Summary
Turms AI-Serving module v0.10.0-SNAPSHOT and earlier contains an improper file type validation vulnerability in the OCR image upload functionality. The OcrController in turms-ai-serving/src/main/java/im/turms/ai/domain/ocr/controller/OcrController.java uses the @FormData(contentType = MediaTypeConst.IMAGE) annotation to restrict uploads to image files, but this constraint is not properly enforced. The system relies solely on client-provided Content-Type headers and file extensions without validating actual file content using magic bytes (file signatures). An attacker can upload arbitrary file types including executables, scripts, HTML, or web shells by setting the Content-Type header to "image/*" or using an image file extension. This bypass enables potential server-side code execution, stored XSS, or information disclosure depending on how uploaded files are processed and served.
Risk Assessment
The risk includes the possibility of uploading malicious files, which can lead to server-side code execution, stored XSS, or information disclosure, threatening system integrity and confidentiality.
Recommendation
It is recommended to immediately upgrade the Turms AI-Serving module to a version newer than v0.10.0-SNAPSHOT and implement file content validation based on magic bytes, not just Content-Type headers and extensions.
Related vulnerabilities
- CVE-2026-96809Critical
The EduAdmin Booking plugin (eduadmin-booking) by MultiNet Interactive AB contains an SQL Injection vulnerability (improper neutralization of special elements in SQL commands). It allows an attacker to perform blind SQL injection. This issue affects versions from n/a before 6.0.0.
- CVE-2026-96331Critical
The Ajax Search Pro plugin (ajax-search-pro) by wpdreams contains an SQL Injection vulnerability (improper neutralization of special elements in SQL commands). It allows an attacker to perform blind SQL injection. This issue affects versions from n/a through 4.29.1.
- CVE-2026-96330Critical
The tagDiv Opt-In Builder plugin (td-subscription) by tagDiv contains an SQL Injection vulnerability (improper neutralization of special elements in SQL commands). It allows an attacker to perform blind SQL injection. This issue affects versions from n/a through 1.7.6.
- CVE-2026-96328Critical
The JNews - Pay Writer plugin (up to version 12.0.1) contains an SQL Injection vulnerability due to improper neutralization of special elements in SQL commands. This allows an attacker to perform a Blind SQL Injection attack.
- CVE-2026-96327Critical
The WPLMS plugin (versions before 1.9.9.8.2) contains an SQL Injection vulnerability due to improper neutralization of special elements in SQL commands. This allows an attacker to perform a Blind SQL Injection attack.
- CVE-2026-94503Critical
The Zombify plugin (up to version 1.7.7) contains an Unrestricted Upload of File with Dangerous Type vulnerability, allowing an attacker to upload a web shell to the web server.
- CVE-2026-93947Critical
The Traveler plugin (up to version 3.2.9) contains an SQL Injection vulnerability due to improper neutralization of special elements in SQL commands. This allows an attacker to perform a Blind SQL Injection attack.
- CVE-2026-107935Critical
A path traversal vulnerability was found in gvproxy, the network forwarder provided by the gvisor-tap-vsock package. The unauthenticated /services/forwarder/expose endpoint does not validate the caller-supplied socket path, allowing an attacker to delete arbitrary files on the host system.
- CVE-2026-107909Critical
A heap-based out-of-bounds write in the ws_read_frame function (src/bolt/ws.c) and the buffer_apply_mask function (src/bolt/buffer.c) in FalkorDB before 4.20.0 allows a remote unauthenticated attacker to cause a denial of service and possibly corrupt heap memory by sending a WebSocket frame with a 64-bit extended payload length to the Bolt port. The payload length is not bounded, and the only bounds check in buffer_apply_mask is an ASSERT(), which is compiled out in release builds, so the function XORs memory beyond the end of the receive buffer with the attacker-supplied mask key. Only deployments that enable the Bolt endpoint (BOLT_PORT, disabled by default) are affected.
- CVE-2026-107908Critical
A heap-based out-of-bounds write in the BoltReadHandler function (src/bolt/bolt_api.c) in FalkorDB before 4.20.0 allows a remote unauthenticated attacker to cause a denial of service and possibly execute arbitrary code by sending a Bolt RESET message with an attacker-chosen chunk size to the Bolt port. The handler checks the size only with ASSERT(), which is compiled out in release builds, then computes a destination pointer from the wire-supplied 16-bit size and moves buffered data up to about 64 KiB backwards past the start of the read buffer. Only deployments that enable the Bolt endpoint (BOLT_PORT, disabled by default) are affected.
Original NVD description (English source)
Turms AI-Serving module v0.10.0-SNAPSHOT and earlier contains an improper file type validation vulnerability in the OCR image upload functionality. The OcrController in turms-ai-serving/src/main/java/im/turms/ai/domain/ocr/controller/OcrController.java uses the @FormData(contentType = MediaTypeConst.IMAGE) annotation to restrict uploads to image files, but this constraint is not properly enforced. The system relies solely on client-provided Content-Type headers and file extensions without validating actual file content using magic bytes (file signatures). An attacker can upload arbitrary file types including executables, scripts, HTML, or web shells by setting the Content-Type header to "image/*" or using an image file extension. This bypass enables potential server-side code execution, stored XSS, or information disclosure depending on how uploaded files are processed and served.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

