C#


CSHARP.CRYPTO.WIVF : Weak Initialization Vector Field (C#)

Summary

A weak, possibly reversible initialization vector is written to a field.

Some cryptography algorithms are nowadays considered as outdated and unsafe or actually broken, since they are too easy to decode. This checker identifies uses of unsafe algorithms for cryptography.

Properties

Class Name Weak Initialization Vector Field (C#)
Significance security
Mnemonic CSHARP.CRYPTO.WIVF
Categories
CWE CWE:1204 Generation of Weak Initialization Vector (IV)
OWASP-2017 OWASP-2017:A2 Broken authentication
OWASP-2021 OWASP-2021:A7 Identification and authorization failures
Availability Available for C# only.
Enabling Checks for this warning class are enabled by default. To disable them, add the following WARNING_FILTER rule to the project configuration file.
WARNING_FILTER += discard class="Weak Initialization Vector Field (C#)"

Example

using System;
using System.Security.Cryptography;

namespace TestNameSpace
{
    class MyAlgorithm : SymmetricAlgorithm
    {
        public override void GenerateIV()
        {
            IVValue = new byte[15]; // 'Weak Initialization Vector Field (C#)'
                                    // warning issued here
        }
    // ... other declared methods
    }
}

Resolution

Generate a secure random Initialization Vector.

Relevant Configuration File Parameters

The following configuration file parameters affect checks for this warning class.