![]() |
|
|||
WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
CVE о SQLite, вероятно, не относятся к
вашему использованию SQLite. Все исторические слабые места, о которых сообщают в SQLite,
требуют по крайней мере одного из этих предварительных условий: Нападающий может управлять произвольными
SQL-операторами. Нападающий может создать злонамеренно обработанный файл базы данных
для приложения, которое откроет и запросит. Немного реальных приложений встречают любое из этих предварительных
условий, и следовательно немного реальных приложений уязвимы, даже если они
используют более старые и неисправленные версии SQLite. Группа разработчиков SQLite исправляет ошибки быстро, обычно в течение
часов после открытия. Новые выпуски SQLite выпущены, если ошибка кажется
вероятно способной повлиять на реальные приложения. Хакеры вознаграждены на основе числа и серьезности CVE, которые они
находят. Это приводит к быстрому увеличению CVE, которые оказывают
незначительное влияние или никакого вообще, но которые предъявляют
преувеличенные претензии воздействия. Очень немного CVE в SQLite
являются реальными слабыми местами в том смысле, что они не дают новых
возможностей нападабщему. Рассмотрите: Почти все CVE требуют способности ввести и
управлять произвольным SQL. Рекламируемое последствие большей части CVE это "denial of service",
как правило вызывая катастрофу через NULL, деление на
нуль или подобное. Но если нападающий уже может управлять произвольным SQL, ему не нужна
ошибка, чтобы вызвать отказ в обслуживании. Есть много совершенно законных и
правильных SQL-операторов, которые будут потреблять неограниченный CPU,
объем памяти и дисковый I/O, чтобы создать отказ в обслуживании,
не требуя помощи ошибок. Следовательно, просто то, что у нападающего есть способ ввести и
управлять произвольным SQL, уже дает возможность для denial-of-service.
То, что произвольный SQL мог бы также использовать ошибку в SQLite и вызвать
катастрофу, не является новой уязвимостью. Разработчики SQLite не пишут CVE.
Любые CVE, которые вы находите на SQLite, произведены третьими лицами, часто
без любой связи с основнми разработчиками. Общий сценарий: кто-то сообщит об
ошибке в SQLite, которая будет быстро исправлена, затем несколько недель
спустя, CVE для той ошибки будет опубликован
без ведома разработчиков. Вы не должны предполагать, что CVE о SQLite содержит достоверную
информацию. CVE часто содержат погрешности. Разработчики SQLite попытались
добавить разъяснения и исправления. CVE ("Common Vulnerabilities and Exposures")
являются сообщениями о программных ошибках, которые могли бы позволить
системе быть взломанной. Идея CVE здравая. Они предоставляют общую схему
именования, посредством чего программные ошибки, которые могли бы поставить
под угрозу информационную безопасность, могут быть легко прослежены. В то время как оригинальная идея CVE здравая, текущие процессы для
создания и управления CVE несоответствующие. Есть бесчисленные хакеры,
работающие против большого разнообразия продуктов программного обеспечения с
открытым исходным кодом (SQLite, а также многие другие) и описывающие CVE
для любых проблем, которые они находят. Они вознаграждены, иногда престижем,
иногда в финансовом отношении, числом и серьезностью CVE, которые они пишут.
Этот стимул приводит к быстрому увеличению CVE, которые часто не исследуются
толком и могли преувеличить воздействие.
Процедуры контроля качества CVE неспособны справиться с этим наводнением,
мешая исправлять преувеличенные, вводящие в заблуждение, пропущенные
или неточные требования. Нельзя сказать, что CVE бесполезны. CVE действительно все еще (главным
образом) сообщают о фактических ошибках. Но в большинстве случаев ошибки не
истино слабые места в том смысле, что они не способствуют потере данных.
Хорошо, что об ошибках сообщают.
Но не каждая ошибка доступна от любого применения.
В случае SQLite большинство ошибок, сообщенных CVE, недоступно в большинстве
ситуаций. Модернизация до последней версии SQLite всегда хороший план, но это
не должно быть чрезвычайной ситуацией просто потому, что анонимный хакер
в Интернете описал CVE. Другие C-библиотеки, которые обрабатывают комплексные
структурированные входы, будут обычно иметь дело с неисследуемыми входами из
источников, которым не доверяют. Таким библиотекам, как libjpeg, libzip или
OpenSSL, вручают входные потоки, которые прибывают непосредственно от
потенциально враждебных агентов. Скрипты SQL, которые передаются в SQLite, прибывают из самого приложения
которому доверяют, а не от нападающего. Иногда приложения содержат ошибки,
которыми внешний нападающий может обмануть приложение и обеспечить отправку
нужного SQL в ядро базы данных. Это отдельная ошибка в приложении, названная
SQL Injection.
Так как текст на SQL это исполняемый код, уязвимость внедрения SQL на самом
деле особый случай
Remote
Code Execution (RCE) vulnerability.
Внедрения SQL, возможно, не совсем так же плохи, как другие виды RCE
потому что, в то время как SQL сильный язык, это не столь удобно для
обработки действий, как Python или машинный код.
Тем не менее, внедрение SQL это серьезная проблема. Большинство CVE, написанных о SQLite, предполагает, что нападающий в
состоянии управлять произвольным SQL в SQLite. В большинстве случаев это
означает, что должна сначала быть уязвимость внедрения SQL, которая позволяет
нападающему вводить злонамеренный SQL. Несколько приложений действительно позволяют скриптам
SQL, которым не доверяют, полученным от потенциально враждебных агентов, быть
запущенными прямо в SQLite. Главный пример этого веб-браузеры Chrome и
Safari, которые позволяют анонимной веб-странице управлять SQL, используя
функции WebSQL JavaScript. Это сделано в песочнице с ограничениями,
но скрипт может попробовать устроить denial-of-service.
Chrome и Safari имеют в распоряжении инфраструктуру, чтобы позволить
враждебному агенту управлять кодом, который не вредит или ставит под угрозу
остальную часть машины. Они также управляют JavaScript, который, если не
управляется жестко, мог бы нанести еще больше ущерба, чем SQL.
Кроме Хрома и Сафари, никакие известные разработчикам SQLite приложения
не позволяют анонимному отдаленному агенту управлять произвольным
кодом на SQL. Однако большинство CVE, написанные для SQLite,
предполагает, что нападающий свободен управлять любым произвольным SQL в ядре
базы данных. Таким образом, это означает, что большинство CVE действительны
только пока это используется в Хроме и Сафари. Или другими словами
большинство CVE для SQLite не относятся к вам, если вы не один из
разработчиков Хрома или Сафари. Большинство приложений может использовать SQLite, не имея необходимости
волноваться об ошибках в неясных входах SQL. Если приложение сознательно не
пытается сломать SQLite, то все должно просто работать. Не так уж необходимо
иметь последнюю исправленную версию SQLite. Любая более старая версия должна
работать просто великолепно. Однако, есть некоторые случаи, где применение действительно должно быть в
состоянии безопасно управлять SQL, которому не доверяют. Разработчики SQLite
упорно работают, чтобы сделать SQLite безопасным
с этой целью, хотя есть случайные ошибки. Хорошо быть в курсе последних
новостей в этом случае. Отдельная глава
содержит дополнительные предложения, которые могут помочь предотвратить атаки
zero-day в случаях, где SQLite дают вводы, которые прибывают непосредственно
из источников, которым не доверяют. Разработчики SQLite исправляют все ошибки в SQLite, как только о них
сообщают, обычно в течение нескольких часов. Исправления немедленно доступны
в общественном исходном дереве
SQLite. Если будет казаться, что ошибка могла бы вызвать проблемы для
существующих приложений, новый выпуск с патчем для SQLite будет выпущен. Однако, разработчики SQLite не отслеживают CVE.
Есть различные причины этого: Разработчики часто не узнают о CVE, пока
ошибка не исправлена. CVE это низкокачественный источник информации об ошибках в SQLite,
которые, вероятно, затронут большинство приложений. Почти все ошибки, сообщенные CVE,
являются просто ошибками и не истинными слабыми местами. Утверждение, что они
слабые места, просто растягивает значение слова "уязвимость", и
разработчики SQLite не хотят участвовать в этом обмане. Разработчики не имеют никакого редакционного влияния
на содержание CVE. Хотя разработчики SQLite не полагают, что CVE это
надежный источник информации об ошибках в SQLite, они признают, что
многие группы и особенно малочисленные команды
иногда должны отслеживать CVE, полезны они или нет. Чтобы помочь в этой
тяжелой работе, следующая таблица недавних CVE,
затрагивающих SQLite, предоставлена. Если вы замечаете новый CVE, связанный с SQLite, который не находится в
приведенной ниже таблице, пожалуйста, сообщите разработчикам на
SQLite Forum.
Choose any three.
1. Обзор
2. О CVE
2.1. Отдельная защита от внедрения SQL обычно требуется
2.2.
Защита против темных умельцев
2.3.
Политика разработчика SQLite по отношению к CVE
3.
Статус недавнего SQLite CVE
Номер CVE
Исправление
Комментарий
CVE-2023-32697
Не ошибка в SQLite
Это ошибка в JDBC-библиотеке SQLite, которая является
библиотекой-оболочкой, которая обеспечивает доступ к SQLite из Явы.
SQLite JDBC создается независимо от SQLite.
Несмотря на использование "SQLite" в имени, JDBC-библиотека не
связан с проектом SQLite ни в каком случае. Уязвимость, определенная этим
CVE, находится в отдельной библиотеке-оболочке JDBC и
не затрагивает сам SQLite.
CVE-2023-39939
Не ошибка в SQLite
Это не ошибка в SQLite. Это
SQL injection
в LuxCal Web Calendar, который может использовать SQLite. Даже при том, что
этот CVE не о SQLite, "SQLite" упоминается в описании и таким
образом мы перечисляем его здесь.
CVE-2023-39543
Не ошибка в SQLite
Это не ошибка в SQLite. Это
XSS vulnerability в отдельном приложении (LuxCal Web Calendar),
которое произвольно использует SQLite. Ошибка находится в приложении, а не в
SQLite. Однако, "SQLite" упоминается в описании и таким образом мы
перечисляем ее здесь.
CVE-2022-46908
Не ошибка в основной библиотеке SQLite
Это ошибка в параметре --safe командной строки
оболочки, которая доступна для доступа к файлам базы
данных SQLite. Ошибка не существует в библиотеке SQLite. И при этом это не
проблема для CLI, пока пользователь не зависит от
опции --safe. Это не серьезно. Спорно, является ли
это проблемой безопасности.
CVE-2022-38627
Не ошибка в SQLite
Это не ошибка в SQLite. Это
SQL injection
в приложении PHP. Другими словами, ошибка находится в коде приложения PHP, не
в SQLite. Даже при том, что этот CVE не о SQLite, "SQLite"
упоминается в сообщении об ошибке и таким образом мы
перечисляем ее здесь.
CVE-2022-35737
3.39.2
(2022-07-21)Эта ошибка переполнение границ множества.
Ошибка доступна только используя часть C API, обеспеченный SQLite.
Ошибка не может быть достигнута, используя SQL, и при этом это не может быть
достигнуто, предоставив SQLite сбойный файл базы данных. Ошибка происходит
только когда очень длинная последовательность вводится (больше 2 миллиардов
байт в длину) и даже тогда только при особых обстоятельствах.
CVE-2022-24854
Не ошибка в SQLite
Этот CVE описывает ошибку в применении, которое использует
SQLite, а не в самом SQLite. SQLite делает все правильно.
Приложение предоставляет пользователям способность управлять SQL-операторами,
используя SQLite, что может пропустить или изменить информацию, к которой у
тех пользователей не должно обычно быть доступа. Это просто прикладная ошибка.
Это не описывает сбой или уязвимость в SQLite.
CVE-2022-21227
Не ошибка в SQLite
Этот CVE описывает ошибку в стороннем пакете,
который обеспечивает привязку SQLite к Node.js.
Сообщенная ошибка находится в сторонней привязке Node.js, а
не в самом SQLite. Не смущайтесь при слове "SQLite"
в двусмысленно сформулированном описании CVE.
CVE-2021-45346
Не ошибка в SQLite
Этот CVE дезинформация. Посмотрите дискуссию по поводу в
SQLite forum post 53de8864ba114bf.
CVE-2021-42169
Не ошибка в SQLite
У этого CVE нет ничего вообще, чтобы сделать с SQLite.
Он именно об ошибке в приложении, которое, оказывается, использует SQLite.
Так как SQLite упоминается в описании CVE, он включен здесь, чтобы
подчеркнуть, что это не ошибка SQLite.
CVE-2021-36690
Не ошибка в основной библиотеке SQLite
Эта ошибка не находится в библиотеке SQLite, а скорее в
экспериментальном расширении, которое используется, чтобы осуществить
команду .expert в CLI.
Код, который содержит ошибку, не появляется в
стандартной сборке SQLite, хотя это включено в
утилиту командной строки sqlite3.exe.
Приложения должны компоноваться с дополнительными файлами исходного кода,
которые осуществляют расширение, и принимать другие намеренные меры, чтобы
активировать расширение, прежде чем неприятным кодом можно будет управлять.
Для редкого применения, которое использует неприятное расширение, последствие
этой ошибки в том, что злонамеренный SQL может вызвать сбой указателя NULL
и denial of service.
Подробности.
CVE-2021-28305
Не ошибка в SQLite
Это не ошибка в SQLite.
Ошибка находится в стороннем применении, которое использует SQLite.
SQLite упоминается по имени в описании CVE, однако, таким образом,
мы включили CVE в список.
CVE-2021-23404
Не ошибка в SQLite
Это не ошибка в SQLite.
Ошибка находится в стороннем применении, которое использует SQLite.
SQLite упоминается по имени в описании CVE, однако, таким образом,
мы включили CVE в список.
CVE-2021-20227
3.34.1
(2021-01-20)Злонамеренный SQL-оператор вызывает read-free.
Никакого вреда не может выйти из этого конкретного случая read-free.
Ошибка необнаружима без дезинфицирующего средства памяти. CVE утверждает, что
эта ошибка RCE, Remote Code Execution,
но это требование неправильное. Требование RCE это дезинформация.
Подробности
CVE-2021-20223
3.34.0
(2020-12-01)Проблемой, определенной этим CVE, не является
уязвимость. Это сбой. Ошибка заставляет FTS5
иногда возвращать непоследовательные и неправильные результаты при неясных
обстоятельствах, но никакие ошибки памяти не происходят.
Подробности
CVE-2020-15358
3.32.3
(2020-06-18)Злонамеренный SQL-оператор вызывает чтение после
конца буфера кучи.
Подробности
CVE-2020-13871
3.32.3
(2020-06-18)Злонамеренный SQL-оператор вызывает ошибку использования
после освобождения только для чтения.
Подробности
CVE-2020-13632
3.32.0
(2020-05-22)Злонамеренный SQL-оператор вызывает чтение NULL в функции
SQL matchinfo() в расширении
FTS3, в итоге denial of service.
Подробности
CVE-2020-13631
3.32.0
(2020-05-22)Злонамеренный SQL-оператор (ALTER TABLE, который пытается
переименовать виртуальную таблицу
в одну из ее собственных теневых
таблиц) вызывает бесконечный цикл и отказ в обслуживании.
Подробности
CVE-2020-13630
3.32.0 Злонамеренный SQL-оператор вызывает использование после
освобождения read-only памяти, возможно приводящее к неправильному выводу
функции SQL snippet() расширения
FTS3. Нет никакого известного способа фильтровать
данные или повредить приложение, используя эту ошибку.
Подробности
(2020-05-22)
CVE-2020-13435
3.32.1
(2020-05-25)Злонамеренный SQL-оператор вызывает доступ для чтения к NULL
и denial of service.
Подробности
CVE-2020-13434
3.32.1
(2020-05-25)Злонамеренный SQL-оператор, включающий SQL-функцию printf(),
вызывает целочисленное переполнение, которое может переписать стек более чем
2 миллиардами байтов 0x30 или 0x20 (ASCII '0' или ''). Даже при том, что это
перепишет стек, нет никакого известного способа перенаправить контроль или
иначе нарастить уровень вреда.
Это только атака "отказ в обслуживании".
Подробности
CVE-2020-11656
3.32.0
(2020-05-22)Злонамеренный SQL-оператор вызывает использование после
освобождения памяти read-only, если SQLite, собирают с -DSQLITE_DEBUG.
Не затрагивает сборки конечных версий.
Подробности
CVE-2020-11655
3.32.0
(2020-05-22)Злонамеренный SQL-оператор вызывает чтение с использованием
неинициализированного указателя и denial-of-service.
Подробности
CVE-2020-9327
3.32.0 Злонамеренный SQL-оператор вызывает чтение с использованием
неинициализированного указателя и denial-of-service.
Подробности
(2020-05-22)
CVE-2020-6405
3.31.0
(2020-01-22)Злонамеренный SQL-оператор вызывает освобождение NULL и
denial-of-service.
Подробности
CVE-2019-20218
3.31.0
(2020-01-22)Злонамеренный SQL-оператор вызывает чтение
неинициализированного указателя и отказ в обслуживании.
Подробности
CVE-2019-19959
3.31.0
(2020-01-22)Злонамеренный SQL-оператор вызывает освобождение NULL
в расширении виртуальной таблице Zipfile и
denial-of-service. Это возможно только, когда расширение
Zipfile virtual table развернуто, в сборках по
умолчанию его нет.
Подробности
CVE-2019-19926
3.31.0
(2020-01-22)Злонамеренный SQL-оператор вызывает чтение
неинициализированного указателя и отказ в обслуживании.
Подробности
CVE-2019-19925
3.31.0
(2020-01-22)Злонамеренный SQL-оператор вызывает освобождение NULL в
расширении Zipfile virtual table и
denial-of-service. Это возможно только, когда расширение
Zipfile virtual table развернуто, в сборках по
умолчанию это не так.
Подробности
CVE-2019-19924
3.31.0
(2020-01-22)Злонамеренный SQL-оператор вызывает ссылку по
неинициализированному указателю и отказ в обслуживании.
Подробности
CVE-2019-19923
3.31.0
(2020-01-22)Злонамеренный SQL-оператор вызывает освобождение NULL и
denial-of-service.
Подробности
CVE-2019-19646
3.31.0
(2020-01-22)PRAGMA
integrity_check мог бы заставить байт-код для подготовленного запроса
образовывать неопределенные циклы. Это могло бы позволить отказ в
обслуживании, если приложение не сделало соответствующие и благоразумные
шаги, чтобы ограничить время выполнения SQL-операторов.
Это не уязвимость, поскольку есть бесчисленные совершенно действительные
SQL-запросы, особенно включающие
рекурсивные общие выражения таблицы
, которые также могут работать вечно.
Подробности
CVE-2019-19317
3.31.0
(2020-01-22)Это CVE определяет ошибку в регистрации развития SQLite.
Ошибка никогда не появлялась ни в каком официальном выпуске SQLite.
Подробности