Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
PHP-8.1.0-dev-Backdoor — Backdoor User-Agentt di PHP 8.1.0-dev per l'Esecuzione Remota di Codice (RCE) | Kitploit
Strumenti/GitHubGitHub/k3ystr0k3r/php-8.1.0-dev-backdoor
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WebSicurezza della Supply ChainSviluppo Payload
GitHubk3ystr0k3r/php-8.1.0-dev-backdoor

PHP-8.1.0-dev-Backdoor

Backdoor User-Agentt di PHP 8.1.0-dev per l'Esecuzione Remota di Codice (RCE)

Vedi Repository
1193 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Backdoor User-Agentt in PHP 8.1.0-dev – Esecuzione Remota di Codice (RCE)

Gravità: Critica (Equivalente CVSS: 10.0)

Tipo di vulnerabilità: Backdoor nella supply chain / Esecuzione Remota di Codice (RCE)

Software interessato: PHP 8.1.0-dev (Solo build di sviluppo)

Vettore di attacco: Remoto (Non autenticato)

Autenticazione richiesta: No

Interazione utente: Nessuna

Impatto: Compromissione completa del sistema


Panoramica

La backdoor User-Agentt di PHP 8.1.0-dev è uno dei compromessi della supply chain più infami nella storia del software open source. A differenza delle vulnerabilità tradizionali che derivano da errori di programmazione, questo problema è stato causato da codice dannoso inserito intenzionalmente nel repository ufficiale del codice sorgente di PHP.

La backdoor è apparsa negli snapshot di sviluppo di PHP 8.1.0-dev nel marzo 2021, dopo che gli attaccanti hanno compromesso con successo l'infrastruttura Git di PHP. I commit dannosi si spacciavano per mantenitori PHP di fiducia e introducevano un meccanismo nascosto in grado di eseguire codice PHP arbitrario ogni volta che veniva ricevuta un'intestazione HTTP appositamente costruita.

Sebbene la backdoor sia esistita solo per breve tempo prima di essere scoperta e rimossa, qualsiasi server che avesse distribuito una delle build di sviluppo compromesse è diventato immediatamente vulnerabile a Esecuzione Remota di Codice (RCE) non autenticata.

Questo incidente ha cambiato radicalmente il flusso di lavoro di sviluppo di PHP e ha infine portato alla migrazione del repository del codice sorgente di PHP lontano dalla sua infrastruttura Git self-hosted. :contentReference[oaicite:0]{index=0}


Perché questa vulnerabilità è unica

La maggior parte delle vulnerabilità di esecuzione remota di codice deriva da:

  • Overflow del buffer
  • Errori di validazione dell'input
  • Corruzione della memoria
  • Difetti logici

Questa vulnerabilità era diversa.

Non era un errore di programmazione.

Era una backdoor inserita deliberatamente nascosta all'interno del codice sorgente PHP legittimo.

Invece di sfruttare una debolezza esistente, gli attaccanti hanno modificato PHP stesso per eseguire codice PHP arbitrario fornito da chiunque effettuasse una richiesta HTTP.

Ciò rende questo incidente uno degli esempi più noti di attacco alla supply chain del software.


Contesto

Il 28 marzo 2021, due commit sospetti sono comparsi nel repository Git di PHP.

Entrambi i commit sembravano provenire da noti mantenitori di PHP.

Inizialmente sembravano innocui.

I messaggi dei commit somigliavano a normali correzioni di refusi.

Tuttavia, i ricercatori hanno rapidamente notato codice sospetto aggiunto all'interprete PHP.

Il codice inserito cercava nelle richieste HTTP in arrivo un'intestazione personalizzata:

User-Agentt

Notate la "t" in più.

Questa sottile differenza ortografica ha aiutato a nascondere la backdoor durante una revisione superficiale.

Se l'intestazione iniziava con la stringa di attivazione:

zerodium

PHP eseguiva immediatamente tutto ciò che seguiva utilizzando:

zend_eval_string()

Questo di fatto consentiva a chiunque di eseguire codice PHP arbitrario da remoto.

I commit dannosi sono stati rimossi entro poche ore dalla scoperta. Le indagini successive hanno indicato che gli attaccanti avevano compromesso l'infrastruttura Git di PHP piuttosto che ottenere legittimamente le chiavi di firma dei mantenitori. :contentReference[oaicite:1]{index=1}


Causa principale

Il codice inserito eseguiva approssimativamente la seguente logica:

Incoming HTTP Request
          │
          ▼
Read User-Agentt Header
          │
          ▼
Does header start with "zerodium"?
          │
      Yes ▼
Execute remaining text as PHP
          │
          ▼
Attacker gains Remote Code Execution

Invece di trattare l'intestazione come metadati innocui, PHP la valutava direttamente come codice PHP eseguibile.


Analisi tecnica

Normalmente una richiesta HTTP contiene intestazioni simili a:

GET / HTTP/1.1

Host: example.com

User-Agent: Mozilla Firefox

La versione PHP compromessa elaborava inoltre:

User-Agentt:

Se il suo valore iniziava con:

zerodium

PHP chiamava:

zend_eval_string()

Il contenuto rimanente diventava PHP eseguibile.

Concettualmente:

User-Agentt:

zerodium
        │
        ▼
zend_eval_string(payload)
        │
        ▼
Remote Code Execution

Flusso dell'attacco

Attacker
    │
    │ HTTP Request
    ▼

GET /

User-Agentt: zerodiumsystem("id");

    │
    ▼

PHP 8.1.0-dev

    │
    ▼

Backdoor Triggered

    │
    ▼

system("id")

    │
    ▼

Command Executed

    │
    ▼

Output Returned

Nessuna autenticazione.

Nessuna sessione.

Nessuna credenziale.

Una sola richiesta HTTP era sufficiente.


Perché "User-Agentt"?

Gli attaccanti hanno scelto intenzionalmente

User-Agentt

invece di

User-Agent

perché:

  • sembrava quasi identico
  • avrebbe eluso una revisione superficiale
  • la maggior parte degli sviluppatori ignora intestazioni HTTP sconosciute
  • le applicazioni esistenti avrebbero continuato a funzionare normalmente

Questo minuscolo refuso nascondeva una backdoor completa di esecuzione remota di codice.


Versioni interessate

Solo:

PHP 8.1.0-dev

Nello specifico, gli snapshot di sviluppo compromessi pubblicati durante l'incidente del marzo 2021.

Le versioni stabili come:

  • PHP 7.x
  • PHP 8.0
  • PHP 8.1 stabile

non sono state mai interessate.


Requisiti dell'attacco

L'attaccante aveva bisogno solo di:

  • Accesso alla rete
  • Connettività HTTP
  • Un server PHP 8.1.0-dev vulnerabile

Nessuna autenticazione.

Nessuna forza bruta.

Nessun login.

Nessun accesso precedente.


Impatto

Lo sfruttamento con successo consente agli attaccanti di:

  • Eseguire comandi arbitrari del sistema operativo
  • Eseguire codice PHP arbitrario
  • Leggere file sensibili
  • Modificare applicazioni web
  • Caricare web shell
  • Installare backdoor persistenti
  • Estrarre database
  • Rubare credenziali
  • Elevare i privilegi
  • Spostarsi più in profondità nelle reti interne
  • Compromettere completamente l'host interessato

In pratica, questa vulnerabilità porta a compromissione completa del server.


Mappatura MITRE ATT&CK

TecnicaDescrizione
T1195Compromissione della supply chain
T1059Interprete di comandi e script
T1505Componente software del server
T1105Trasferimento di strumenti in ingresso
T1071Protocollo del livello applicativo
T1106API nativa
T1055Iniezione di processi (possibile post-sfruttamento)
T1027File o informazioni offuscati

Rilevamento

Gli amministratori dovrebbero indagare immediatamente sui sistemi che espongono:

PHP/8.1.0-dev

all'interno di intestazioni di risposta come:

X-Powered-By:

PHP/8.1.0-dev

I log HTTP dovrebbero inoltre essere esaminati per richieste sospette contenenti:

User-Agentt

o

zerodium

Molti sistemi di rilevamento delle intrusioni e prodotti IPS ora includono firme specifiche per questo schema di attacco. :contentReference[oaicite:2]{index=2}


Indicatori di Compromissione (IOC)

I possibili indicatori includono:

  • Richieste contenenti User-Agentt
  • Valori di intestazione che iniziano con zerodium
  • Esecuzione di comandi inattesa
  • File PHP sconosciuti
  • Nuove web shell
  • Processi figli sospetti generati da PHP
  • Connessioni di rete in uscita inspiegabili

Complessità dello sfruttamento

ProprietàValore
AutenticazioneNessuna
Interazione utenteNessuna
ComplessitàMolto bassa
Privilegi richiestiNessuno
RemotaSì
Scarica lo strumento