ИБ-специалист обнаружил опасную уязвимость в SQLite, которая на протяжении 22 лет оставалась незамеченной

ИБ-специалист обнаружил опасную уязвимость в SQLite, которая на протяжении 22 лет оставалась незамеченной

Уязвимость затрагивает SQLite версий с 1.0.12 по 3.39.1.

Брешь в защите SQLite обнаружил и подробно описал ИБ-специалист Адреас Келлас. Ей присвоены идентификатор CVE-2022-35737 и оценка 7.5 из 10 по шкале CVSS. Уязвимость связана с переполнением целочисленного значения и затрагивает SQLite версий с 1.0.12 по 3.39.1.

Как говорится в описании CVE-2022-35737, SQLite 1.0.12 - 3.39.x до 3.39.2 иногда допускает переполнение границ массива, если миллиарды байт используются в строковом аргументе для C API. Злоумышленник может воспользоваться этим и выполнить произвольный код на пораженной системе.

Келлас пишет, что уязвимость возможно эксплуатировать только на 64-битных системах. Кроме того, последствия использования CVE-2022-35737 меняются в зависимости от того, как компилируется программа:

  • Злоумышленник может выполнить произвольный код при компиляции библиотеки без стековых канареек;

  • Произвольный код может быть не выполнен при наличии стековых канареек (Stack Canary);

  • Отказ в обслуживании происходит во всех случаях.

Эксперт пояснил, что для использования уязвимости злоумышленники должны передать в функцию printf большие строковые входные данные, причем строка формата должна содержать тип подстановки: %Q, %q или %w. По словам Келласа, CVE-2022-35737 связана с переполнением целочисленного значения, которое возникает, когда функция sqlite3_str_vappendf получает большую строку и когда тип подстановки равен %q, %Q или %w.

Исследователь также обнаружил, что если строка формата содержит символ “!” – специальный символ, включающий сканирование символов юникода, то можно добиться выполнения произвольного кода или провести DoS-атаку.

Подводя итоги, Келлас сказал, что 22 года назад эта уязвимость, могла даже не казаться уязвимостью, так как почти все системы были 32-битными.

Наш канал горячее, чем поверхность Солнца!

5778 К? Пф! У нас градус знаний зашкаливает!

Подпишитесь и воспламените свой разум