22-летний баг в PostgreSQL превратился в удалённое выполнение кода
22-Year-Old PostgreSQL Bug Turned into Remote Code Execution

Мехмет Индже, исследуя расширение pg_clickhouse, заинтересовался, как PostgreSQL определяет типы данных. Он обнаружил, что Datum не хранит информацию о типе — её задаёт OID из pg_type, а функции вывода слепо доверяют этим метаданным. С помощью LANGUAGE internal он намеренно вызвал путаницу типов, что привело к падению бэкенда. Дальнейшее развитие идеи позволило превратить 22-летнюю уязвимость в надёжный эксплойт для удалённого выполнения кода (CVE-2026-6460).
Я передал PostgreSQL значение внутри составного типа, изменил тип одного из его полей и попросил прочитать значение обратно. Эта путаница типов привела к одному из самых надёжных эксплойтов повреждения памяти, которые я видел.