﻿# PVS\-Studio 7\.37: улучшения taint\-анализа, выбор версии стандарта MISRA, анализ SLNX и многое другое

Вышел новый релиз PVS\-Studio — 7\.37\. Встречайте расширенный механизм анализа помеченных данных, возможность выбора версии стандарта MISRA, поддержку анализа MSBuild проектов на основе SLNX и ещё много других обновлений\! Больше подробностей в этой заметке\.

![1255_press_release_ru/image1.png](https://import.viva64.com/docx/blog/1255_press_release_ru/image1.png)


> Загрузить актуальную версию PVS\\\-Studio можно \[по этой ссылке\]\(https://pvs\-studio\.ru/ru/pvs\-studio/download/\)\\\.

## Расширение механизма анализа помеченных данных

В новой версии анализаторы PVS\-Studio обзавелись улучшениями в механизме анализа помеченных данных\.

В C\+\+ анализаторе PVS\-Studio этот механизм теперь распространяется на диагностики поиска других типов ошибок: деления на ноль, выхода за границу буфера, побитового сдвига на недостоверное значение, знакового переполнения и передачи аргументом недостоверного значения\.

В C\# и Java анализаторах был добавлен учёт помеченных данных при выходе за границу массива, определении переполнения и потенциальном делении на ноль\.

Эти изменения позволили анализатору находить ошибки и потенциальные уязвимости в большем количестве сценариев\.

## Выбор версии стандарта MISRA

Настройка, позволяющая выбрать версию стандарта MISRA C Coding Guidelines, была добавлена в плагины PVS\-Studio для интегрированных сред разработки Visual Studio Code, Qt Creator, CLion и Rider, а также в утилиты командной строки `PVS-Studio_Cmd.exe` и `pvs-studio-analyzer`\.

В прошлой версии PVS\-Studio подобная настройка была добавлена в плагин PVS\-Studio для интегрированной среды разработки Visual Studio\.

## Анализ проектов на основе SLNX

В анализаторе MSBuild\-проектов появилась возможность анализировать проекты на основе файла решения SLNX — нового и более лаконичного формата файлов решений, добавленного в \.NET SDK 9\.0\.200\.

## C23 и стандартная библиотека: улучшения в анализаторе C и C\+\+

В C и C\+\+ анализаторе была улучшена поддержка стандарта C23 с добавлением поддержки ключевых слов `constexpr` и `alignas`\.

Также была улучшена работа C и C\+\+ анализатора со стандартной библиотекой\. Был улучшен разбор `brace-initilalizer-list` для встроенных контейнеров, а также были проаннотированы `std::min`, `std::max`, `std::unique_ptr<T[]>::reset` и `std::unique_ptr<T[]>::release`\.

## PVS\-Studio на Нейтрино

Плагин PVS\-Studio для Qt Creator портирован на комплект разработчика для операционной системы Нейтрино на Windows\. Из данного комплекта поддержана работа с Qt Creator 6 \(Qt 5\.14\.2\)\.

## Интеграция результатов анализа PVS\-Studio в Securitm

Был добавлен раздел документации, который объясняет, как интегрировать результаты анализа кода в систему управления безопасностью Securitm\. В нем подробно описаны шаги по подключению, настройке отчётов и взаимодействию с системой\.


> \*\*Примечание\\\.\*\* Ознакомиться с новым разделом документации можно \[здесь\]\(https://pvs\-studio\.ru/ru/docs/manual/7179/\)\\\.

## Настройка Security Related Issues в \.pvsconfig

Ранее в плагинах PVS\-Studio для интегрированных сред разработки, а также в утилитах командной строки была добавлена возможность включения SAST\-идентификаторов для сообщений анализатора, относящихся к потенциальным угрозам безопасности \(Security Related Issues\)\.

Теперь подобная возможность добавлена и в файлы конфигурации диагностик `.pvsconfig`\.


> \*\*Примечание\\\.\*\* Подробнее о файлах конфигурации диагностик можно прочитать в \[соответствующем разделе\]\(https://pvs\-studio\.ru/ru/docs/manual/6630/\) нашей документации\\\.

Напомним, что идентификаторы Security Related Issues позволяют идентифицировать срабатывания анализатора, которые классифицируются как критические ошибки в стандарте ГОСТ Р 71207\-2024, описывающем использование статических анализаторов в процессе безопасной разработки программного обеспечения\.

## Breaking Changes

Эти изменения ломают обратную совместимость с предыдущими версиями анализатора\. В связи с этим вам может потребоваться изменить способ использования анализатора\.

* Изменено сообщение, выдаваемое диагностическим правилом [V1077](https://pvs-studio.ru/ru/docs/warnings/v1077/)\. Есть вероятность возникновения необходимости повторно подавить уже подавленные ранее предупреждения этого правила\.
* Из\-за распространения механизма анализа помеченных данных на диагностические правила [V557](https://pvs-studio.ru/ru/docs/warnings/v557/), [V609](https://pvs-studio.ru/ru/docs/warnings/v609/), [V610](https://pvs-studio.ru/ru/docs/warnings/v610/), [V1083](https://pvs-studio.ru/ru/docs/warnings/v1083/) и [V575](https://pvs-studio.ru/ru/docs/warnings/v575/) возможно повторное возникновение ранее подавленных сообщений, выданных диагностическим правилом [V1010](https://pvs-studio.ru/ru/docs/warnings/v1010/)\.

## Новые диагностические правила

C, C\+\+:

* [V1118](https://pvs-studio.ru/ru/docs/warnings/v1118/)\. Excessive file permissions can lead to vulnerabilities\. Consider restricting file permissions\.

C\#:

* [V5630](https://pvs-studio.ru/ru/docs/warnings/v5630/)\. Possible cookie injection\. Potentially tainted data is used to create a cookie\.
* [V3222](https://pvs-studio.ru/ru/docs/warnings/v3222/)\. Potential resource leak\. An inner IDisposable object might remain non\-disposed if the constructor of the outer object throws an exception\.
* [V3223](https://pvs-studio.ru/ru/docs/warnings/v3223/)\. Inconsistent use of a potentially shared variable with and without a lock can lead to a data race\.

Java:

* [V6126](https://pvs-studio.ru/ru/docs/warnings/v6126/)\. Native synchronization used on high\-level concurrency class\.
* [V6127](https://pvs-studio.ru/ru/docs/warnings/v6127/)\. Closeable object is not closed\. This may lead to a resource leak\.
* [V6128](https://pvs-studio.ru/ru/docs/warnings/v6128/)\. Using a Closable object after it was closed can lead to an exception\.
* [V6129](https://pvs-studio.ru/ru/docs/warnings/v6129/)\. Possible deadlock due to incorrect synchronization order between locks\.
* [V6130](https://pvs-studio.ru/ru/docs/warnings/v6130/)\. Integer overflow in arithmetic expression\.
* [V6131](https://pvs-studio.ru/ru/docs/warnings/v6131/)\. Casting to a type with a smaller range will result in an overflow\.
* [V5331](https://pvs-studio.ru/ru/docs/warnings/v5331/)\. OWASP\. Hardcoded IP addresses are not secure\.
* [V5332](https://pvs-studio.ru/ru/docs/warnings/v5332/)\. OWASP\. Possible path traversal vulnerability\. Potentially tainted data might be used to access files or folders outside a target directory\.

## Статьи

Для тех, кто пишет на C\+\+:

* [Сворачиваем CPython вокруг PVS\-Studio](https://pvs-studio.ru/ru/blog/posts/cpp/1246/)
* [Необходимость статического анализа для РБПО на примере 190 багов в TDengine](https://pvs-studio.ru/ru/blog/posts/cpp/1249/)
* [Создаём эмулятор Sega Mega Drive на C\+\+](https://pvs-studio.ru/ru/blog/posts/1252/)
* [Полезные материалы для C\+\+ разработчиков от PVS\-Studio](https://habr.com/ru/companies/pvs-studio/articles/915494/)

Для тех, кто пишет на C\#:

* [\.NET Digest \#7](https://pvs-studio.ru/ru/blog/posts/csharp/1250/)
* [История C\#: эволюция версий, \.NET, Unity, Blazor, MAUI](https://pvs-studio.ru/ru/blog/posts/csharp/1248/)

Для тех, кто пишет на Java:

* [Поиск в поиске: проверка Elasticsearch](https://pvs-studio.ru/ru/blog/posts/java/1247/)
* [Как NASA ошиблись в исходном коде планеты](https://pvs-studio.ru/ru/blog/posts/java/1253/)

Статьи общей направленности:

* [Подборка авторских Telegram\-каналов про разработку](https://habr.com/ru/companies/pvs-studio/articles/911192/)

## Вебинары

### Интеграция статического анализа и DevSecOps: PVS\-Studio и AppSec\.Hub в действии

Рассказали, как повысить безопасность кода с помощью современных инструментов\. PVS\-Studio — мощный статический анализатор, выявляющий ошибки и уязвимости в коде, и AppSec\.Hub — платформа DevSecOps от AppSec Solutions, которая автоматизирует внедрение инструментов безопасности и управление процессами безопасной разработки\. На вебинаре эксперты продемонстрировали возможности продуктов и объяснили, как интегрировать PVS\-Studio в AppSec\.Hub для создания эффективного конвейера DevSecOps\. Показали на практике, как сократить время на поиск уязвимостей и улучшить качество ПО\.

<https://vk.com/video_ext.php?oid=-11805870&id=456239545&hash=5ea05db13597d760>

### Регулярный статический анализ по ГОСТу

Разобрали часть требований стандартов 56939\-2024 и 71207\-2024 в области регулярного статического анализа\. Объяснили, как выстроить этот самый регулярный статический анализ в рамках РБПО, автоматизировать его через системы CI и значительно ускорить пайплайн за счёт эффективных подходов\. Рассказали, как интеграция анализа в процесс разработки поможет найти уязвимости раньше и сэкономить ресурсы команды\.

<https://vk.com/video_ext.php?oid=-11805870&id=456239557&hash=d4f38557da2cf699>

### Эффективная разработка с Нейтрино и PVS\-Studio: инструменты, безопасность и качество кода

На экспертном вебинаре от PVS\-Studio и ООО "СВД ВС" рассказали, как создавать надёжное и безопасное ПО с помощью современных инструментов разработки\. Представили обзор комплекта разработчика для ОС Нейтрино с кроссплатформенными решениями для Linux и Windows\. Продемонстрировали интеграцию PVS\-Studio в Qt Creator для автоматического выявления ошибок, уязвимостей и проверки соответствия стандартам \(SAST, MISRA, CWE\), а также показали практические кейсы с примерами работы инструментов в реальных проектах\.

<https://vk.com/video_ext.php?oid=-11805870&id=456239565&hash=232782332c853a8a>

## Доклады

Начали выпуск серии докладов про новый [ГОСТ Р 56939\-2024](https://GOST56939.RU)\. В первой части разбираем причины разработки и выпуска этой версии ГОСТа\. 

<https://vk.com/video_ext.php?oid=-11805870&id=456239558&hash=7a3156ec3ed0d95d>

Во второй части говорим про содержание нового ГОСТа и его структуру\.

<https://vk.com/video_ext.php?oid=-11805870&id=456239564&hash=4ad2aa894e679190>

## Подкасты

### Pure Virtual Cast / Эволюция подходов к парсингу C\+\+ в PVS\-Studio

Говорим про возможные подходы к парсингу C\+\+ в НЕ компиляторах\. Нужен ли полноценный парсер? Если нужен, то почему? Можно ли использовать готовые парсеры, в том числе из компиляторной инфраструктуры \(типа Clang\)? Зачем может понадобиться собственный парсер и с какими проблемами придётся столкнуться при его создании\.

<https://vk.com/video_ext.php?oid=-11805870&id=456239546&hash=29c7f553fd6a77a0>

### Подкаст linkmeup \| sysadmins N58\. РБПО \| Андрей Карпов

Поговорим о сложностях и особенностях разработки безопасного ПО в России\. Какие ГОСТ за это отвечают\. Какие есть старые и новые стандарты\. При чём тут ФСТЭК и анализатор кода PVS\-Studio\. Какие методики оценки есть у РБПО и как написать действительно безопасное ПО\. Почему "критическая ошибка" не всегда то, чем кажется?

<https://vk.com/video_ext.php?oid=-11805870&id=456239561&hash=9020b0b97e1aeb76>

### Ever Secure \| Статический анализ по\-серьёзному

На подкасте поговорили о развитии статических анализаторов, о ГОСТ Р 71207\-2024\. О том, как инструмент PVS\-Studio под стандарт адаптировали и продолжают это делать\. Рассказали про испытания статических анализаторов под руководством ФСТЭК\. И, конечно, ответили на вопросы зрителей\.

<https://vk.com/video_ext.php?oid=-11805870&id=456239562&hash=75735d6946fdb4f2>


> Хотите проверить свой проект с помощью PVS\\\-Studio? Начните \[с этой страницы\]\(https://pvs\-studio\.ru/ru/pvs\-studio/try\-free/\)\\\.

Если вы хотите получать новости о новых релизах, подпишитесь на рассылку от компании PVS\-Studio [по этой ссылке](https://pvs-studio.ru/ru/subscribe/)\.