
Plugin WordPress temporaneo che richiede autenticazione per l'endpoint Core REST Batch API per mitigare la catena di vulnerabilità wp2shell (CVE-2026-63030). Include registro di audit opzionale e pagina delle impostazioni.
Una mitigazione temporanea e mirata per l'accesso non autenticato all'endpoint REST Batch API di WordPress Core.
Plugin di Sicurezza Core SkelerSecurity richiede l'autenticazione prima che WordPress elabori le richieste all'endpoint Core REST Batch API:
/wp-json/batch/v1/?rest_route=/batch/v1È progettato come un controllo di difesa in profondità con ambito ristretto per la catena di vulnerabilità del REST Batch API di WordPress comunemente nota come wp2shell. Il plugin utilizza il filtro rest_pre_dispatch di WordPress per rifiutare richieste batch anonime con HTTP 401 Unauthorized, mantenendo l'accesso per gli utenti WordPress e REST API autenticati.
[!IMPORTANT] Questo plugin è una mitigazione temporanea, non un sostituto degli aggiornamenti di WordPress Core. Applica immediatamente l'ultima release di sicurezza di WordPress e verifica che l'aggiornamento sia stato completato con successo.
Segnalazioni pubbliche descrivono una catena di vulnerabilità critica di WordPress Core che coinvolge confusione di route REST Batch API (CVE-2026-63030) e un problema correlato di SQL injection (CVE-2026-60137). L'endpoint interessato può essere raggiunto sia con permalink estetici che con parametri query string nei formati REST.
Le release interessate segnalate includono:
| Versione | Release affette | Release corretta |
|---|---|---|
| WordPress 6.9 | 6.9.0–6.9.4 | 6.9.5 |
| WordPress 7.0 | 7.0.0–7.0.1 | 7.0.2 |
Anche il ramo WordPress 6.8 ha ricevuto un rafforzamento correlato nella versione 6.8.6. Utilizza la release più recente supportata di WordPress per il tuo ambiente, piuttosto che considerare gli intervalli di versione come un motivo per ritardare l'aggiornamento.
/batch/v1./wp-json/batch/v1 che ?rest_route=/batch/v1, perché WordPress risolve entrambi alla stessa route REST.401 per richieste anonime.rest_pre_dispatch priorità -1000).Per la migliore copertura temporanea, abbina questo plugin a una regola WAF o proxy inverso che blocchi le richieste anonime a entrambe le forme di endpoint elencate sopra.
Copia la directory skelersecurity-core-security in:
wp-content/plugins/
Attiva il plugin in Plugin → Plugin installati.
Controlla lo stato del plugin in Strumenti → SkelerSecurity Core.
wp plugin activate skelersecurity-core-security
Il plugin è abilitato immediatamente dopo l'attivazione. Visita Strumenti → SkelerSecurity Core per gestire:
| Impostazione | Predefinito | Descrizione |
|---|---|---|
| Protezione Batch API | Abilitata | Richiede autenticazione per la route REST Batch API di Core. |
Il registro di audit opzionale memorizza solo:
/batch/v1)Intenzionalmente non registra indirizzi IP, cookie, intestazioni di autorizzazione, corpi delle richieste, nomi utente o altri dati sensibili della richiesta.
| Tipo di richiesta | Risultato atteso mentre la protezione è attiva |
|---|
Una risposta anonima bloccata utilizza il codice di errore:
rest_batch_authentication_required
/wp-json/batch/v1rest_route=/batch/v1La Batch API può essere utilizzata da flussi di lavoro di amministrazione WordPress, plugin, temi, client mobili o integrazioni esterne. Le richieste autenticate rimangono consentite, ma testa le funzioni critiche per il business dopo aver abilitato il plugin.
Gli impatti potenziali possono includere integrazioni che inviano intenzionalmente richieste non autenticate alla Core Batch API. Se tale comportamento è necessario, valuta attentamente il rischio e implementa un'integrazione adeguatamente autenticata piuttosto che esporre ampiamente l'endpoint.
Una mitigazione a livello di rete dovrebbe coprire entrambi gli stili di routing. Bloccare solo /wp-json/batch/v1 è insufficiente perché WordPress può anche instradare la richiesta attraverso il parametro query rest_route.
Logica della regola consigliata:
/wp-json/batch/v1 (consenti slash finale opzionale).rest_route=/batch/v1.Testa la regola nel tuo ambiente. Questo plugin è utile se una modifica al WAF non può essere distribuita immediatamente, ma non dovrebbe impedirti di aggiornare WordPress Core.
Si prega di non segnalare vulnerabilità di sicurezza tramite issue pubbliche su GitHub.
Segnala sospette vulnerabilità privatamente al tuo contatto di sicurezza o al proprietario del repository. Includi una descrizione chiara, la versione interessata, un proof of concept riproducibile e una valutazione dell'impatto. Non includere credenziali, dati personali o payload distruttivi.
Questo progetto è concesso in licenza secondo i termini della GNU General Public License v2.0 o successiva.
| Registro audit minimo | Abilitato | Registra quando una richiesta Batch API anonima viene bloccata. |
| Voci da conservare | 50 | Limite di conservazione per le voci di audit locali; configurabile da 10 a 200. |
Richiesta anonima a /wp-json/batch/v1 | Bloccata con HTTP 401 |
Richiesta anonima a /?rest_route=/batch/v1 | Bloccata con HTTP 401 |
Richiesta autenticata WordPress/REST a /batch/v1 | Consentita per la normale elaborazione dell'autorizzazione WordPress |
| Richiesta a un'altra route REST | Non modificata da questo plugin |