Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSupply malicious .simc profile or MITM Battle.net response
-
DeliveryInclude more than four socket entries
-
ExploitOverflow gem_id into gem_bonus_id vector pointer
-
Executionitem_t destructor frees attacker-controlled pointer
-
ImpactHeap manipulation yields code execution
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Heap buffer bounds checking
MITRE ATT&CK
1 technique across 1 tactic: Execution 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 SimulationCraft parse attacker-controlled gear JSON in which a single equipped item's 'sockets' array contains more than four entries, triggering the unbounded loop in bcp_api.cpp that writes past the four-element gem_id/gem_bonus_id arrays (MAX_GEM_SLOTS=4). The malicious data must reach the parser via one of three paths: a crafted .simc profile with an [[equipment]] section fed to a local install or a service hosting SimulationCraft, a compromised WoW addon export, or an attacker in a privileged network position tampering with Battle.net API responses. LIMITING FACTORS: affected only in builds after release-820-01 and before the May 7, 2026 nightly (fixed in simc-1205-01-516b5d7); the victim or service must actually import and process the attacker-supplied profile/response; while the overflow and crash are reliable, turning it into reliable code execution requires heap grooming and control of the freed pointer (reflected in AC:H/AT:P). The crash itself is trivially reproducible from the published JSON PoC. |
| Impact | This is a genuine memory-corruption flaw (CWE-122/787) confirmed by the vendor's own GitHub Security Advisory (GHSA-wc9c-hfh3-phxx) and closed by fix commit aff85992, with a public crash-reproducing JSON PoC and a controlled free demonstrated via SIGSEGV. However, several signals temper real-world urgency. There is no CISA KEV listing (so 'confirmed actively exploited' does not apply) and no EPSS score was provided, so widespread-exploitation probability cannot be quantified from the data. The supplied CVSS 4.0 vector (7.5, High) models AV:A/AC:H/AT:P/PR:N/UI:P - unauthenticated but requiring adjacent position, elevated attack complexity, a special attack requirement, and passive user interaction - which is consistent with the Battle.net-API MITM scenario but does not capture the more realistic delivery path (a victim importing an attacker-supplied .simc profile), which is better modeled as a local vector. The vuln.today decision label is 'this_week', not act_now/emergency, which aligns with the gating conditions and the product's non-enterprise footprint. Net: a real, well-evidenced bug worth patching promptly, but SimulationCraft is a WoW theorycrafting desktop/hosted tool rather than critical infrastructure, so this is a legitimate but moderate priority rather than a drop-everything emergency. Conflict to verify: CVSS AV:A (adjacent) understates the file-import path and overstates the network path - the dominant exposure for most users is loading a malicious profile, not a privileged MITM. |
| Exploit ScenarioDerived | An attacker crafts a malicious .simc profile with an [[equipment]] section containing a gear item whose JSON 'sockets' array holds more than four entries (or MITMs a Battle.net API response to inject them); when a victim or a hosting service imports and parses it, the unbounded loop writes past gem_id[3] into the adjacent gem_bonus_id vector's _M_start pointer, and the item_t destructor then frees an attacker-controlled pointer during normal cleanup. The advisory reports this was taken from crash to code execution in a testing environment. A crash-reproducing JSON PoC is public; full working RCE exploit code is not published (the reporter is withholding it pending a blog post). |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Heap-based out-of-bounds write in SimulationCraft builds after release-820-01 and before the May 7, 2026 nightly, fixed in simc-1205-01-516b5d7, allows attacker-controlled gear JSON with more than four socket entries to overflow the four-element gem_id array and corrupt adjacent gem_bonus_id vector storage. The vendor advisory reports crashes and demonstrated code execution in a testing environment, but assessed exploitation requires the victim or hosted service to import malicious .simc profile data, a compromised addon export, or tampered Battle.net API responses, with high attack complexity and user interaction; a public crash-reproducing JSON PoC exists, and no CISA KEV entry or confirmed active exploitation is reported.
RemediationAI
Update SimulationCraft to the simc-1205-01-516b5d7 nightly or any later build containing commit aff85992d284ca4621e784c6b065a271b22f629d; the advisory notes no containing release tag is available, so release-820-01 and intervening builds remain vulnerable unless patched or backported. The fix bounds the sockets loop to MAX_GEM_SLOTS (four), and the commit also bounds the bonusStats and socket_color loops. Until updated, avoid importing untrusted .simc profiles or addon exports, and do not rely on Battle.net API responses from untrusted network positions; for hosted SimulationCraft services, run parsing with least privilege and isolate the process because the corrupt free can become code execution. See GHSA-wc9c-hfh3-phxx and commit aff85992d284ca4621e784c6b065a271b22f629d.
Affected VersionsENISA
Affects your stack
Find out whether the stacks and servers you run are on an affected version.
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
SimulationCraft is a C++ World of Warcraft combat simulation tool that parses gear/item data from JSON via rapidjson in engine/interfaces/bcp_api.cpp. The parser stores gem IDs in std::array<int, MAX_GEM_SLOTS> gem_id and gem bonus IDs in std::array<std::vector<unsigned>, MAX_GEM_SLOTS> gem_bonus_id in engine/item/item.hpp, with MAX_GEM_SLOTS=4 defined in engine/sc_enums.hpp. The vulnerable loop uses slot_data["sockets"].Size() as the upper bound without checking gem_idx < MAX_GEM_SLOTS, so a fifth and later socket entry writes past gem_id into the adjacent gem_bonus_id vector control block; the advisory notes this can corrupt a vector's _M_start pointer and cause the item_t destructor to free an attacker-influenced pointer during normal cleanup. This is CWE-122/CWE-787 heap-based buffer overflow/out-of-bounds write. The fix commit aff85992 bounds the socket loop with std::min(MAX_GEM_SLOTS, sockets.Size()) and also bounds the bonusStats and socket_color loops.
Know when Simc 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:A/AC:H/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:L/SI:L/SA:L
Dominant vector is a victim importing an attacker-supplied profile, so AV:L/UI:R; no auth (PR:N); reliable RCE needs heap control (AC:H); in-process code execution gives C/I/A:H.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
DescriptionCVE.org
SimulationCraft is a tool to explore combat mechanics in World of Warcraft. In builds after release-820-01 and before the identified May 7, 2026 nightly, the bcp_api.cpp loop over the JSON sockets array uses slot_data["sockets"].Size() without bounding gem_idx by MAX_GEM_SLOTS, which is four in engine/sc_enums.hpp. The destination gem_id and gem_bonus_id arrays in engine/item/item.hpp have only four elements. More than four socket entries therefore write beyond gem_id into the adjacent gem_bonus_id vector storage; bonus_list entries can also access gem_bonus_id out of bounds. Corrupting a vector's _M_start pointer causes the item_t destructor to free an attacker-influenced pointer during normal cleanup. The advisory reports crashes and code execution demonstrated in a testing environment. Attack inputs can arrive through a malicious .simc profile with a [[equipment]] section, a compromised addon export, or Battle.net API responses modified by an attacker with a privileged network position. The fix is contained in the nightly build identified as simc-1205-01-516b5d7; no containing release tag is available.
Technical POC Analysis
Heap-based out-of-bounds write (CWE-122; advisory also lists CWE-787) in the socket-parsing loop in bcpapi.cpp, lines 676-701.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
CVE-2026-47235 is a high-severity heap overflow in SimulationCraft that could allow an attacker to execute code on systems that import malicious simulation profiles. While exploitation requires user interaction and high attack complexity, the demonstrated code execution in testing highlights a credible risk to any team or service relying on SimulationCraft for gear optimization, potentially leading to unauthorized access or data compromise.
Apply vendor patch.
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
A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.
A heap overflow occurs when a program writes data beyond the bounds of a buffer allocated in the heap memory region.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
EUVD-2026-112147
NVD
CVE.org
GitHub
Exploit-DB