Robocode
CVE-2025-14307
CRITICAL
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain local low-privileged account
-
ExploitPlant symlink/predictable file in temp directory
-
ExecutionWin race during insecure createTempFile call
-
ImpactOverwrite critical file or inject code as victim process
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Secure temp file creation
|
| Exploitation Conditions | Requires an authenticated low-privileged local account on the same host (AV:L, PR:L) where Robocode 1.9.3.6 is executed, a shared or predictable temporary directory (e.g., a world-writable /tmp), and the ability to win a timing race against RecordManager's insecure File.createTempFile followed by delete()/createNewFile() sequence while a battle recording is being written. Limiting factors that reduce realistic risk: the attack is local-only (not remotely reachable), the victim must actively be running Robocode and saving/recording battles for the vulnerable code path to execute, and exploitation hinges on winning a non-deterministic race window rather than a deterministic trigger. |
| Impact | The headline CVSS 4.0 base score is 9.3 (Critical), but the vector itself tempers that: AV:L means this is a LOCAL attack, not network-reachable, and PR:L means the attacker must already hold a low-privileged local account on the host. The high score is driven by all three vulnerable-system impacts (VC/VI/VA:H) AND all three subsequent-system impacts (SC/SI/SA:H) being set to High, which appears inflated for a classic CWE-377 insecure-temp-file race in a hobby/educational application - such flaws typically yield localized file overwrite or same-privilege code execution rather than full subsequent-system compromise. The provided vector also uses AC:L, whereas race-condition exploitation realistically requires winning a non-deterministic timing window, which argues for higher attack complexity. No EPSS score, no CISA KEV listing, and no public exploit were provided, so there is no evidence of real-world exploitation. CONFLICT TO VERIFY: the description attributes the flaw to the 'AutoExtract component,' but the only source-code evidence (NVD-referenced PR #68) patches RecordManager.java (battle-recording temp files) - verify which component is actually affected with the vendor. Bottom line: this is a high-CVSS-but-low-real-risk issue for most environments because it is local-only, requires an existing authenticated account, depends on a race window, and the affected product is niche. |
| Exploit ScenarioDerived | A low-privileged user already logged into a multi-user host where Robocode 1.9.3.6 is run pre-creates a symlink or predictable file in the shared temporary directory, then races the RecordManager's createTempFile/delete-and-recreate sequence while a battle recording is saved, redirecting the write to overwrite a file the victim process can modify or to inject attacker-controlled content. No public proof-of-concept was provided, and success depends on winning the timing race against the privileged file operation. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 15, 2026
Local attackers with a low-privileged account on a host running Robocode 1.9.3.6 can exploit an insecure temporary file creation flaw in the battle recording component (RecordManager) to overwrite arbitrary files or potentially achieve code execution via a race condition. The vulnerability requires winning a timing race against the application's File.createTempFile followed by delete and createNewFile calls while a battle recording is being written, and exploitation is limited to local scenarios where the victim is actively running Robocode. No public exploit code or active exploitation has been identified at time of analysis, and the independent assessment rates the practical risk lower than the headline CVSS 4.0 score of 9.3 due to the local-only attack vector and non-deterministic race window.
RemediationAI
No released patched version has been independently confirmed; an upstream fix is proposed in GitHub PR #68 (https://github.com/robo-code/robocode/pull/68). Until a patched release is available, restrict local access to the host and run Robocode with a dedicated low-privilege account. Configure the Java temporary directory (java.io.tmpdir) to a private, non-world-writable location (e.g., -Djava.io.tmpdir=/path/to/private) or ensure the system temp directory has the sticky bit and restrictive permissions (e.g., /tmp with 1777). Avoid running battle recordings with untrusted local users present. Note that the proposed PR wraps file operations in AccessController.doPrivileged but the diff still shows File.createTempFile, so additional compensating controls such as sandboxing the JVM, using a filesystem monitor, or disabling battle recording (if feasible) may be required.
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
CWE-377 (Insecure Temporary File) is the root cause. Robocode is a Java-based robot battle simulator. The affected code resides in RecordManager.java within the robocode.battle module, which creates a temporary file using File.createTempFile("robocode-battle-records", ".tmp") and later deletes and recreates it with createNewFile(). Because the temporary file is created in a world-writable directory (e.g., /tmp) without atomic operations or secure permissions, a local attacker can pre-create or symlink a file with the same name, exploiting a race condition. The CPE identifies Robocode 1.9.3.6 as the sole affected version. The CVSS 4.0 vector indicates a local attack (AV:L) requiring low privileges (PR:L) and no user interaction (UI:N), with high impact on confidentiality, integrity, and availability; the independent CVSS 3.1 assessment (AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:H/A:L) further tempers the severity by noting the high attack complexity and non-deterministic race window. The description references an 'AutoExtract' component, but the source diff and CPE point to RecordManager; an upstream pull request (PR #68) proposes wrapping the file operations in an AccessController.doPrivileged block, which may mitigate permission-related exploitation paths but does not eliminate the underlying use of File.createTempFile.
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:L/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H/AU:Y/R:U/V:D/RE:M/U:Red
Local-only temp-file race (AV:L); winning the non-deterministic timing window makes it AC:H; a local account is needed (PR:L); file overwrite drives I:H while confidentiality/availability impact is limited.
Primary rating from Vendor (tech).
CVSS VectorVendor: tech
DescriptionCVE.org
An insecure temporary file creation vulnerability exists in the AutoExtract component of Robocode version 1.9.3.6. The createTempFile method fails to securely create temporary files, allowing attackers to exploit race conditions and potentially execute arbitrary code or overwrite critical files. This vulnerability can be exploited by manipulating the temporary file creation process, leading to potential unauthorized actions.
Executive ViewAI
Robocode 1.9.3.6 on multi-user hosts exposes local low-privileged users to arbitrary file overwrite and potential code execution during battle recording, with no public exploit identified at time of analysis and no vendor-released patch identified at time of analysis. Leadership should care because any local account on an affected system could tamper with files or execute code, undermining host integrity and incident-response assumptions. The practical risk is constrained by local access and a non-deterministic race window, but the absence of a patch requires near-term compensating controls.
No vendor-released patch identified at time of analysis. Interim mitigations: restrict local account access to hosts running Robocode 1.9.3.6; disable battle recording or RecordManager where possible; run Robocode under a dedicated least-privileged account; place Robocode temp files in a per-user directory with strict ACLs; monitor and alert on suspicious create/delete/createNewFile sequences in temp paths; use application allowlisting and host isolation.
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
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
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
Arbitrary file deletion via directory traversal in the CacheCleaner component of Robocode 1.9.3.6: the recursivelyDelete
Robocode through 1.9.3.5 allows remote attackers to cause external service interaction (DNS), as demonstrated by a query
NVD
CVE.org
EPSS
GitHub
Exploit-DB