Помилка 15-річної давності в Python робить уразливими понад 350 тис. проєктів
Дослідники Trellix виявили помилку в мові програмування Python, що створює ризик для сотень тисяч програмних проєктів. Виявлена вразливість системи безпеки існувала у Python протягом 15 років.
Наголошується, що вразливість CVE-2007-4559 вперше була виявлена ще 2007 року. Вона знаходиться в модулі tarfile, який використовується програмами Python для читання та запису архівів Tar. З її допомогою зловмисники можуть провести атаку обходу каталогу (path traversal) та перезаписати довільні файли у системі, що може призвести до виконання шкідливого коду. Тоді вразливість не виправили, а лише обмежилися попередженням про ризик в оновленій документації. Задля справедливості слід зазначити, що повідомлень про атаки та загрози безпеці, здатні використовувати CVE-2007-4559, не надходило.
Однак нещодавно компанія Trellix опублікувала нагадування про вразливість. Аналізуючи незв’язану вразливість, дослідники заявили, що натрапили на давню помилку у модулі tarfile.
Обговорюючи проблему в системі відстеження помилок Python, розробники ще раз дійшли висновку, що CVE-2007-4559 не є помилкою: «tarfile.py не робить нічого неправильного», – заявили розробники, і «немає відомих або можливих практичних експлойтів». Офіційна документація Python була оновлена ще раз із попередженням про можливу небезпеку, пов’язану із вилученням архівів з ненадійних джерел.
Дослідники Trellix не погоджуються з таким підходом і наполягають, що CVE-2007-4559 справді є вразливістю системи безпеки. Як доказ вони описали та продемонстрували простий експлойт, що використовує вразливість у середовищі розробки Spyder.
Trellix також вивчила поширеність CVE-2007-4559, проаналізувавши проєкти як із закритим, так і відкритим вихідним кодом. Спочатку вони виявили рівень уразливості 61% у 257 різних репозиторіях коду, а після автоматичної перевірки та аналізу більшого набору даних із 588840 репозиторіїв цей показник збільшився до 65%.
За оцінками Trellix, уразливості CVE-2007-4559 може бути схильне понад 350 тис. проєктів. Причому багато хто з цих проєктів використовується інструментами машинного навчання, щоб допомогти розробникам швидше завершити проєкт. Дослідники вже створили виправлення для приблизно 11 тис. проєктів і мають намір працювати далі в цьому напрямку.