Skip to content

[Crash] Unchecked userData.ownedItemIds.includes in doesPlayerOwnItem helper #73

@coderabbitai

Description

@coderabbitai

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions