Январская починка дыр

Аккурат к концу новогодних каникул в России, 9-го января, Microsoft выпустили обновления, исправляющие CVE-2018–0786 и CVE-2018–0764. В этом коротком посте мы ещё раз вспомним, что это такое и что нам теперь делать.


Для иллюстрации этого хабрапоста я попытался изобразить решето. Как видите, у меня не получилось. К сожалению, сделать решето в коде — гораздо проще, чем изобразить его, в первый раз взяв в руки графический планшет.


sxv14ojroonigrgz4o8bce334yo.png
Я тоже под угрозой?

Нужно пойти на файловую систему и посмотреть, какая версия установлена. Если там нет директории 1.0.9, 1.1.6 или 2.0.5, то у вас проблемы!


Где смотреть:


Windows C:\Program Files\dotnet\shared\Microsoft.NETCore.App\
macOS /usr/local/share/dotnet/shared/Microsoft.NETCore.App/
GNU/Linux /usr/share/dotnet/shared/Microsoft.NETCore.App/


Точный список уязвимых версий:


Версия рантайма Исправлено в версии
1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.0.5, 1.0.7, 1.0.8 1.0.9
1.1.0, 1.1.1, 1.1.2, 1.1.4, 1.1.5 1.1.6
2.0.0, 2.0.3, 2.0.4 2.0.5


Что делать?


Разработчикам придётся обновить .NET Core SDK до версий 2.1.4 или 1.1.7. Сисадминам нужно обновить .NET Core до версий 1.0.9, 1.1.6 или 2.0.5. Self-contained приложения придётся пересобрать.


CVE-2018–0764: Denial of Service when parsing XML documents

Официальные ссылки


  • Github: .NET Foundation
  • Common Vulnerabilities and Exposures Database


Что случилось?

.NET Core плохо парсит XML, пользуясь чем, хакер может устроить DDOS-атаку на ваше приложение.


В обновлении это починили. Эксплоиты публично не распространялись.



CVE-2018–0786: Security Feature Bypass in X509 Certificate Validation

Официальные ссылки


  • Github: .NET Foundation
  • Common Vulnerabilities and Exposures Database


Что случилось?


В общедоступных версиях .NET Core есть уязвимость, позволяющая хакеру подсунуть сертификат, помеченный невалидным для конкретного способа использования, и тем не менее использовать его по этому назначению. Это позволяет игнорировать Enhanced Key Usage.


В обновлении это починили. Эксплоиты публично не распространялись.


Нужно ли обновлять пакеты?

Уязвимости подвержен пакет Microsoft.NETCore.UniversalWindowsPlatform.
Версия пакета указана вместе с соответствующей ему версией .NET Native.


NuGet / .NET Native Исправлено в версии
5.2.* / 1.4.* 5.2.4
5.3.* / 1.6.* 5.3.5
5.4.* / 1.7.* 5.4.2
6.0.* / 2.0.* 6.0.6


Как починить моё приложение?


Для этого бага важен тип приложения:


  • Обычное
  • Self-contained
  • Native


Обычные приложения можно починить, просто установив нужную версию SDK или рантайма, на которых вы запускаетесь. Скачать можно здесь.


Self-contained приложения придётся пересобрать со свежеобновлённым SDK и передеплоить.


Дальше поговорим о нативных приложениях. Нужно снова обработать его нативным компилятором обновлённого SDK и результат перевыложить в Windows Store.


MS рекомендует обновить UWP-приложения до самой последней минорной версии NuGet-пакета Microsoft.NETCore.UniversalWindowsPlatform, чтобы можно было пересобрать приложение и понять, что оно не развалилось. Можно, конечно, обновиться сразу и на более свежую мажорную версию, но это не обязательно — обновление выпускается для всех мажорных версий, которые пострадали от бага.


Вне зависимости от того, обновили ли вы свои NuGet-пакеты, все приложения, залитые в стор после 9-го января, будут автоматически чиниться прямо в ходе выкладывания в стор.


Если же вы не обновите своё приложение в сторе, его всё равно автоматически обработают и разошлют через Windows Update в течение ближайших недель. Все, у кого не отключены автообновления, получат обновлённую версию без необходимости в ручном вмешательстве кого-либо. А вот для sideloaded-приложений придётся самостоятельно обновить NuGet-пакеты, пересобрать их и доставить пользователям.


Резюме

Даже очень хорошие и качественные проекты содержат ошибки. Чтобы не попасть впросак, нужно вовремя обновляться, читать официальные новости и изучать современные тенденции на конференциях типа DotNext, конечно. Спасение утопающих — дело рук самих утопающих!

© Habrahabr.ru