Gravitational plate of three masses and a slashed discABC0Static engraved plate. Three-dimensional view is unavailable or reduced motion is requested.

← back to fieldarticle

articleJul 10, 2022

Spatial.io — Client-Side Pro Feature Bypass (High-level)

High-level notes on a Spatial.io research finding: paid Pro/feature gates enforced in a React Native JS bundle without adequate server-side entitlement checks.

Spatial.io — client-side feature gate bypass (high-level)

What this is

High-level rewrite of a 2022 research note on Spatial (Android / VR clients). The finding concerned Pro / paid feature unlocks enforced primarily in the React Native index.android.bundle, with insufficient server-side entitlement verification. PoC paths and patch diffs are omitted.

Vulnerability class (concept)

  • Client-side trust: entitlement flags and UI/host settings gated in downloadable JavaScript that can be altered on a rooted or repackaged client (“cracking” / local code patch themes).
  • Missing server profile enforcement: features that should require a paid subscription were reachable once local checks flipped, if the backend did not re-validate the user’s plan.
  • Unobfuscated RN bundles increase ease of locating gate logic; obfuscation alone is not a fix.

Impact (abstract)

Users could unlock paid capabilities without purchase, causing direct revenue loss and unfair access on mobile and related VR builds that share the same client logic.

Mitigations / what to check

  • Enforce subscriptions and entitlements on the server for every privileged action and room/host setting; treat client flags as display-only.
  • Obfuscate/encrypt RN bundles only as abuse-friction; assume determined clients can patch them.
  • Monitor entitlement mismatches (client claims Pro, billing says Free).
  • Apply Play Integrity / attestation where appropriate—as signals, not sole controls.

Solve steps and PoC omitted.

related

  1. Jul 12, 2022/articleSpatial.io host-tool auth gap — application DoS (high-level)
  2. Aug 1, 2022/articleovice.in — XSS and Unsafe Token Handling (High-level Report)
  3. Aug 1, 2022/articleoVice picket static object — stored XSS class (high-level)

graphfeed