Фонд OSTIF (Open Source Technology Improvement Fund), созданный с целью усиления защищённости открытых проектов, опубликовал результаты аудита безопасности библиотек Boost, применяемых во многих проектах на языке C++. Аудит, который был проведён по заказу OSTIF и Amazon Web Services итальянской компанией Shielder, выявил 7 проблем, из которых одной присвоен средний уровень опасности, а четырём – низкий, две проблемы опубликованы в виде информационных замечаний.
Изученные в ходе аудита библиотеки:
- Boost.Beast
- Boost.DLL
- Boost.Date_Time
- Boost.Filesystem
- Boost.GIL
- Boost.Graph
- Boost.JSON
- Boost.Program_Options
- Boost.Regex
- Boost.String_Algo
- Boost.URL
- Boost.UUID
Выявленные проблемы:
- Уязвимость в Boost.Beast, допускающая подстановку символов возврата каретки и перевода строки (CRLF) в HTTP-заголовки (может использоваться для расщепления заголовков). Проблеме присвоен средний уровень опасности.
- Переполнение стека в библиотеке Boost.Regex при рекурсивном выполнении операций с несколькими элементами end_line в регулярном выражении.
- Переполнение стека в библиотеке Boost.Regex при рекурсивном выполнении операций с несколькими группами захвата и объединения.
- Переполнение стека в библиотеке Boost.Regex при рекурсивном выполнении операций с несколькими открытыми круглыми скобками в строке форматирования.
- Переполнение стека в библиотеке Boost.Graph при рекурсивном выполнении операций с несколькими вложенными графами.
- Assert-срабатывание в функции breadth_first_search из библиотеки Boost.Graph.
- Неперехваченные исключения в Boost.DLL.
На основании полученной в ходе аудита информации команда разработчиков Boost уже устранила 4 проблемы и внесла 15 улучшений для расширения охвата кода и функций при проведении fuzzing-тестирования. Пока не исправлена проблема с расщеплением заголовков в Boost.Beast и не учтены информационные рекомендации.