Skip to main content

Robocode CVE-2025-14307

CRITICAL
Insecure Temporary File (CWE-377)
2025-12-09 cve_disclosure@tech.gov.sg
9.3
CVSS 4.0 · Vendor: tech
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain local low-privileged account
  2. Exploit
    Plant symlink/predictable file in temp directory
  3. Execution
    Win race during insecure createTempFile call
  4. Impact
    Overwrite 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.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

maven net.sf.robocode:robocode.battle fix: 1.9.5.6

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

Vendor (tech) PRIMARY 9.3 CRITICAL
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
vuln.today AI 5.8 MEDIUM

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.

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:L/I:H/A:L
4.0 AV:L/AC:H/AT:N/PR:L/UI:N/VC:L/VI:H/VA:L/SC:N/SI:N/SA:N

Primary rating from Vendor (tech).

CVSS VectorVendor: tech

Attack Vector
Local
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
High
Subsequent system: Integrity
High
Subsequent system: Availability
High

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

Why It Matters

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.

Business Impact: Medium
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

EPSS Score
0.3%
Top 75% exploitable
Prevalence
Low
open-source educational robot-battle game, hobby/academic use only
Data Quality
3 sources
Confidence: Low

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.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact
Medium

Priority Score

46
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +46
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

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

cpe:2.3:a:robocode:robocode:1.9.3.6:*:*:*:*:*:*:*

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy