Виявлено вразливість у GNU Coreutils: утиліта sort
Виявлено вразливість у утиліті sort з пакету GNU Coreutils
У утиліті sort, яка входить до складу пакету GNU Coreutils, виявлено вразливість (CVE-2025-5278), що призводить до звернення до даних поза межами буфера під час сортування з використанням синтаксису “+POS1[.C1][OPTS]”.
Деталі вразливості у утиліті sort
Проблема спричинена цілочисельним переповненням у функції begfield(), що дозволяє зчитати вміст одного байта даних поза буфером. Цей синтаксис використовується для виділення ключів сортування в даних, що обробляються.
Вразливість може використовуватися для спричинення аварійного завершення програм або організації витоку інформації з процесу, коли зловмисник передає спеціально оформлені параметри сортування.
Важливо зазначити, що ця проблема проявляється починаючи з версії 7.2, випущеної у 2009 році. На даний момент вона усунена у формі патчу на офіційному сайті GNU Coreutils.
Як відтворити проблему з утилітою sort
Вразливість можна відтворити спробою відсортувати файл, що містить рядок “aa\nbb” командою:
./sort +0.18446744073709551615R poc_input.txt
Це демонструє, як зловмисник може використати спеціально сформовані параметри для експлуатації цієї вразливості.
Наслідки та рекомендації щодо вразливості
Вразливість у утиліті sort становить загрозу для систем, де використовується пакет GNU Coreutils версії 7.2 та новіших. Однак вона обмежена можливістю читання лише одного байта поза буфером.
Проте навіть такий обмежений доступ може призвести до витоку конфіденційної інформації або аварійного завершення роботи програм, що є критичним для багатьох серверних додатків.
Адміністраторам систем рекомендується якнайшвидше встановити оновлення безпеки, випущене розробниками GNU Coreutils. Інформація про патч доступна на офіційному списку розсилки проєкту.
Крім того, варто переглянути скрипти та програми, які використовують утиліту sort із застарілим синтаксисом “+POS”, і по можливості оновити їх до використання сучасного синтаксису з опцією “-k”.
Важливість своєчасного оновлення системних утиліт
Цей випадок ще раз підтверджує важливість регулярного оновлення базових системних компонентів. GNU Coreutils присутній практично в кожному дистрибутиві Linux та багатьох Unix-подібних системах.
Незважаючи на те, що вразливість існувала понад 15 років, її виявлення та усунення демонструє ефективність процесів перегляду коду та аудиту безпеки в проєктах з відкритим програмним кодом.