Приведет ли привязка к очень старым версиям glibc к уязвимостям в системе безопасности?

#security #glibc #dynamic-linking

#Безопасность #glibc #динамическое связывание

Вопрос:

Я компилирую программу (которая написана на Rust), которую я хотел бы совместить с очень старыми и устаревшими системами, включая некоторые EOL-ed дистрибутивы Linux. Основным препятствием для этого является то, что в старых системах отсутствуют последние двоичные файлы glibc.

Решение не такое сложное, вы должны просто ссылаться на очень старый двоичный файл. Однако известно, что эти старые двоичные файлы имеют много уязвимостей в системе безопасности, некоторые из которых довольно серьезные. Я хотел бы поддерживать совместимость с людьми, работающими на этих древних и небезопасных установках glibc, не подвергая риску моих более ответственных пользователей.

Приведет ли привязка к старым версиям glibc к уязвимостям в системах, установки которых обновлены?

Ответ №1:

Приведет ли привязка к старым версиям glibc к уязвимостям в системах, установки которых обновлены?

Нет, если вы ссылаетесь динамически.

Все исправления, влияющие на GLIBC, находятся в libc.so.6 (и связанных библиотеках). Эти библиотеки обычно поступают из системы, поэтому в современной системе они являются актуальными (по определению), и ваша программа будет автоматически использовать их и, следовательно, сама будет обновляться.

Фактически, это одна из основных причин динамической привязки: обновление libc.so.6 исправляет все (динамически связанные) программы в системе сразу. При статической привязке каждая программа должна быть повторно привязана, чтобы исправление вступило в силу.