
Proof-of-concept exploit per CVE-2022-24086 e CVE-2022-24087, che dimostra l'esecuzione remota di codice pre-autenticazione in Magento/Adobe Commerce tramite payload appositamente costruiti che aggirano la validazione degli input.
CVE-2022-24086 e CVE-2022-24087 - vulnerabilità di convalida impropria dell'input nel modulo di contatto di Magento Open Source e Adobe Commerce - ha ricevuto un punteggio CVSS di 9,8 su 10, ed è classificata come un problema di pre-autenticazione, il che significa che potrebbe essere sfruttata senza credenziali.
Magento Open Source / Adobe Commerce - 2.3.3-p1 - 2.3.4
Magento Open Source / Adobe Commerce - 2.3.4-p2 - 2.4.2-p2
Magento Open Source / Adobe Commerce - 2.4.3 - 2.4.3-p1
CVE-2022-24086 era una vulnerabilità di sicurezza zero-day critica che ha colpito i negozi Magento. La vulnerabilità è stata segnalata in un numero limitato di attacchi. Un'altra falla, CVE-2022-24087, ha lo stesso livello di gravità e un vettore di attacco simile.
Dopo alcune ricerche non ho trovato alcun PoC legittimo e funzionante per dimostrare la gravità di quella falla da parte di Adobe e ho deciso di crearne uno mio. Dal reverse engineering delle patch ufficiali e non ufficiali ho scoperto che in /app/code/Magento/Email/Model/Template/Filter.php l'input non veniva ripulito correttamente e che, a causa dell'incapacità della piattaforma di riconoscere una combinazione di tipi di caratteri durante la validazione del modulo, le sequenze dannose possono provocare danni senza ostacoli, consentendo di bypassare i metodi di convalida dell'input normalmente usati per sanificare tipi di input indesiderati. Ciò apre la possibilità di attacchi di iniezione SQL e di iniezione di oggetti PHP all'interno di Magento, che possono aggiungere voci indesiderate al database o consentire l'esecuzione remota di codice.
Alcune parti del codice aggiunto nelle patch ufficiali (MDVA-43395) che ci portano al PoC:
Quello che dobbiamo fare è creare un payload sofisticato da inviare tramite POST: