Кілька тому днів вони випускали новини визначеного вразливість у Ghostscript (CVE-2020-15900) що міг викликати модифікацію файлу та довільне виконання команди при відкритті спеціально відформатованих документів PostScript.
Тим, хто не знайомий з Ghostscript, слід це знати це механізм візуалізації вмісту Postscript та PDF і він зазвичай використовується для перетворення PDF та Postscript документів у зображення для попереднього перегляду, ескізів та друку.
Він також використовується для повноякісного відтворення документів для багатьох переглядачів PDF, включаючи популярних глядачів на Android, і ліцензований декількома великими компаніями, такими як Google, для візуалізації в хмарі.
Про вразливість у Ghostscript
Помилка була ідентифікована за допомогою оператора rsearch Нестандартний PostScript у документі, що дозволяє викликати переповнення типу uint32_t при розрахунку розміру, перезаписати області пам'яті з буфера призначено та отримує доступ до файлів у файловій системі, які можна використовувати для інтенсивної атаки для виконання довільного коду в системі (наприклад, шляхом додавання команд до ~ / .bashrc або ~ / .profile).
Фрагмент, знайдений AFL, штовхнув порожній рядок у стек: порожні дужки (), скопіював посилання на це, в результаті чого з’явився стек з двома порожніми рядками () (), а потім здійснив зворотний пошук. Іншими словами, він шукав порожній рядок у порожньому рядку, починаючи з кінця.
На жаль, вони пропустили прикордонний випадок, коли шукають порожній рядок. Під час пошуку порожнього рядка це визначається як негайний успіх: немає чого шукати, тому ми переходимо до кінця. Однак результат потрібно розділити на значення до матчу, матчу та після матчу. На жаль, код припускав, що ми принаймні один раз переглянули і неправильно розрахували тривалість результату після матчу, віднімаючи одиницю від нуля, що призводить до повернення до максимального значення: 4,294,967,295 XNUMX XNUMX XNUMX.
Ця помилка це дефект пам'яті, де існує ймовірність несправності і це відбувається постійно. Не потрібно мати справу з захисниками стека тощо, просто читайте і пишіть все, що завгодно, у масивний сегмент пам'яті. Це дозволило експлуатувати його комусь, хто не є досвідченим письменником.
Завдяки цьому недотоку, цей рядок ніколи не виділявся і не займав реального простору, але він мав довжину, яка поширювалася на іншу пам'ять. Спроба прочитати або записати, що пам’ять за випадковими адресами виходить за межі пам’яті, звідси і всі нечіткі помилки. Однак ми могли б зберегти посилання, щоб дозволити його використання, використовуючи цей фрагмент коду:
Важливо врахувати це вразливості в Ghostscript є більш серйознимиоскільки цей пакет використовується у багатьох популярних програмах обробки PostScript та PDF. Наприклад, Ghostscript викликається при створенні ескізів на робочому столі, при індексації даних у фоновому режимі та при перетворенні зображень.
Для успішної атаки в багатьох випадках достатньо просто завантажити файл експлоїту або переглянути каталог із ним у Nautilus.
Вразливості в Ghostscript також можна використовувати за допомогою драйверів зображень на основі пакетів ImageMagick та GraphicsMagick передача файлу JPEG або PNG, який містить замість зображення код PostScript (цей файл буде оброблений у Ghostscript, оскільки тип MIME розпізнається вмістом і не залежить від розширення).
Рішення
Випуск стосується версій від 9.50 до 9.52 (Помилка існує з версії 9.28rc1, але на думку дослідників, які виявили вразливість, вона з’явилася з версії 9.50).
Але виправлення вже пропонувалось у версії 9.52.1 на додаток до цього таопубліковано оновлення пакетів виправлень для деяких дистрибутивів Linux, таких як Debian, Ubuntu та SUSE.
Тоді як пакунки в RHEL не впливають.
Фуенте: https://insomniasec.com