
CVE-2017-9841 script di rilevamento
Script rilevatore di CVE-2017-9841 di Massimiliano Brasile
Il 6 gennaio 2020 sono stato avvisato di un problema di sicurezza che apparentemente colpiva la maggior parte delle versioni di PrestaShop (l'avviso è stato condiviso dal team PS solo internamente il 3 gennaio 2020). Dopo alcune ricerche, ho scoperto che il problema è legato a una libreria di framework di test chiamata PHPUnit [1] che è accidentalmente inclusa in alcuni moduli di produzione utilizzati in PrestaShop 1.7 (distribuiti tramite API di PrestaShop o con le installazioni di PrestaShop). Il problema per PHPUnit è stato etichettato CVE-2017-9841 [2] [3], ma l'avviso per PrestaShop è attivo al momento perché esiste almeno un bot (XsamXadoo) che scansiona i siti PS proprio per questo problema [4].
Tecnicamente, CVE-2017-9841 si riferisce alla possibilità di eseguire codice remoto su qualsiasi applicazione che utilizza una versione difettosa di phpunit/phpunit e l'8 gennaio 2020 è stato scoperto un altro problema ( prima di 4.8.28 e 5.x prima di 5.6.3 relativo alle versioni precedenti a 7.5.19 per 7.x e 8.5.1 per 8.x [5] ). Poiché phpunit è un framework famoso, sembra che il problema abbia impatto sui principali CMS PHP (PrestaShop, Wordpress, Drupal, ..) e sui loro plugin, ma solo nel caso in cui lo utilizzino. Per aiutare a trovare queste backdoor, è obbligatorio verificare la presenza di questo framework di test in ogni sottocartella della tua radice web. Quindi, per velocizzare il tutto, ho scritto questo piccolo script rapido e sporco che mi aiuta a controllare tutte le istanze di PrestaShop o Wordpress di cui sono responsabile.
Secondo il forum PS [4], questi moduli devono essere controllati:
Ma nei miei test l'ho trovato anche nel modulo ps_facetedsearch v3.2.1. Non era presente in autoupgrade v4.9+.
In caso di occorrenza di versioni difettose di istanze phpunit, aggiorna se possibile il modulo padre o rimuovi (cancella la cartella) se mancano di supporto dal loro sviluppatore; secondo il forum PS, dovresti rimuovere completamente tutte le cartelle vendor all'interno di questi moduli, ma deve essere verificato!
[2] https://nvd.nist.gov/vuln/detail/CVE-2017-9841
[3] https://www.cvedetails.com/cve/CVE-2017-9841
[4] https://www.prestashop.com/forums/topic/1012095-hack-prestashop-avec-xsamxadoo-bot
[5] NON ancora ufficiale!! vedi https://github.com/PrestaShop/PrestaShop/issues/17059#issuecomment-572114133