В марте 2019 г. АНБ опубликовало исходный код Ghidra, сделав таким образом некогда секретную платформу публичным достоянием.
Эксперт под ником sghctoma выявил XXE-уязвимость (XML External Entity), которая позволяет запускать удаленный код в системе с установленной на ней Ghidra. Речь, впрочем, идет только о Windows.
Уязвимость непосредственно содержится в процедуре открытия или восстановления проекта внутри Ghidra. Злоумышленнику потребуется создать специальный проект, загрузить в него XXE-эксплойт в любой XML-файл, располагающийся в директории проекта, а затем каким-либо образом заставить потенциальную жертву открыть этот проект.
Со своей стороны, эксперты Tencent Security подтвердили, что таким образом можно обеспечить запуск произвольного кода в целевой системе. Учитывая, что Ghidra написана на Java, потенциальный злоумышленник может воспользоваться особенностями этого языка, а также - слабыми местами в протоколе NTLM в Windows. Например, злоумышленник может создать HTTP-сервер с NTLM-авторизацией, а затем использовать уязвимость XXE/SSRF для того, чтобы получить от машины жертвы NTLM-хеш и таким образом запускать произвольный код.
Проблему можно частично решить блокировкой SMB-запросов файерволлом Windows или активацией цифровой подписи SMB. Также рекомендовано обновиться до последней версии JDK.
В ближайшее время разработчики обещают выпустить версию 9.0.1, в которой данная проблема будет устранена.