Дэниел Cтенберг (Daniel Stenberg), автор утилиты для получения и отправки данных по сети curl, предупредил пользователей о публикации организацией MITRE, отвечающей за ведение базы данных общеизвестных уязвимостей, отчёта с информацией о ложной критической уязвимости. Проблеме присвоен CVE-идентификатор CVE-2020-19909 и выставлен уровень опасности 9.8 из 10, свойственный для удалённо эксплуатируемых уязвимостей, приводящих к выполнению кода с повышенными привилегиями.
На деле отчёт об уязвимости ссылается на проблему в коде разбора параметра командной строки “–retry-delay”, которая была устранена в 2019 году и приводила к целочисленному переполнению. Так как ошибка проявляется только при явной передаче некорректного значения при запуске утилиты из командной строки и приводит к неверной интерпретации задержки перед повторной отправкой данных (несколько секунд вместо заданных миллиардов лет), ошибка не была отнесена разработчиками к категории уязвимостей.
Тем не менее, спустя три кода кто-то отправил в MITRE отчёт об уязвимости и присвоил проблеме критический уровень опасности. Вопрос также вызывает то, как MITRE мог согласиться с заявленным уровнем опасности, так как даже если бы это была эксплуатируемая уязвимость, проблемы, приводящие к отказу в обслуживании, обычно помещаются в категорию неопасных. Примечательно, что разработчики curl обратились в MITRE с просьбой отменить CVE-отчёт, но представители MITRE ограничились отпиской, отказались удалить CVE и лишь пометили его как спорный (“DISPUTED”).
Данный инцидент можно было бы считать единичным случаем, но проект PostgreSQL сообщил о выявлении подобного ложного отчёта, также отправленного 22 августа и привязанного к старому CVE-идентификатору, выданному в 2020 году.
Отчёт об уязвимости CVE-2020-21469, которой присвоен статус опасной (7.5 из 10), ссылается на исправленную в 2020 году ошибку, проявляющуюся при обработке сигнала SIGHUP серверным процессом PostgreSQL. В CVE заявлено, что через повторяющуюся отправку сигнала SIGHUP серверному процессу можно добиться отказа в обслуживании. Разработчики PostgreSQL не считают данную ошибку уязвимостью, так как для её проявления требуется выполнение действий с правами администратора или пользователя postgres, имеющего полный доступ к СУБД (нет смысла вызывать отказ в обслуживании, когда достаточно прав для штатного завершения процесса и удаления БД).
Анализ нетипичных CVE, созданных 22 августа, показал, что в этот день было добавлено около 150 отчётов (1, 2, 3, 4, 5, 6) под идентификаторами, выданными в 2020-2022 годах. Идентификаторы охватывают большое число открытых проектов и, на первый взгляд, также интерпретируют обычные ошибки, не связанные с обработкой внешних данных, как опасные уязвимости. Например, среди заявленных проблем, которым присвоен статус критически опасных:
- CVE-2022-48522 – переполнение стека в функции S_find_uninit_var из Perl 5.34.0. Указано, что наблюдаемое аварийное завершение может привести к удалённому выполнению кода или локальному повышению привилегий.
- CVE-2022-48174 – переполнение стека в интерпретаторе ash из набора busybox. Заявлена возможность выполнения кода злоумышенника при выполнении команд в ash.
- CVE-2022-47022 – ошибка в topology-linux.c из open-mpi hwloc 2.1.0, приводящая к отказу в обслуживании через glibc-cpuset.
- CVE-2022-36648 – ошибка при эмуляции of_dpa_cmd_add_l2_flood в QEMU 7.0.0. Заявлено о потенциальной возможности добиться выполнения кода на стороне хост-системы через выполнения определённого кода в гостевой ОС.
- CVE-2022-26592 – переполнение стека в libsass 3.6.5, затрагивающее функцию CompoundSelector::has_real_parent_ref.
- CVE-2020-24295,
CVE-2020-24293,
CVE-2020-24292, CVE-2021-40263,
CVE-2021-40265 – серия проблем в пакете FreeImage, проявляющихся при разборе изображений в разных форматах. - CVE-2021-29390 – переполнение кучи в функции decompress_smooth_data (jdcoefct.c) из библиотеки libjpeg-turbo 2.0.90, позволяющее прочитать 2 байта из области вне буфера.
- CVE-2020-35357 – переполнение буфера в функции gsl_stats_quantile_from_sorted_data из библиотеки GSL (GNU Scientific Library) 2.5 и 2.6, которое может привести к выполнению кода при обработке специально оформленных входных данных.
- CVE-2020-22219 – переполнение буфера в функции bitwriter_grow_ в кодировщике flac, которое может привести к выполнению кода при обработке специально оформленных входных данных.
- CVE-2020-22217– переполнение буфера в функции ares_parse_soa_reply (ares_parse_soa_reply.c) из пакета c-ares.
Спорные отчёты направлены анонимно через сервис информирования об уязвимостях NIST. Мотив публикации не ясен, вероятно кто-то решил продемонстрировать отсутствие должного аудита при приёме отчётов об уязвимостях, возможность использования CVE как механизма для дискредитации проектов или привлечь внимание к исправлению в коде потенциально опасных проблем без анализа их влияния на безопасность. Наиболее вероятно, что кто-то подготовил отчёты на основе изучения исправленных ошибок, которые потенциально были способны привести к уязвимостям, но были признаны разработчиками основных проектов, как не влияющие на безопасность (например, могло быть переполнение буфера, но оно проявлялось только при обработке внутренних данных, на которые не может влиять пользователь).