Security rating
The attacks we know about, whether each one is stopped, and how we know. These are the grades with everything switched on. Your own game's grade is on its dashboard, worked out from its real settings.
Something a modder can try hasn't been proven yet.
What a grade doesn't tell you
- Countersign wrote this rating about itself. No outside auditor has checked it.
- Headset results come from one Quest 3 on the developer's own account. Other Quest models, players outside the developer's team and real store installs haven't been tried.
- It covers who gets in, not how they play. Cheats inside a genuine copy on an honest headset are the game's to catch.
- It only lists attacks we know about.
The attacks
Anyone with a download or a guide
Install a modded or re-signed copy of the game
StoppedThe headset's hardware or Meta reports who really signed the build, and a modded copy can't be signed by you.
Best evidence: Real Quest 3, 2026-10-31
Same APK re-signed with another keya_resigned_build_is_refused_and_an_unconfirmed_cert_is_not_enougha_sideloaded_install_is_denied_by_a_store_policya_real_quest_chain_turns_away_everything_it_should
Connect from a PC port or a script, with no headset
StoppedNo pass without proof from a real headset's hardware or from Meta.
Best evidence: Real SDK against the real server
a policy the client can't meeta_store_game_needs_a_genuine_meta_token_bound_to_the_deviceno_token_is_a_refusal_with_that_reason_unless_the_game_takes_sideloadsa_software_key_is_not_hardware_whatever_its_lists_claim
Skip Countersign and log in to PlayFab directly
StoppedPlayFab itself refuses every client login for this title.
Best evidence: Real PlayFab and Photon, 2026-10-25
PlayFab lockdowna_probe_asks_as_a_modded_client_would_and_reports_what_still_runsa_developer_locks_a_title_checks_it_and_unlocks_ita_deny_with_conditions_or_for_one_principal_does_not_count_as_locked
Skip Countersign and join Photon directly
StoppedCountersign connects to your Photon app with no credentials, the way a modded client would, and Photon turns it away.
Best evidence: Real PlayFab and Photon, 2026-10-25
Photon custom authenticationreal_answers_from_photon_read_as_what_they_meana_developer_can_ask_whether_their_photon_app_lets_strangers_inphoton_accepts_a_signed_proof_and_rejects_a_forged_one
Copy another player's pass or replay their connection
StoppedA pass is useless without a signature from the key inside that player's headset, and each signature works once.
Best evidence: Real PlayFab and Photon, 2026-10-25
Photon custom authenticationreplay and tampering, signed by the SDK's own signera_stolen_ticket_cannot_make_proofsa_photon_id_works_once_and_a_ban_lands_at_the_next_connecta_replayed_request_is_caught
Call PlayFab APIs the game never meant, like giving yourself currency
StoppedThe PlayFab session stays on the server, and only the calls you allowed go through.
Best evidence: Real PlayFab and Photon, 2026-10-25
PlayFab, gateway modea_call_off_the_allowlist_never_reaches_playfabrules_refuse_every_way_back_to_a_direct_logina_cloudscript_rule_lets_only_its_function_through
Reinstall the game to get out of a ban
StoppedThe ban follows the headset's own ids. This needs device marks left on in your client, which is the default.
Best evidence: Real Quest 3, 2026-10-31
Reinstall, or clear the app's dataThe same with device marks on, the defaulta_reinstall_on_a_banned_headset_inherits_the_banblocking_meta_doesnt_shed_a_ban
Make a second Meta account to get out of a ban
Not provenThe ban should hold through the headset's hardware id, but this has only been tested with stand-in ids, never on a headset with a second account.
Best evidence: Automated test
a_new_profile_on_the_same_hardware_is_still_banned
Factory reset the headset to get out of a ban
Not provenOne of the two ids should survive a reset, but no headset has been reset to find out.
Best evidence: Automated test
a_headset_is_known_by_any_of_its_ids_and_stays_known_after_a_restart
Keep playing after being banned mid-session
StoppedWebhooks turn them away from the next room, and RoomGuard removes them from the room they're in if your game runs it. Not yet run against Photon's real webhooks.
Best evidence: Real SDK against the real server
a ban and its endbefore_join_turns_a_banned_player_away_from_the_next_rooma_photon_id_works_once_and_a_ban_lands_at_the_next_connecta_ban_lands_on_every_key_on_the_headset_at_once
Keep playing on an old copy with a hole you've since fixed
StoppedCopies older than the build you set are told to update. A genuine copy can't lie about its build without root or a debuggable copy to attach to, and a changed copy fails the signature check. Not yet run on a headset.
Best evidence: Real SDK against the real server
the build a client reportsan_old_copy_is_told_to_update_and_keeps_its_key_and_its_playerraising_the_floor_reaches_a_player_at_their_next_refresh_and_an_update_answers_itthe_hardware_is_believed_over_a_build_that_claims_to_be_newera_real_quest_chain_names_the_build_only_for_the_game_whose_cert_it_proved
Hook a copy that shipped as a debuggable build
Partly stoppedA debuggable build carries your signature, so anyone can attach to it on a normal headset. It's refused, so you find out on your first test. That's its own word, though: one already out in the wild can be made to lie. Never sign a debuggable build with your release key.
Best evidence: Real SDK against the real server
the build a client reportsa_debuggable_build_is_refused_on_a_real_policy_with_the_reason_for_its_developer
Someone skilled
Use a pass from another game on Countersign
StoppedA pass names its game, and Photon's address names the game too.
Best evidence: Automated test
a_ticket_from_another_game_cannot_open_this_games_photon_appwrong_game_and_unknown_keysubjects_differ_across_games_for_one_device
Reuse a token or hardware proof from an honest headset
StoppedEach proof is tied to one key and one challenge from the server.
Best evidence: Automated test
a_token_for_another_device_key_is_refuseda_real_chain_for_another_challenge_or_key_is_a_refusala_spent_nonce_cannot_be_reused
Forge the hardware proof with their own certificates
StoppedA chain has to end at a pinned root and every link is checked. Tested with real certificates in the wrong places: we don't build forged chains, so a full forgery has never been run.
Best evidence: Automated test
a_cert_above_the_leaf_must_be_a_ca_allowed_to_signan_unpinned_top_cert_is_unanchoredfuzz_no_single_bit_in_a_real_chain_can_changea_real_software_key_is_not_hardware_even_with_its_root_pinned
Use a leaked key from an Android phone
StoppedStore game: This level goes by Meta's word, and a phone's key can't stand in for it.
APK game: Only Meta's Quest root counts, so a phone's key proves nothing.
Best evidence: Automated test
quest_keys_only_leaves_out_googles_roots_and_nothing_elsestrict_sideload_takes_only_metas_advanced_worda_chain_with_a_revoked_cert_proves_nothing_and_says_whya_certificate_revoked_since_enrollment_takes_away_what_it_proved
Get someone else banned, or take their account, by claiming their ids
StoppedA headset's ids only count when they come from a build that proved it's genuine.
Best evidence: Automated test
only_a_build_proved_real_is_believed_about_its_headsetmarks_from_a_build_nobody_proved_mean_nothingnobody_can_take_over_a_player_by_naming_their_ids
Change a request on its way to the server
StoppedEvery request is signed by the headset's key, over all of its parts.
Best evidence: Real SDK against the real server
replay and tampering, signed by the SDK's own signerrequest_signature_covers_every_partevery_byte_of_a_ticket_is_load_bearinga_signature_for_the_login_route_does_not_work_on_the_call_route
Fake a Discord moderation command
StoppedA command needs Discord's signature, your server, and a moderator's permissions. Not yet tried with a real Discord app.
Best evidence: Automated test
only_a_moderator_in_the_games_own_server_gets_anywherea_replayed_or_stale_command_does_nothinga_ping_is_answered_only_when_signed
Steal a developer's dashboard password
StoppedA stolen password isn't enough, because signing in also takes a code from your phone.
Best evidence: Automated test
a_login_with_two_step_on_needs_a_fresh_codecodes_cannot_be_guessed_at_for_longguessing_a_password_is_slowed_downnobody_sees_another_accounts_game
Flood the server to knock the game offline
Partly stoppedLimits stop one address holding up the server, but it's one machine and a large attack can still take it down.
Best evidence: Real SDK against the real server
many clients at onceone_address_cant_hold_every_worker_and_loopback_is_not_countedpast_the_workers_and_the_queue_a_connection_is_told_busya_request_trickled_in_past_the_deadline_is_dropped
Someone with rare access or real money
Sign a modded copy with a studio's stolen release key
Store game StoppedAPK game Not stoppedStore game: Meta has to recognise the install from its store, so a build signed anywhere else is refused.
APK game: To the headset, a build signed with your key is your build. Keep the key off anything shared.
Best evidence: Real Quest 3, 2026-10-31
denied: not store-recognizedstore_needs_store_and_basic
Root or unlock the headset and hook the genuine game
Store game Not provenAPK game Partly stoppedStore game: This level asks for Meta's Advanced rating. No unlocked or rooted headset has been tried.
APK game: A headset's own proof fails if it's unlocked, but Meta's Basic rating can still pass a rooted one. No rooted headset has been tried.
Best evidence: Automated test
an_unverified_boot_state_is_carried_throughadvanced_needs_the_advanced_flaga_real_quest_3_proves_a_hardware_key_and_the_certificate_that_signed_its_app
Buy another headset after a ban
Not provenThe ban follows their Meta account to the new headset and bans that headset too. They'd need a new account that has never signed in on it, and then no auth can tell who is wearing it. Meta's proof of the account hasn't been run on a headset yet.
Best evidence: Automated test
a_ban_follows_the_meta_account_to_a_new_headseta_game_that_requires_the_account_takes_no_word_for_itnobody_gets_an_account_without_a_proof_meta_stands_behinda_banned_account_signing_in_on_a_headset_bans_that_headseta_ban_a_headset_passed_on_doesnt_ban_the_next_headseta_ban_goes_one_step_from_the_player_it_was_given_to_and_no_further
Break into the Countersign server
Partly stoppedA copied data folder or a stolen backup shows no PlayFab, Meta or signing keys, because they're sealed under a key kept apart from it. Someone in control of the running server can still read them, since it has to use them.
Best evidence: Real SDK against the real server
secrets kept under a seal keya_games_secrets_never_reach_the_journal_in_the_cleara_two_step_secret_never_reaches_the_journal_in_the_clearsigning_keys_are_sealed_where_they_lie_and_a_missing_seal_key_stops_the_start
How it's worked out
Each attack is judged against the game's real settings. Stopped earns all of an attack's points, partly stopped half, not proven a quarter, and not stopped none. Attacks anyone can try count three times as much as expert ones, and skilled ones twice as much. A grade can't pass B while something a modder can try is unproven, C while something a skilled modder can try is open, or D while something anyone can try is open.
What a game doesn't use isn't scored, and neither is what only its developer can see. The build fails if any evidence listed here goes missing, and a test only counts as a test: only a run on a real headset can say a real headset.