All Versions
29
Latest Version
Avg Release Cycle
45 days
Latest Release
321 days ago

Changelog History
Page 2

  • v3.0.0-beta2.final Changes

    March 24, 2020

    ๐Ÿš€ Pre-release build of Roslyn-analyzers based on Microsoft.CodeAnalysis 3.0.0 NuGet packages. Works with VS 2019 or later.

    ๐Ÿš€ Contains following important changes on top of v2.9.x releases

    ๐Ÿ› Bug Fixes

    ๐Ÿ›  Lot of bug fixes

    โž• Additional analyzers/fixers:

    โž• Added

    • Design
      • CA1021: Avoid out parameters
      • CA1069: Enums values should not be duplicated -- Enabled by default
    • Reliability
      • CA2011: Avoid infinite recursion -- Enabled by default
      • CA2012: Use ValueTasks correctly -- Enabled by default
      • CA2013: Do not use ReferenceEquals with value types -- Enabled by default
    • Usage
      • CA2215: Dispose methods should call base class dispose -- Enabled by default

    ๐Ÿ”„ Changed

    • ๐Ÿ”’ Security
      • CA5361: Do Not Disable SChannel Use of Strong Crypto -- Now disabled by default
      • CA5376: Use SharedAccessProtocol HttpsOnly -- Now disabled by default
      • CA5377: Use Container Level Access Policy -- Now disabled by default
      • CA5378: Do not disable ServicePointManagerSecurityProtocols -- Now disabled by default
      • CA5380: Do Not Add Certificates To Root Store -- Now disabled by default
      • CA5381: Ensure Certificates Are Not Added To Root Store -- Now disabled by default
  • v2.9.12 Changes

    October 28, 2020

    ๐Ÿš€ Release build of Roslyn-analyzers based on Microsoft.CodeAnalysis 2.9.0 NuGet packages. Works with VS 2017 15.9 or later.

    ๐Ÿš€ Contains functionality and performance bug fixes on top of the v2.9.11 release.

    ๐Ÿ›  Fixes

    • โšก๏ธ Optimizing type resolution
    • Tainted data rules improvements
    • ๐Ÿ“„ CA5377: Don't warn when unable to get the control flow graph for dataflow analysis
    • ๐Ÿ“„ CA3075: Fix false positive on XmlReader.Create(string) invocations
    • โšก๏ธ Optimizing error list refresh times for full compilation analyzers in Visual Studio 2019 16.9
  • v2.9.11 Changes

    August 10, 2020

    ๐Ÿš€ Release build of Roslyn-analyzers based on Microsoft.CodeAnalysis 2.9.0 NuGet packages. Works with VS 2017 15.9 or later.

    ๐Ÿš€ Contains the following important changes on top of the v2.9.10 release.

    ๐Ÿ†• New security rules to help find vulnerabilities related to DataSet and DataTable security guidance.

    ๐Ÿ›  Fixes

    • Various tainted data rules: Don't report tainted data flowing into non-sink method parameters, when other tainted data does flow into a sink parameter.

    โž• Added

    • ๐Ÿ”’ Security
      • CA2361: Ensure autogenerated class containing DataSet.ReadXml() is not used with untrusted data
      • CA2362: Unsafe DataSet or DataTable in autogenerated serializable type can be vulnerable to remote code execution attacks

    ๐Ÿ”„ Changed

    • ๐Ÿ”’ Security
      • CA2351: Some cases of autogenerated code are now reported as CA2361
      • CA2352: Some cases of autogenerated code are now reported as CA2362
  • v2.9.10 Changes

    July 14, 2020

    ๐Ÿš€ Release build of Roslyn-analyzers based on Microsoft.CodeAnalysis 2.9.0 NuGet packages. Works with VS 2017 15.9 or later.

    ๐Ÿš€ Contains the following important changes on top of the v2.9.9 release.

    ๐Ÿ†• New security rules to help find vulnerabilities related to DataSet and DataTable security guidance.

    ๐Ÿ› Bug fixes

    • ๐Ÿ“„ CA3075: Fix false positives with XmlDocument on .NET Framework 4.5.2 or later

    โž• Added

    • ๐Ÿ”’ Security
      • CA2350: Ensure DataTable.ReadXml()'s input is trusted
      • CA2351: Ensure DataSet.ReadXml()'s input is trusted
      • CA2352: Unsafe DataSet or DataTable in serializable type can be vulnerable to remote code execution attacks
      • CA2353: Unsafe DataSet or DataTable in serializable type
      • CA2354: Unsafe DataSet or DataTable in deserialized object graph can be vulnerable to remote code execution attacks
      • CA2355: Unsafe DataSet or DataTable in deserialized object graph
      • CA2356: Unsafe DataSet or DataTable in web deserialized object graph
  • v2.9.9 Changes

    April 27, 2020

    ๐Ÿš€ Release build of Roslyn-analyzers based on Microsoft.CodeAnalysis 2.9.0 NuGet packages. Works with VS 2017.9 or later.

    ๐Ÿš€ Contains the following important changes on top of the v2.9.8 release.

    ๐Ÿ›  Fixes

    • ๐ŸŽ CA2201: Performance improvement.
    • ๐Ÿ“„ CA2212: Fix AD0001 crash.
    • ๐Ÿ”’ CA3009: Treat System.Web.Security.AntiXss.AntiXssEncoder as a sanitizer.
    • ๐Ÿ“„ CA5358: Renamed to "Review cipher mode usage with cryptography experts"
    • ๐Ÿ“„ CA5360: Handles local functions.
  • v2.9.8 Changes

    November 26, 2019

    ๐Ÿš€ Release build of Roslyn-analyzers based on Microsoft.CodeAnalysis 2.9.0 NuGet packages. Works with VS 2017.9 or later.

    ๐Ÿš€ Contains the following important changes on top of the v2.9.7 release.

    ๐Ÿ›  Fixes

    • ๐Ÿ›  Fixed performance regression for most analyzers relying on tainted data analysis. Affects rules CA3001-CA3012 and CA5389.
    • ๐Ÿ‘Œ Improved performance for dataflow analysis rules.
  • v2.9.7 Changes

    October 31, 2019

    ๐Ÿš€ Release build of Roslyn-analyzers based on Microsoft.CodeAnalysis 2.9.0 NuGet packages. Works with VS 2017.9 or later.

    ๐Ÿš€ Contains following important changes on top of the v2.9.6 release

    ๐Ÿ›  Fixes

    • ๐ŸŽ CA5390: Do Not Hard Code Encryption Key -- improved performance
    • ๐Ÿ‘ป Rules tracking property values -- now handling assignments such as foo.Bar = Singletons.Bar ?? throw new Exception();

    โž• Added

    • ๐Ÿ”’ Security
      • CA5401: Do not use CreateEncryptor with non-default IV
      • CA5402: Use CreateEncryptor with the default IV
      • CA5403: Do not hard-code certificate
  • v2.9.6 Changes

    October 03, 2019

    ๐Ÿš€ Release build of Roslyn-analyzers based on Microsoft.CodeAnalysis 2.9.0 NuGet packages. Works with VS 2017.9 or later.

    ๐Ÿš€ Contains following important bug fix on top of v2.9.5 release:

    • CA2246: #2889: AD0001 - NullReferenceException when running CA2246
  • v2.9.5 Changes

    October 02, 2019

    ๐Ÿš€ Release build of Roslyn-analyzers based on Microsoft.CodeAnalysis 2.9.0 NuGet packages. Works with VS 2017.9 or later.

    ๐Ÿš€ Contains following important changes on top of v2.9.4 release

    ๐Ÿ› Bug Fixes

    • ๐Ÿš‘ Critical Performance: Fixed memory leak in flow analysis results cache which leads to OOM exceptions and crashes on large solution. This is applicable for all rules
    • ๐Ÿš‘ Critical Reliability: Hardened all the analyzers and fixers from crashes due to Single or SingleOrDefault invocations.
    • ๐Ÿ›  CA1065: Fixed false positives caused by breaking changes in the IOperation tree shape for throw operations.
    • ๐Ÿ›  CA1067: Fixed false positives.
    • CA1708: Fix high memory allocations in the rule implementation
    • ๐Ÿ›  CA1721: Fixed false positives.
    • ๐Ÿ›  CA2000: Fixed false positives
    • ๐Ÿ›  CA2234: Fixed false positives
    • ๐Ÿ›  CA2327: Do not use insecure JsonSerializerSettings -- Fixed InvalidCastException
    • CA3147: Mark verb handlers with ValidateAntiForgeryToken -- Now handles Task-based ASP.NET MVC controller action methods
    • ๐Ÿ›  CA3075: Insecure DTD processing in XML -- Fixed NullReferenceException.
    • ๐Ÿ›  CA3076: Insecure XSLT script processing -- Fixed ArgumentOutOfRangeException.
    • CA5390: Do Not Hard Code Encryption Key -- Treats Encoding.GetBytes() as a potentially hardcoded key. Also considers newer .NET Core 3.0 AesGcm and AesCcm APIs.

    โž• Additional analyzers/fixers:

    โž• Added

    • ๐ŸŽ Performance
      • CA1828: Do not use CountAsync() or LongCountAsync() when AnyAsync() can be used -- Enabled by default
      • CA1829: Use Length/Count property instead of Count() when available -- Enabled by default
    • ๐Ÿ”’ Security
      • CA2329: Do not deserialize with JsonSerializer using an insecure configuration
      • CA2330: Ensure that JsonSerializer has a secure configuration when deserializing
      • CA5391: Use antiforgery tokens in ASP.NET Core MVC controllers -- Enabled by default
      • CA5392: Use DefaultDllImportSearchPaths attribute for P/Invokes
      • CA5393: Do not use unsafe DllImportSearchPath value
      • CA5394: Do not use insecure randomness
      • CA5395: Miss HttpVerb attribute for action methods
      • CA5396: Set HttpOnly to true for HttpCookie
      • CA5397: Do not use deprecated SslProtocols values -- Enabled by default
      • CA5398: Avoid hardcoded SslProtocols values
      • CA5399: Definitely disable HttpClient certificate revocation list check
      • CA5400: Ensure HttpClient certificate revocation list check is not disabled
    • Usage
      • CA2246: Assigning to a symbol and its member (field/property) in the same statement is not recommended. It is not clear if the member access was intended to use symbol's old value prior to the assignment or new value from the assignment in this statement. For clarity, consider splitting the assignments into separate statements -- Enabled by default
      • CA2200: Code fix added

    ๐Ÿ”„ Changed

    • ๐Ÿ”’ Security
      • CA5389: Do Not Add Archive Item's Path To The Target File System Path -- Now disabled by default
      • CA5390: Do Not Hard Code Encryption Key -- Now disabled by default

    ๐Ÿ†• New Analyzer Configuration options

    • CA1031: Add a configurable option disallowed_symbol_names to to allow configuration of disallowed exception types.
    • CA1062: Add configurable option exclude_extension_method_this_parameter for CA1062 to skip analysis of extension method 'this' parameter.
    • CA1801: Respect existing option api_surface for CA1801 (Review unused parameters).
    • ๐Ÿ”ง CA1802: Add configuration option required_modifiers for CA1802. CA1802 only flags static readonly flags by default. This matches the legacy FxCop implementation for compat reasons. With this change, users can make the rule more aggressive by also flagging instance fields
    • CA2241: Add a new configurable option additional_string_formatting_methods for CA2241. CA2241 considers String.Format and Console.WriteLine as special formatting methods to validate the callsites for formatting arguments. This change allows end users to supply additional formatting methods that should be validated.
  • v2.9.5-beta1.final Changes

    September 10, 2019

    ๐Ÿš€ Pre-release build of Roslyn-analyzers based on Microsoft.CodeAnalysis 2.9.0 NuGet packages. Contains following important bug fixes and new analyzers/fixers on top of v2.9.4 release

    ๐Ÿ› Bug Fixes

    • ๐Ÿš‘ Critical Performance: Fixed memory leak in flow analysis results cache which leads to OOM exceptions and crashes on large solution. This is applicable for all rules
    • ๐Ÿš‘ Critical Reliability: Hardened all the analyzers and fixers from crashes due to Single or SingleOrDefault invocations.
    • ๐Ÿ›  CA1065: Fixed false positives caused by breaking changes in the IOperation tree shape for throw operations.
    • ๐Ÿ›  CA1067: Fixed false positives.
    • CA1708: Fix high memory allocations in the rule implementation
    • ๐Ÿ›  CA1721: Fixed false positives.
    • ๐Ÿ›  CA2000: Fixed false positives
    • ๐Ÿ›  CA2234: Fixed false positives
    • ๐Ÿ›  CA2327: Do not use insecure JsonSerializerSettings -- Fixed InvalidCastException
    • CA3147: Mark verb handlers with ValidateAntiForgeryToken -- Now handles Task-based ASP.NET MVC controller action methods
    • ๐Ÿ›  CA3075: Insecure DTD processing in XML -- Fixed NullReferenceException.
    • ๐Ÿ›  CA3076: Insecure XSLT script processing -- Fixed ArgumentOutOfRangeException.
    • CA5390: Do Not Hard Code Encryption Key -- Treats Encoding.GetBytes() as a potentially hardcoded key. Also considers newer .NET Core 3.0 AesGcm and AesCcm APIs.

    โž• Additional analyzers/fixers:

    โž• Added

    • ๐ŸŽ Performance
      • CA1828: Do not use CountAsync() or LongCountAsync() when AnyAsync() can be used -- Enabled by default
    • ๐Ÿ”’ Security
      • CA2329: Do not deserialize with JsonSerializer using an insecure configuration
      • CA2330: Ensure that JsonSerializer has a secure configuration when deserializing
      • CA5391: Use antiforgery tokens in ASP.NET Core MVC controllers -- Enabled by default
      • CA5392: Use DefaultDllImportSearchPaths attribute for P/Invokes -- Enabled by default
      • CA5393: Do not use unsafe DllImportSearchPath value -- Enabled by default
      • CA5394: Do not use insecure randomness
      • CA5395: Miss HttpVerb attribute for action methods
      • CA5396: Set HttpOnly to true for HttpCookie
      • CA5397: Do not use deprecated SslProtocols values -- Enabled by default
      • CA5398: Avoid hardcoded SslProtocols values
      • CA5399: Definitely disable HttpClient certificate revocation list check
      • CA5400: Ensure HttpClient certificate revocation list check is not disabled

    ๐Ÿ”„ Changed

    • ๐Ÿ”’ Security
      • CA5389: Do Not Add Archive Item's Path To The Target File System Path -- Now disabled by default
      • CA5390: Do Not Hard Code Encryption Key -- Now disabled by default

    ๐Ÿ†• New Analyzer Configuration options

    • CA1031: Add a configurable option disallowed_symbol_names to to allow configuration of disallowed exception types.
    • CA1062: Add configurable option exclude_extension_method_this_parameter for CA1062 to skip analysis of extension method 'this' parameter.
    • CA1801: Respect existing option api_surface for CA1801 (Review unused parameters).
    • ๐Ÿ”ง CA1802: Add configuration option required_modifiers for CA1802. CA1802 only flags static readonly flags by default. This matches the legacy FxCop implementation for compat reasons. With this change, users can make the rule more aggressive by also flagging instance fields
    • CA2241: Add a new configurable option additional_string_formatting_methods for CA2241. CA2241 considers String.Format and Console.WriteLine as special formatting methods to validate the callsites for formatting arguments. This change allows end users to supply additional formatting methods that should be validated.

    Works with VS 2017.9 or later.