The vulnerability is Out-of-bounds Write
csharp
// vulnerable code
using System;

class Program {
    static void Main(string[] args) {
        int[] array = new int[5];
        for (int i = 0; i <= array.Length; i++) {
            array[i] = i;
        }
    }
}
csharp // vulnerable code using System; class Program { static void Main(string[] args) { int[] array = new int[5]; for (int i = 0; i <= array.Length; i++) { array[i] = i; } } } In the vulnerable code, the loop iterates from 0 to the length of the array, inclusive. Therefore, it will try to write past the end of the array, causing an out-of-bounds write. To fix the vulnerability, change the loop to iterate from 0 to the length of the array, exclusive (i.e., replace `i <= array.Length` with `i < array.Length` in the loop condition). This will ensure the loop only writes to valid positions within the array.
csharp
// solution how to fix the vulnerable code
using System;

class Program {
    static void Main(string[] args) {
        int[] array = new int[5];
        for (int i = 0; i < array.Length; i++) {
            array[i] = i;
        }
    }
}