Il developer Gezine ha rilasciato pubblicamente CivSwitch, un nuovo entrypoint userland progettato per Nintendo Switch e Nintendo Switch 2, che sfrutta una vulnerabilità XSS presente in Sid Meier’s Civilization VII per consentire l’esecuzione di codice JavaScript arbitrario sulle due console.

Il progetto si distingue soprattutto per la possibilità di funzionare completamente offline, senza richiedere una connessione a Internet, l’accesso all’eShop o l’utilizzo di giochi in versione digitale.
https://t.co/XHSdmD128z
— Gezine (@gezine_dev) November 1, 2026
Il sistema sfrutta una vulnerabilità Cross-Site Scripting (XSS) individuata nella chat multiplayer di Civilization VII. Attraverso questa falla è possibile iniettare codice JavaScript e avviare un primo loader, che consente successivamente di installare un trigger persistente direttamente nei salvataggi del gioco.
Una volta completata la procedura, non sarà necessario ripetere ogni volta l’intera operazione: selezionando semplicemente la voce Load Game dal menu principale, il payload verrà eseguito automaticamente.
CivSwitch è composto da due elementi principali. Il primo è PicoSwitch, un firmware destinato alle schede Raspberry Pi Pico basate sui microcontrollori RP2040 e RP2350, che simula una tastiera USB e inserisce automaticamente il codice necessario nella chat del gioco.
Il secondo componente è installer-creator, uno script Python che genera e installa un salvataggio modificato, denominato XSTRIG.Civ7Save, all’interno del quale viene memorizzato il trigger permanente.
Per utilizzare CivSwitch è comunque indispensabile disporre della versione fisica di Civilization VII 1.0.0, appartenente all’edizione Nintendo Switch originale.
Non sono supportate le copie digitali né le versioni aggiornate del gioco. Per quanto riguarda l’hardware, è necessario un Raspberry Pi Pico, con la versione Pico 2 dotata di chip RP2350 consigliata dall’autore, mentre il modello Pico 1 non è ancora stato testato ufficialmente.
Sul fronte della compatibilità, il progetto supporta Nintendo Switch con firmware 22.5.0 e Nintendo Switch 2 con firmware 20.4.0 e 23.0.1. Durante la configurazione iniziale è inoltre necessario impostare temporaneamente la lingua della console su English (US).
La procedura prevede inizialmente il caricamento del firmware PicoSwitch sulla scheda Raspberry Pi Pico. Successivamente bisogna avviare Civilization VII e raggiungere il menu multiplayer, seguendo il percorso Main Menu, Multiplayer, Wireless, Create Game, Host Lobby e infine Chat.
A questo punto si collega la Pico alla console, che inizierà a digitare automaticamente il payload XSS nella chat del gioco.
Questa fase richiede un po’ di pazienza: il codice è composto da circa 87 righe e l’inserimento automatico impiega approssimativamente 15 minuti. Una volta terminata l’operazione, viene avviato il Remote JS Loader, raggiungibile attraverso la porta TCP 9026.
Da un PC collegato alla stessa rete è quindi possibile completare l’installazione eseguendo lo script Python python installer-creator/install.py <IP-console>, che provvederà a scrivere il trigger persistente nei salvataggi. Terminata questa fase, sarà possibile ripristinare la lingua originale della console.
Uno degli aspetti più interessanti è proprio la persistenza del loader, che continua a funzionare anche dopo la sospensione e la successiva riattivazione della console.
Questo significa che, una volta completata l’installazione, l’utilizzo quotidiano diventa decisamente più semplice e non richiede di collegare nuovamente la Raspberry Pi Pico.
CivSwitch rappresenta inoltre un’aggiunta interessante alla scena homebrew del Nintendo Switch 2, considerando che il supporto al firmware 23.0.1 lo rende il quarto entrypoint userland conosciuto compatibile con questa versione del sistema.
La possibilità di utilizzare una cartuccia fisica è particolarmente interessante per chi non ha avuto modo di procurarsi altri titoli utilizzati in passato per ottenere l’esecuzione di codice non firmato, compresi quelli basati su SmileBASIC.
È importante ricordare che CivSwitch è un entrypoint userland e non un kernel exploit. Il progetto apre quindi la strada all’esecuzione di codice e applicazioni homebrew, ma non garantisce automaticamente l’accesso al kernel o a funzionalità di livello superiore.
VideoTutorial
CivSwitch hack start to finish
by
u/Melon__Bread in
switch2hacks
Requisiti
- Cartuccia fisica di Civilization VII versione 1.0.0 (edizione Switch 1). Le versioni digitali e gli aggiornamenti del gioco non sono supportati.
- Raspberry Pi Pico (consigliata la Pico 2 con chip RP2350; la Pico 1 è ancora non testata ufficialmente).
- Console con uno di questi firmware:
- Switch 1: 22.5.0
- Switch 2: 20.4.0 e 23.0.1
- Lingua di sistema impostata su English (US) durante la procedura iniziale.
Il progetto è inoltre composto da due componenti principali:
- PicoSwitch: Firmware per Raspberry Pi Pico (RP2040 / RP2350) che simula una tastiera USB e digita automaticamente il payload XSS nella chat del gioco.
- installer-creator: Script che genera e installa un salvataggio modificato (
XSTRIG.Civ7Save) contenente il trigger persistente.
Procedura
- Compilare e installare il firmware loader UF2 (consultare
PicoSwitch/README.md). Sulla Switch, accedere al menu “Sistema” e impostare la lingua della console su English (US). - Accedere al menu “Controller e accessori” e impostare anche la tastiera USB su English (US). Queste impostazioni sono necessarie per digitare correttamente le lettere inglesi (codice) tramite la tastiera USB (i firmware più recenti potrebbero non richiedere la modifica della lingua di sistema, poiché supportano la digitazione in inglese senza cambiare lingua).
- Connettersi a Internet utilizzando 90DNS per bloccare i server Nintendo.
- Avviare quindi il gioco e seguire questo percorso: menu principale → MULTIPLAYER → WIRELESS → CREATE GAME → HOST LOBBY → CHAT. Collegare infine la Pico (in modalità docked, selezionare prima la casella della chat per consentire la ricezione degli input della Pico).
- La Pico digiterà il codice XSS nella chat (circa 87 righe, per un tempo di circa 15 minuti). Al termine, sulla console verrà avviato il Remote JS Loader (porta TCP 9026), disponibile per quella sessione.
- Installare il trigger persistente all’avvio dal PC:
python installer-creator/install.py <console-ip>. Lo script carica il modello del salvataggio, inserisce al suo interno il payload compresso direttamente sulla console, elimina il contenuto disave:/saves/Single/e scrive il trigger. - Da questo momento, a ogni avvio, sarà sufficiente seguire il percorso: menu principale → Load Game. Il payload verrà eseguito direttamente dai dati di salvataggio (se il payload utilizzato è il loader, la porta 9026 sarà attiva già all’avvio e continuerà a funzionare anche dopo la sospensione e la riattivazione della console).
- Al termine dell’installazione è possibile ripristinare la lingua di sistema originale.
Invio dei payload (send_js.py)
- Questo comando
python send_js.py <console-ip> [port] file.jsinvia un file JavaScript senza modificarne il contenuto al Remote JS Loader (porta predefinita 9026), quindi mostra i messaggi di log trasmessi dalla console (la lettura continua fino alla chiusura della connessione o al raggiungimento del timeout).
Compilazione (firmware Pico)
Su Ubuntu 24.04:
sudo apt install -y git build-essential cmake ninja-build gcc-arm-none-eabi libnewlib-arm-none-eabi libstdc++-arm-none-eabi-newlib python3 nodejs npm
git clone --branch 2.3.1 --depth 1 --recurse-submodules --shallow-submodules https://github.com/raspberrypi/pico-sdk.git ~/pico-sdk
export PICO_SDK_PATH=$HOME/pico-sdk
cd PicoSwitch
npm install # terser per compress.js
node compress.js # legge ../core.js -> payload.txt
cmake --preset pico2 && cmake --build --preset pico2 # RP2350 -> build-pico2/src/civ7-pico2.uf2
cmake --preset pico1 && cmake --build --preset pico1 # RP2040 -> build-pico1/src/civ7-pico1.uf2
Download: CivSwitch 1.0 (civ7-pico1.uf2)
Download: CivSwitch 1.0 (civ7-pico2.uf2)
Download: Source code CivSwitch 1.0
Alcune parti di questo articolo sono state generate con l’aiuto dell’intelligenza artificiale. Questo articolo contiene link affiliati a Amazon. Se acquisti tramite questi link, potrei guadagnare una commissione senza costi aggiuntivi per te.🔥 Prodotti in promozione e articoli più venduti: Nintendo Switch
Vedi altri prodotti Nintendo Switch
Ultimo aggiornamento 2026-11-03 / Link di affiliazione / Immagini da Amazon Product Advertising API


![[Scena PS5] Rilasciato PS5SX2 v2.30: Frame generation a 120 FPS, meno input lag e salvataggi migliorati](https://www.biteyourconsole.net/wp-content/uploads/PS5SX2-238x178.webp)
![[Scena PS Vita] Rilasciato Arx Libertatis v2.0: Prestazioni migliorate fino a 60 FPS e maggiore distanza visiva](https://www.biteyourconsole.net/wp-content/uploads/ARXLibertatis-238x178.webp)

![[Scena PS5] Rilasciato PS5SX2 v2.30: Frame generation a 120 FPS, meno input lag e salvataggi migliorati](https://www.biteyourconsole.net/wp-content/uploads/PS5SX2-100x75.webp)
![[Scena PS Vita] Rilasciato Arx Libertatis v2.0: Prestazioni migliorate fino a 60 FPS e maggiore distanza visiva](https://www.biteyourconsole.net/wp-content/uploads/ARXLibertatis-100x75.webp)