PT-2012-22: Уязвимость форматной строки в SQLite

Уязвимое ПО

SQLite
Версия: 3.7.13 и более ранняя
Операционная система: OS/2 (eComStation)

Ссылка:
http://sqlite.org/

Рейтинг опасности

Уровень опасности: Средний
Воздействие: Отказ в обслуживании
Вектор атаки: Локальный

CVSS v2:
Base Score: 5.5
Vector: (AV:L/AC:M/Au:S/C:C/I:P/A:P)

CVE: отсутствует

Описание программы

SQLite — легковесная встраиваемая реляционная база данных.

Описание уязвимости

Специалисты Исследовательского центра Positive Research компании Positive Technologies обнаружили уязвимость форматной строки в SQLite

При открытии файлов через SQLite на операционной системе OS/2 (eComStation) путь к файлу для преобразования из относительного в абсолютный проходит через функцию os2FullPathname. В процессе исполнения этой функции путь к файлу попадает в функцию sqlite3_snprintf в качестве строки форматирования, а не как аргумент для нее. Таким образом, у злоумышленников появляется возможность использовать управляющие последовательности в строке форматирования.

Уязвимость содержится в файле /sqlite3.c.
Уязвимый фрагмент кода:

static int os2FullPathname(
...
const char *zRelative,      /* Possibly relative input path */
...
char *zFull                 /* Output buffer */
){
char *zRelativeCp = convertUtf8PathToCp( zRelative );
...
APIRET rc = DosQueryPathInfo( (PSZ)zRelativeCp, FIL_QUERYFULLNAME,
zFullCp, CCHMAXPATH );
free( zRelativeCp );
zFullUTF = convertCpPathToUtf8( zFullCp );
sqlite3_snprintf( nFull, zFull, zFullUTF );
...

Пример эксплуатации

При открытии базы данных с названием "%s%s%s%s%s%s%s" произойдет отказ приложения SQLite.

Решение

С 21.06.2012 производитель прекратил поддержку SQLite для OS/2. Версия 3.7.13 и более ранние подвержены этой уязвимости. Рекомендуется не использовать SQLite на OS/2.

Статус уведомления

10.07.2012 - Производитель уведомлен
06.09.2012 - Публикация уязвимости

Благодарности

Уязвимость обнаружил Сергей Бобров (Исследовательcкий центр Positive Research компании Positive Technologies)

Ссылки

http://www.securitylab.ru/lab/PT-2012-22

Список отчетов о ранее обнаруженных уязвимостях Positive Research:

http://www.ptsecurity.ru/lab/advisory/
http://www.securitylab.ru/lab/

Уязвимости