Как стать автором
Обновить

В Perl исправлена уязвимость переполнения буфера при транслитерации специально оформленных не-ASCII символов

Время на прочтение2 мин
Количество просмотров520

В интерпретаторах Perl 5.40.2 и 5.38.4 исправлена уязвимость CVE-2024-56406, приводящая к переполнению буфера при транслитерации специально оформленных не-ASCII символов при помощи оператора "tr/../../".

По информации OpenNET, не исключается возможность эксплуатации уязвимости для организации выполнения своего кода в системе. Проблема проявляется в стабильных релизах Perl начиная с 2021 года и затрагивает ветки Perl 5.34, 5.36, 5.38 и 5.40. Проследить за устранением уязвимости в дистрибутивах можно на следующих страницах: Debian, Ubuntu, Fedora, Arch, FreeBSD. Дистрибутивы на основе RHEL 9, SUSE 15 и openSUSE Leap 15.6 уязвимости не подвержены, так как включают версии Perl 5.32 и 5.26.

Уязвимость CVE-2024-56406 затрагивает приложения, использующие непроверенные внешние данные в левой части оператора "tr", в которой указывается переменная с данными для замены символов (например, "$external_string =~ tr/a/b/"). В обеспечивающей работу оператора функции S_do_trans_invmap() при обработке некоторых не-ASCII байтов происходит обращение к памяти вне выделенного буфера. Переполнение возникает из-за того, что некоторые последовательности байтов в исходном наборе данных могут быть преобразованы в последовательности UTF-8, для которых требуется два байта вместо одного.

Примечательно, что уязвимость CVE-2024–56406 возникла после добавленного в Perl в 2020 году изменения, убирающего дополнительную проверку достаточного выделения памяти под предлогом того, что при расчёте размера можно обойтись округлением размера в большую сторону.

Для проверки в текущей рабочей версии perl наличия уязвимости CVE-2024–56406 можно выполнить код:

perl -e '$_ = "\x{FF}" x 1000000; tr/\xFF/\x{100}/;'     
Segmentation fault (core dumped)
Теги:
Хабы:
+5
Комментарии0

Другие новости

Истории

Работа

Ближайшие события

19 марта – 28 апреля
Экспедиция «Рэйдикс»
Нижний НовгородЕкатеринбургНовосибирскВладивостокИжевскКазаньТюменьУфаИркутскЧелябинскСамараХабаровскКрасноярскОмск
22 апреля
VK Видео Meetup 2025
МоскваОнлайн
23 апреля
Meetup DevOps 43Tech
Санкт-ПетербургОнлайн
24 апреля
VK Go Meetup 2025
Санкт-ПетербургОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань
14 мая
LinkMeetup
Москва
5 июня
Конференция TechRec AI&HR 2025
МоскваОнлайн
20 – 22 июня
Летняя айти-тусовка Summer Merge
Ульяновская область