Эксперты обнаружили семь уязвимостей в библиотеке LibXL на языке C, предназначенной для считывания файлов Excel. Все баги заслужили оценку в 8,8 балла по шкале CVSS.

Любая из этих брешей позволяет атакующему провести атаку с целью удаленного выполнения кода с помощью специально созданного файла XLS, о чем на этой неделе публично сообщили исследователи Cisco Talos.

«Библиотека LibXL поддерживается на системах Windows, Mac и Linux и способна считывать файлы в различных версиях формата Microsoft Excel, от современного до Excel 97», — отметили эксперты Cisco Talos.

«Библиотека входит в состав пакета readXL, который можно установить через репозиторий CRAN для языка программирования R», — отметили исследователи. Кроме того, библиотека LibXL применяется в утилите xls2csv, представляющей собой скрипт командной строки, который раскодирует текстовые табличные файлы и сохраняет их в виде значений, разделенных запятыми.

Все уязвимости нашел Марцин Нога (Marcin Noga), исследователь из команды Cisco Talos.

Одна из семи уязвимостей (CVE-2017-2896) позволяет злоумышленнику разослать по почте вредоносный XLS-файл, который при открытии спровоцирует повреждение памяти в целевой системе и откроет возможность для удаленного выполнения кода.

«Опасная уязвимость с записью вне допустимого диапазона скрывается в функции xls_mergedCells библиотеки libxls 1.4», — пишут эксперты Cisco Talos.

Вторая уязвимость (CVE-2017-2897) кроется в функции read_MSAT библиотеки LibXL 1.4.

«Специально модифицированный файл XLS может вызвать повреждение памяти с последующим удаленным выполнением кода. Для этого злоумышленнику нужно лишь отправить жертве вредоносный файл XLS», — сообщают исследователи.

Что касается бреши CVE-2017-12110, то она связана с целочисленным переполнением, возникающим в ходе выполнения функции xls_appendSST библиотеки LibXL 1.4. Целочисленное переполнение происходит, если в результате арифметической операции получается значение, превышающее максимальный размер использованного типа целочисленной переменной.

На десерт остались уязвимость с переполнением буфера стека (CVE-2017-2919), два целочисленных переполнения с эскалацией до переполнения буфера (CVE-2017-12108 и CVE-2017-12109) и баг с записью вне допустимого диапазона (CVE-2017-12111).

Специалисты CiscoTalos подчеркнули, что исправления к указанным уязвимостям доступны только через SVN-репозиторий LibXL.

Категории: Уязвимости