Три бага популярных СУБД, которые ждали исправления больше 20 лет и были исправлены лиш...
Три бага популярных СУБД, которые ждали исправления больше 20 лет и были исправлены лишь в этом году Добрый день! Сегодня расскажу Вам три истории о том, как долго могут жить ошибки в самых популярных базах данных. MySQL, баг #11472 (2005–2026) При каскадном удалении/обновлении через FOREIGN KEY триггеры на связанной таблице не вызывались. Никаких ошибок — просто молча пропускали. Разработчики знали, но не трогали — боялись сломать обратную совместимость. Закрыли только в этом году в рамках WL#17024. Автор оригинального уведомления о баге (Omer Barnir) отреагировал: «Торты всё ещё приветствуются». PostgreSQL и баг в pg_crypto: В расширении для PGP pg_crypto нашёлся heap buffer overflow. Достаточно было отправить специально сформированное зашифрованное сообщение — и сервер выполнял произвольный код. Ошибка сидела в коде с самого добавления модуля в 2005-м. Нашли баг при помощи ИИ, с помощью инструмента Xint Code. Исправление вышло в этом феврале для всех актуальных версий (14.x–18.x). PostgreSQL и валидация UTF-8 строк: В тот же день та же команда нашла ещё одну уязвимость — пропущенную валидацию длины для многобайтных символов в кодировке UTF-8, которая также позволяла подменить выполняемый сервером код. Его также исправили в тех же версиях, но не с первого раза. Первый патч был настолько неудачным, что сломал обработку нормальных строк, и поэтому часть фикса пришлось откатить.