L'iniezione di oggetti PHP è una vulnerabilità in cui input non attendibile viene inserito nella gestione degli oggetti PHP, di solito tramite funzioni come unserialize(). Se dati controllati dall'attaccante possono modellare le proprietà di un oggetto o il tipo di classe, PHP può invocare metodi magici come __wakeup() o __destruct() in modi non intenzionati dallo sviluppatore. Da sola, la falla è un pericoloso problema di confine di fiducia; con la giusta gadget chain, può trasformarsi in eliminazione di file, bypass dell'autenticazione, server-side request forgery o esecuzione remota di codice.
Questo è importante perché molte applicazioni PHP, inclusi i plugin di WordPress, memorizzano stato complesso in forma serializzata. Un piccolo errore di validazione nelle impostazioni di un widget, nei dati della cache o in una configurazione copiata può esporre un percorso di iniezione di oggetti. I difensori riducono il rischio evitando unserialize() su input dell'attaccante, usando restrizioni allowed_classes, firmando i dati serializzati e riesaminando il codice alla ricerca di gadget chain raggiungibili. Gli aggressori cercano punti in cui cookie malformati, campi di modulo o parametri API vengono considerati attendibili come oggetti invece che come semplici dati.


