Robocode
CVE-2025-14306
CRITICAL
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessDeliver crafted robot/input to victim
-
ExploitMalicious traversal path enters CacheCleaner
-
ExecutionrecursivelyDelete escapes cache base directory
-
ImpactDelete arbitrary user-accessible files
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that attacker-influenced data (a robot file/package or other input whose stored file path contains '../' traversal sequences) be present in or supplied to Robocode's cache, and that the victim then trigger the CacheCleaner / recursivelyDelete routine on Robocode version 1.9.3.6. Limiting factors that reduce realistic risk: this is a local desktop application rather than a network service, so the attacker must first get malicious content onto the victim's machine and the victim (or an automated cleanup) must run the vulnerable deletion path; damage is bounded to files writable by the Robocode process's user; and only the specific unpatched 1.9.3.6 build (pre-PR #67) is affected. No authentication model applies in the traditional sense - the constraint is local input control plus execution of the cache cleaner, not credentials. |
| Impact | The input assigns a CVSS 4.0 base score of 10.0 (AV:N/AC:L/PR:N/UI:N with full high impact to both vulnerable and subsequent systems), which overstates real-world risk and conflicts with the nature of the flaw. Robocode is a standalone desktop Java application (a robot-tank programming game); its CacheCleaner operates on a local cache directory, so a true network, zero-interaction attack path (AV:N/UI:N) is not supported by the description - exploitation realistically requires attacker-controlled input to reach the local cache-cleaning routine, implying local vector and some user action. The impact rating also appears inflated: the bug is arbitrary file DELETION (an integrity/availability problem), yet the vector claims VC:H/SC:H confidentiality impact that the description does not substantiate. No EPSS score, no CISA KEV listing, and no proof-of-concept are provided, so there is no public exploit identified at time of analysis; the supplemental metrics (AU:Y automatable, U:Red urgency) are vendor/scorer assertions, not evidence of exploitation. Given a niche educational/hobby product with negligible production footprint and no exploitation signals, this is better characterized as a high-CVSS-but-low-real-world-priority issue rather than an urgent threat. Key conflict to verify with vendor: CVSS indicates network/unauthenticated/no-interaction with confidentiality loss, but the description and source code imply local, input-driven arbitrary file deletion with no data disclosure. |
| Exploit ScenarioDerived | An attacker crafts input (e.g., a robot package or file whose stored path contains directory-traversal sequences) that the victim's Robocode installation processes during cache cleaning; when recursivelyDelete runs, the unsanitized path escapes the cache base directory and deletes files elsewhere on the filesystem that the Robocode process can write to. No public exploit code is identified at time of analysis, but the pre-patch recursivelyDelete method visibly lacks any canonical-path containment check. The practical impact is destruction of arbitrary user-accessible files rather than code execution or data theft. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 15, 2026
Arbitrary file deletion via directory traversal in the CacheCleaner component of Robocode 1.9.3.6: the recursivelyDelete routine in net.sf.robocode.cachecleaner.CacheCleaner does not confine deletions to the intended cache directory, so a crafted file path containing '../' sequences can cause the cleaner to delete files outside that directory. Exploitation is not a network attack in practice - an attacker must first get attacker-influenced content (for example a robot file or package whose stored path contains traversal sequences) onto the victim's machine, and the victim must then trigger the cache cleaner; damage is bounded to files writable by the Robocode process's user. No public exploit code has been identified at time of analysis and the flaw is not in CISA KEV, although an upstream fix is public via PR #67 and commit 26b6ba8ed5b2a11a646ce2d5da8d42cd53574b1f. Note the input's CVSS 4.0 score of 10.0 (AV:N/PR:N/UI:N with full subsequent-system impact) overstates real-world risk and conflicts with the assessed local, user-interaction-required vector (CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:N/I:H/A:H).
RemediationAI
Upgrade Robocode to a build that includes the fix from GitHub PR #67 (commit 26b6ba8ed5b2a11a646ce2d5da8d42cd53574b1f), which enforces a canonical-path base-directory check before any file is deleted; because the input data does not name an exact patched release tag, upstream fix availability should be described as PR/commit-based with the released patched version not independently confirmed. If upgrading immediately is not possible, the practical mitigations are: avoid invoking the CacheCleaner / cache-cleanup path (do not trigger cache cleaning and delete the cache manually with a trusted tool) - the trade-off is that stale robot cache entries accumulate and may cause inconsistent build or class-loading behavior; run Robocode under a dedicated low-privilege OS account whose filesystem write and delete permissions are limited to the Robocode work directories - the trade-off is that legitimate robot development workflows that write outside those directories will fail; and treat all third-party robot files, jars and packages as untrusted, blocking import or storage of paths containing '../' before they enter the Robocode cache - the trade-off is manual vetting effort and potential rejection of legitimate packages with unusual internal layouts. Also review any automation that schedules or programmatically triggers Robocode cache maintenance, since that automation can satisfy the 'victim triggers the cleanup' prerequisite without direct user action.
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in maven
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Robocode is a Java-based programming game in which users write robot classes and battle them on a local desktop runtime; the affected code lives in the module robocode.core, class net.sf.robocode.cachecleaner.CacheCleaner, method recursivelyDelete(File). The root cause is CWE-22 (Improper Limitation of a Pathname to a Restricted Directory, i.e. path traversal): the recursive deletion routine walked a File object supplied from cached robot/package data and deleted it without verifying that the resolved path stayed inside the intended cache root, so a path containing '../' segments resolved outside the sandbox and its target was removed. The upstream padch (GitHub PR #67, commit 26b6ba8ed5b2a11a646ce2d5da8d42cd53574b1f) changes the signature to recursivelyDelete(File file, File base), resolves both the candidate and the base with getCanonicalFile().toPath(), throws IOException('Security violation: Attempting to delete a file outside the allowed base directory') when the candidate does not start with the base prefix, and additionally null-checks the File[] returned by listFiles() before iterating. The CPE cpe:2.3:a:robocode:robocode:1.9.3.6:*:*:*:*:*:*:* pins the affected build to the single unpatched 1.9.3.6 release (pre-PR #67).
Know when Robocode gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/AU:Y/R:U/V:D/RE:M/U:Red
Crafted input must be processed locally by the cache cleaner and the user must run it (AV:L/UI:R); impact is arbitrary file deletion beyond the app's cache, so C:N, I:H/A:H, and S:C for host-filesystem reach.
Primary rating from Vendor (tech).
CVSS VectorVendor: tech
DescriptionCVE.org
A directory traversal vulnerability exists in the CacheCleaner component of Robocode version 1.9.3.6. The recursivelyDelete method fails to properly sanitize file paths, allowing attackers to traverse directories and delete arbitrary files on the system. This vulnerability can be exploited by submitting specially crafted inputs that manipulate the file path, leading to potential unauthorized file deletions. https://robo-code.blogspot.com/
Executive ViewAI
Robocode 1.9.3.6 contains a critical-severity arbitrary file deletion flaw in its CacheCleaner component that can delete files outside the intended cache directory when a user triggers cache cleaning after attacker-influenced content is present locally. The practical risk is limited because exploitation requires local content placement and user action, and damage is bounded to files writable by the Robocode process user, but successful abuse could disrupt developer workflows or destroy locally stored project data. Leadership should prioritize targeted mitigation and user awareness while monitoring for an official vendor patch.
No vendor-released patch identified at time of analysis; interim mitigations include avoiding untrusted robot files/packages, running Robocode with least privilege, backing up writable data, disabling or not triggering CacheCleaner where possible, and monitoring for unauthorized file deletions.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
Affected Products (CPE)CVE.org
Improper bounds validation in Robocode 1.9.3.6's RobotFileOutputStream.write(byte[], int, int) method lets a malicious r
Robocode through 1.9.3.5 allows remote attackers to cause external service interaction (DNS), as demonstrated by a query
Local attackers with a low-privileged account on a host running Robocode 1.9.3.6 can exploit an insecure temporary file
NVD
CVE.org
EPSS
GitHub
Exploit-DB