Security Vulnerability Report
中文
CVE-2025-62784 CVSS 5.3 MEDIUM

CVE-2025-62784

Published: 2025-10-27 21:15:39
Last Modified: 2025-11-04 14:59:16

Description

InventoryGui is a library for creating chest GUIs for Bukkit/Spigot plugins. Versions before 1.6.5 contain a vulnerability where any plugin using a GUI with the GuiStorageElement and allows taking out items out of that element can allow item duplication when the experimental Bundle item feature is enabled on the server. The vulnerability is resolved in version 1.6.5.

CVSS Details

CVSS Score
5.3
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N

Configurations (Affected Products)

cpe:2.3:a:phoenix616:inventorygui:*:*:*:*:*:*:*:* - VULNERABLE
InventoryGui < 1.6.5

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-62784 PoC - InventoryGui Item Duplication # This PoC demonstrates the item duplication vulnerability in InventoryGui < 1.6.5 # when Bundle feature is enabled import json def demonstrate_exploitation(): """ Attack scenario for InventoryGui item duplication: Prerequisites: - Minecraft server with InventoryGui < 1.6.5 - Experimental Bundle feature enabled - Plugin using GuiStorageElement with allow-take enabled """ exploit_steps = { "step_1": { "action": "Prepare items in Bundle", "description": "Put valuable items into a Bundle item" }, "step_2": { "action": "Place Bundle in GuiStorageElement", "description": "Add the Bundle to the GUI storage element" }, "step_3": { "action": "Trigger extraction", "description": "Click to take items out of the GUI storage element" }, "step_4": { "action": "Exploit race condition", "description": "Rapidly repeat extraction due to improper state tracking" }, "step_5": { "action": "Collect duplicated items", "description": "Items are duplicated due to Bundle + storage element bug" } } # Example exploit code structure poc_code = ''' // Pseudocode for exploiting CVE-2025-62784 // Target: InventoryGui < 1.6.5 with GuiStorageElement public void exploitItemDuplication(Player player, GUI gui) { GuiStorageElement storage = gui.getElement("storage_element"); Bundle bundle = new Bundle(); // Step 1: Fill bundle with valuable items bundle.addItem(new ItemStack(Material.DIAMOND, 64)); // Step 2: Place bundle in storage storage.setItem(0, bundle); // Step 3-4: Rapid extraction exploiting the bug // The storage state is not properly updated due to Bundle handling for (int i = 0; i < 100; i++) { ItemStack extracted = storage.extractItem(0, 1); if (extracted != null) { player.getInventory().addItem(extracted); // Items get duplicated due to improper state tracking } } } // Fix: Update to InventoryGui 1.6.5+ // The fix adds proper state validation for item extraction ''' return json.dumps({ "cve_id": "CVE-2025-62784", "vulnerable_versions": "< 1.6.5", "exploit_steps": exploit_steps, "poc_code": poc_code }, indent=2) if __name__ == "__main__": print(demonstrate_exploitation())

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-62784", "sourceIdentifier": "[email protected]", "published": "2025-10-27T21:15:38.593", "lastModified": "2025-11-04T14:59:16.450", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "InventoryGui is a library for creating chest GUIs for Bukkit/Spigot plugins. Versions before 1.6.5 contain a vulnerability where any plugin using a GUI with the GuiStorageElement and allows taking out items out of that element can allow item duplication when the experimental Bundle item feature is enabled on the server. The vulnerability is resolved in version 1.6.5."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:L/SA:N/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:X/R:X/V:X/RE:X/U:X", "baseScore": 5.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "LOW", "userInteraction": "NONE", "vulnConfidentialityImpact": "NONE", "vulnIntegrityImpact": "LOW", "vulnAvailabilityImpact": "NONE", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "LOW", "subAvailabilityImpact": "NONE", "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": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "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:N/I:L/A:N", "baseScore": 5.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-837"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:phoenix616:inventorygui:*:*:*:*:*:*:*:*", "versionEndExcluding": "1.6.5", "matchCriteriaId": "817A9CE5-215C-4532-AC09-C9492E97F1A0"}]}]}], "references": [{"url": "https://github.com/Phoenix616/InventoryGui/commit/690fc91d137c6cc04f6ed3a89449050964dd8cb9", "source": "[email protected]", "tags": ["Patch"]}, {"url": "https://github.com/Phoenix616/InventoryGui/security/advisories/GHSA-7whh-79j3-7c55", "source": "[email protected]", "tags": ["Patch", "Third Party Advisory"]}]}}