Skip to content

Releases: dotnet/roslyn-analyzers

v2.9.8

26 Nov 12:57
1d07ec7
Compare
Choose a tag to compare

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

31 Oct 18:01
89f1193
Compare
Choose a tag to compare

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

03 Oct 23:14
b377a16
Compare
Choose a tag to compare

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

02 Oct 12:59
6c05175
Compare
Choose a tag to compare

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

10 Sep 22:55
494de6f
Compare
Choose a tag to compare
v2.9.5-beta1.final Pre-release
Pre-release

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.

v2.9.4

29 Jul 17:31
a1a198d
Compare
Choose a tag to compare

Release build of Roslyn-analyzers based on Microsoft.CodeAnalysis 2.9.0 NuGet packages. Contains bug fixes on top of v2.9.3 release and additional rules listed below.

Works with VS 2017.9 or later.

Added

  • Performance
    • CA1827: Do not use Count() when Any() can be used -- Enabled by default
  • Security
    • CA2326: Do not use TypeNameHandling values other than None
    • CA2327: Do not use insecure JsonSerializerSettings
    • CA2328: Ensure that JsonSerializerSettings are secure
    • CA5387: Do Not Use Weak Key Derivation Function With Insufficient Iteration Count
    • CA5388: Ensure Sufficient Iteration Count When Using Weak Key Derivation Function
    • CA5389: Do Not Add Archive Item's Path To The Target File System Path -- Enabled by default
    • CA5390: Do Not Hard Code Encryption Key -- Enabled by default
  • Usage
    • CA2245: Do not assign a property to itself. -- Enabled by default

Fixes

  • CA3075: Insecure DTD processing in XML -- Performance improvements.
  • CA5360: Do Not Call Dangerous Methods In Deserialization -- Fixed KeyNotFoundException.

v2.9.4-beta1.final

25 Jun 15:26
3b22a6a
Compare
Choose a tag to compare
v2.9.4-beta1.final Pre-release
Pre-release

Pre-Release build of Roslyn-analyzers based on Microsoft.CodeAnalysis 2.9.0 NuGet packages. Contains following additional analyzers and additional bug fixes on top of v2.9.3 release:

  1. Usage rule CA2245 (AvoidPropertySelfAssignment) - On by default
  2. Security rule CA5387 (DefinitelyUseWeakKDFInsufficientIterationCount) - Off by default
  3. Security rule CA5388 (MaybeUseWeakKDFInsufficientIterationCount) - Off by default
  4. Security rule CA5389 (DoNotAddArchiveItemPathToTheTargetFileSystemPath) - Off by default

Works with VS 2017.9 or later.

v2.9.3

06 Jun 21:23
7f096af
Compare
Choose a tag to compare

Release build of Roslyn-analyzers based on Microsoft.CodeAnalysis 2.9.0 NuGet packages. Contains bug fixes on top of v2.9.2 release.

Works with VS 2017.9 or later.

Added

  • Security
    • CA2321: Do not deserialize with JavaScriptSerializer using a SimpleTypeResolver
    • CA2322: Ensure JavaScriptSerializer is not initialized with SimpleTypeResolver before deserializing
    • CA5366: Use XmlReader For DataSet Read Xml -- Enabled by default
    • CA5369: Use XmlReader For Deserialize -- Enabled by default
    • CA5370: Use XmlReader For Validating Reader -- Enabled by default
    • CA5371: Use XmlReader For Schema Read -- Enabled by default
    • CA5372: Use XmlReader For XPathDocument -- Enabled by default
    • CA5373: Do not use obsolete key derivation function -- Enabled by default
    • CA5374: Do Not Use XslTransform -- Enabled by default
    • CA5375: Do Not Use Account Shared Access Signature
    • CA5376: Use SharedAccessProtocol HttpsOnly -- Enabled by default
    • CA5377: Use Container Level Access Policy -- Enabled by default
    • CA5378: Do not disable ServicePointManagerSecurityProtocols -- Enabled by default
    • CA5379: Do Not Use Weak Key Derivation Function Algorithm -- Enabled by default
    • CA5380: Do Not Add Certificates To Root Store -- Enabled by default
    • CA5381: Ensure Certificates Are Not Added To Root Store -- Enabled by default
    • CA5382: Use Secure Cookies In ASP.Net Core
    • CA5383: Ensure Use Secure Cookies In ASP.Net Core
    • CA5384: Do Not Use Digital Signature Algorithm (DSA) -- Enabled by default
    • CA5385: Use Rivest–Shamir–Adleman (RSA) Algorithm With Sufficient Key Size -- Enabled by default
    • CA5386: Avoid hardcoding SecurityProtocolType value

v2.6.4

08 May 20:39
e0f9443
Compare
Choose a tag to compare

Release build of Roslyn-analyzers based on Microsoft.CodeAnalysis 2.6.0 NuGet packages, with additional bug fixes and rules on top of v2.6.3 release.

Works with VS 2017.5 or later.

v2.9.0-beta1.final

12 Mar 16:29
0c3907f
Compare
Choose a tag to compare
v2.9.0-beta1.final Pre-release
Pre-release

Pre-Release build of Roslyn-analyzers based on Microsoft.CodeAnalysis 2.9.0 NuGet packages. Contains additional analyzers/fixers and additional bug fixes on top of v2.6.3 release.

Works with VS 2017.9 or later.