
Доказательство концепции для CVE-2020-9715, уязвимости типа use-after-free в движке EScript Adobe Acrobat Reader DC. Генерирует PDF, запускающий шаблон уязвимости для проверки обнаружения EDR. Без включённой вредоносной нагрузки.
Использование после освобождения в кэше ESObject EScript.api Adobe Acrobat Reader DC. Только для авторизованного тестирования EDR красной команды.
Adobe Acrobat Reader DC <= 2020.009.20063. Движок EScript кэширует объекты данных ESObject с ключами, сохраняющими исходную кодировку (ANSI или Unicode). При удалении всегда создаются ключи Unicode, поэтому записи с именами в ANSI никогда не очищаются из кэша. После освобождения объекта сборщиком мусора устаревшая запись в кэше становится висячим указателем.
OpenAction обращается к dataObjects для заполнения кэша ESObjectArrayBuffer для повторного захвата освобождённой памятиЭтот PoC запускает шаблон уязвимости, но не включает вооружённую полезную нагрузку (нет шеллкода, нет ROP-цепочек). Он предназначен для проверки, обнаруживает ли ваш EDR технику эксплуатации.
python generate_poc.py # Generates CVE-2020-9715.pdf
python generate_poc.py -o custom.pdf # Custom output path
Нет внешних зависимостей — использует только стандартную библиотеку Python.
Ваш EDR должен реагировать на один или несколько из следующих признаков:
ArrayBuffer)dataObjects с последующей принудительной сборкой мусора и повторным доступом (шаблон UAF)OpenAction + EmbeddedFiles + JavaScriptИсправлено в APSB20-48 (август 2020 г.).