Найти в Дзене

glibc 2.43: Библиотека, которую вы не замечаете, только что стала ещё опаснее для хакеров (и быстрее для вас)

Привет! Народ, представьте: вы спокойно пьёте чай, запускаете firefox, apt update или просто ls в терминале — и вдруг вся эта магия происходит благодаря библиотеке, которой уже под 40 лет, но она всё ещё главная дива в Linux-оркестре. И вот 24 января 2026-го (да, совсем свежак!) выходит glibc 2.43. Та самая GNU C Library, без которой ваш любимый дистр — просто красивая оболочка над хаосом. Обычно все такие: «О, очередное обновление для гиков, мне-то что». А на деле это как если бы в двигателе вашей машины внезапно поставили новые поршни, свечи и мозги ECU, но при этом расход упал, а разгон вырос — и вы даже не почувствовали замены. Вот и здесь: почти все программы на Linux (от bash до nginx, от LibreOffice до вашего крипто-майнера на GPU) используют именно её. Главный прикол релиза — он наконец-то начал активно дружить с ISO C23 и POSIX.1-2024. Знаете, как раньше компилятор ругался на ваш старый код, а вы думали «да ладно, работает же»? Теперь некоторые трюки официально признали прави

Привет! Народ, представьте: вы спокойно пьёте чай, запускаете firefox, apt update или просто ls в терминале — и вдруг вся эта магия происходит благодаря библиотеке, которой уже под 40 лет, но она всё ещё главная дива в Linux-оркестре. И вот 24 января 2026-го (да, совсем свежак!) выходит glibc 2.43. Та самая GNU C Library, без которой ваш любимый дистр — просто красивая оболочка над хаосом.

Обычно все такие: «О, очередное обновление для гиков, мне-то что». А на деле это как если бы в двигателе вашей машины внезапно поставили новые поршни, свечи и мозги ECU, но при этом расход упал, а разгон вырос — и вы даже не почувствовали замены. Вот и здесь: почти все программы на Linux (от bash до nginx, от LibreOffice до вашего крипто-майнера на GPU) используют именно её.

Главный прикол релиза — он наконец-то начал активно дружить с ISO C23 и POSIX.1-2024. Знаете, как раньше компилятор ругался на ваш старый код, а вы думали «да ладно, работает же»? Теперь некоторые трюки официально признали правильными. Появились free_sized и free_aligned_sized — чтобы освобождать память и сразу говорить «эй, я знаю, сколько байт отдаю, не угадывай». memset_explicit — чтобы нули в чувствительных данных (пароли, ключи) писались максимально надёжно, без оптимизаций компилятора, которые могут их выкинуть. assert теперь глотает выражения с запятыми внутри — больше не будет «wtf, почему assert сломался на (a, b)».

Ещё круче: для старых-добрых strcpy, strchr и прочих, которые возвращают указатель внутрь строки, теперь есть const-версии. Передаёшь const char* — получаешь const char* обратно. Раньше приходилось кастовать или терпеть предупреждения. Старый код может теперь материться при сборке — но это хороший мат, типа «ты наконец-то стал честным».

Теперь про паранойю безопасности (мой любимый раздел). Добавили поддержку mseal() — системный вызов, который буквально «запечатывает» кусок памяти. После этого его нельзя ни перезаписать правами, ни munmap'нуть, ни mremap'нуть, ни уменьшить. Представьте: вы выделили регион под крипто-ключ, запечатали — и даже если эксплойт получит доступ, он уже не сможет превратить его в исполняемый или подменить. Это как банковский сейф с одноразовой пломбой. Пока Linux-ядро это поддерживает — glibc теперь умеет пользоваться.

Ещё openat2 — более строгий и мощный брат openat. С кучей флагов для контроля, но с нюансом: работает только в режиме large file support и может быть отменён. Зато для тех, кто пишет особо параноидальный код — подарок.

Производительность? О да. Забрали кучу вкусных оптимизаций из проекта CORE-MATH. Теперь acosh, asinh, atanh, erf, erfc, lgamma, tgamma — быстрее и точнее. Плюс улучшенные fma, remainder, frexp и их длинные версии. Где-то даже старые SVID-поведения выкинули в отдельные символы-алиасы, чтобы основной путь летал без тормозов.

Архитектурные вкусняшки:

- AArch64 теперь по умолчанию пихает 2-мегабайтные huge pages в malloc — меньше промахов TLB, серверы и телефоны скажут спасибо.

- RISC-V обзавёлся векторным memset под RVV — когда железо поддерживает, копирование памяти становится космическим.

- x86 подтянули распознавание свежих Intel (Nova Lake, Wildcat Lake и т.д.) — чтобы ваш новый ноутбук не работал в режиме «ой, я тебя не знаю, буду осторожничать».

- Плюс защита BTI на ARM, предупреждения через LD_DEBUG=security — чтобы вы знали, если что-то подозрительно грузится.

И вишенка: Unicode 17.0, куча фиксов безопасности (некоторые CVE закрыли), экспериментальная сборка под Clang — на случай, если вы фанат LLVM и хотите бросить GCC.

Короче, обновляйтесь, когда ваш дистр подтянет (в rolling уже наверняка полетело, в Debian-based через пару месяцев). Вы ничего не заметите… кроме того, что всё стало чуточку быстрее, чуточку безопаснее и чуточку современнее. А это, согласитесь, лучший комплимент для системной библиотеки — когда её обновление проходит незамеченным, но делает жизнь лучше.