В СУБД SQLite нашли серьезную уязвимость, которая попала в код еще в октябре 2000 года. Проблема могла позволить злоумышленникам вызывать сбои в работе программ или управлять ими.

Проблему обнаружили специалисты Trail of Bits, которые пишут, что ей был присвоен идентификатор CVE-2022-35737 и оценка 7,5 баллов по шкале CVSS. Исследователи рассказывают, что баг можно эксплуатировать в 64-разрядных системах, и «возможность использования зависит от того, как скомпилирована программа».

«Выполнение произвольного кода возможно, когда библиотека скомпилирована без стековых “канареек”, но невозможно в случае их присутствия. Отказ в обслуживании подтверждается во всех случаях», — гласит отчет.

Проблема связана с целочисленным переполнением, которое возникает, если чрезвычайно большой input строки передается в качестве параметров SQLite-имплементациям функций printf, которая, в свою очередь, используют другую функцию для обработки форматирования строки (sqlite3_str_vappendf). При этом атака осуществима лишь при условии, что строка формата содержит подстановки %Q, %q или %w.

«Если строка формата содержит специальный символ  '!' для включения сканирования на символы Юникода, то в худшем случае можно добиться выполнения произвольного кода или заставить программу зависнуть и зациклиться на (почти) неопределенный срок», — добавляют эксперты.

Проблема затрагивала SQLite версий от 1.0.12 до 3.39.1 и была устранена с релизом версии 3.39.2, выпущенной 21 июля 2022 года.

Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии