Взломщики проникли в защищенные серверы из-за SQL-инъекции, связанной с особенностями Unicode в PostgreSQL.
Проблема заключалась в функции
pg_escape_string, отвечающей за экранирование пользовательского ввода, и её вызове внутри PostgreSQL-библиотеки libpq.Хакеры использовали два байта (c0 27), которые PostgreSQL ошибочно интерпретировал как часть валидного Unicode-символа. В результате этот механизм позволил атакующим внедрить неэкранированный одиночный апостроф ('), открывший путь для SQL-инъекции.
Как так получилось? Оказался супер редкий случай. После раскрытия проблемы, PostgreSQL уже выпустил обновление, исправляющее баг в
pg_utf_mblen.@your_tech
