Summary
Services server crashes when userData.ownedItemIds is undefined in item ownership check.
Affected Code
server-services/src/data_management/accountManagement.js:144, 176
if (userData.ownedItemIds.includes(item_id)) return "ALREADY_OWNED";
// CRASH if userData.ownedItemIds is undefined
if (userData.ownedItemIds.includes(item_id) && item.item_class == item_class) return true;
// CRASH if userData.ownedItemIds is undefined
Vulnerability
If database returns corrupted user data without ownedItemIds.
Impact
- Services server crash on buy/saveEquip
- Denial of service
Recommended Fix
if (userData.ownedItemIds?.includes(item_id)) return "ALREADY_OWNED";
if (userData.ownedItemIds?.includes(item_id) && item?.item_class == item_class) return true;
References