Компания Cisco представила новый значительный выпуск свободного антивирусного пакета ClamAV 0.105.0, а также опубликовала корректирующие выпуски ClamAV 0.104.3 и 0.103.6 с исправлением уязвимостей и ошибок. Напомним, что проект перешёл в руки Cisco в 2013 году после покупки компании Sourcefire, развивающей ClamAV и Snort. Код проекта распространяется под лицензией GPLv2.
Ключевые улучшения в ClamAV 0.105:
- В число обязательных для сборки зависимостей включён компилятор для языка Rust. Для сборки требуется как минимум версия Rust 1.56. Необходимые библиотеки-зависимости на языке Rust включены в основной состав пакета ClamAV.
- Переписан на языке Rust код для инкрементального обновления архива БД (CDIFF). Новая реализация позволила значительно ускорить применение обновлений, удаляющих большое число сигнатур из базы. Это первый модуль, переписанный на Rust.
- Увеличены установленные по умолчанию значения лимитов:
- MaxScanSize: 100M > 400M
- MaxFileSize: 25M > 100M
- StreamMaxLength: 25M > 100M
- PCREMaxFileSize: 25M > 100M
- MaxEmbeddedPE: 10M > 40M
- MaxHTMLNormalize: 10M > 40M
- MaxScriptNormalize: 5M > 20M
- MaxHTMLNoTags: 2M > 8M
- Максимальный размер строки в файлах конфигурации freshclam.conf и clamd.conf повышен с 512 до 1024 символов (при указании токенов доступа параметр DatabaseMirror мог превышать 512 байт).
- Для определения изображений, используемых для фишинга или при распространении вредоносного ПО, реализована поддержка нового вида логических сигнатур, в которых используется метод нечёткого хэширования (fuzzy hashing), позволяющий выявлять похожие объекты с определённой степенью вероятности. Для генерации нечёткого хэша для изображения можно использовать команду “sigtool –fuzzy-img”.
- В ClamScan и ClamDScan встроена возможность сканирования памяти процессов. Данная возможность перенесена из пакета ClamWin и специфична для платформы Windows. В ClamScan и ClamDScan на платформе Windows добавлены опции “–memory”, “–kill” и “–unload”.
- Обновлены runtime-компоненты для выполнения байткода, основанные на LLVM. Для увеличения производительности сканирования по сравнению с предлагаемым по умолчанию интерпретатором байткода предложен режим JIT-компиляции. Прекращена поддержка старых версий LLVM, для работы теперь можно использовать версии LLVM c 8 по 12.
- В Clamd добавлена настройка GenerateMetadataJson, эквивалентная опции “–gen-json” в clamscan и приводящая к записи в файл metadata.json метаданных о ходе сканирования в формате JSON.
- Предоставлена возможность сборки с использованием внешней библиотеки TomsFastMath (libtfm), включаемой при помощи опций “-D ENABLE_EXTERNAL_TOMSFASTMATH=ON”, “-D TomsFastMath_INCLUDE_DIR=” и “-D TomsFastMath_LIBRARY=”. Входящая в поставку копия библиотеки TomsFastMath обновлена до версии 0.13.1.
- В утилите Freshclam улучшено поведение при обработке таймаута ReceiveTimeout, который теперь обрывает только зависшие загрузки и не прерывает активные медленные загрузки с передачей данных по плохим каналам связи.
- Добавлена поддержка сборки ClamdTop с использованием библиотеки ncursesw в случае отсутствия ncurses.
- Устранены уязвимости:
- CVE-2022-20803 – двойное освобождение памяти в парсере файлов OLE2.
- CVE-2022-20770 – бесконечное зацикливание в парсере файлов CHM.
- CVE-2022-20796 – аварийное завершение из-за разыменования нулевого указателя в коде проверки кэша.
- CVE-2022-20771 – бесконечное зацикливание в парсере файлов TIFF.
- CVE-2022-20785 – утечка памяти в парсере HTML и нормализаторе Javascript.
- CVE-2022-20792 – переполнение буфера в модуле загрузки базы сигнатур.
Release.
Ссылка here.