JAVA.ASSERT.ARG
Never use assertions to validate method arguments
Vulnerability and risk
Validation of arguments can be critical the functionality of a method. Assertions can potentially be disabled removing validation of the arguments or lead to unhandled exceptions.
Mitigation and prevention
Use non-assertion validation to validate arguments. Remove assert check for parameter and replace with if/function check.
Vulnerable code example 1
Copy
                                                            
                                                        
                                                    package com.klocwork;
public class JAVA_ASSERT_ARG_POSITIVE_1 {
    public void test(int i, String args) {
        assert args != null;
    }
}Vulnerable code example 2
Copy
                                                        
                                                    
                                                package com.klocwork;
public class JAVA_ASSERT_ARG_POSITIVE_2 {
    public void test(String[] args, int i) {
        assert args != null;
    }
}Vulnerable code example 3
Copy
                                                    
                                                
                                            package com.klocwork;
public class JAVA_ASSERT_ARG_POSITIVE_3 {
    public void test(boolean b, String args[], int i) {
        assert args != null;
    }
}Vulnerable code example 4
Copy
                                                    
                                                
                                                package com.klocwork;
import java.util.List;
public class JAVA_ASSERT_ARG_POSITIVE_4 {
    public void test(List<String> args) {
        assert args != null;
    }
}Fixed code example
Copy
                                                    
                                                
                                                package com.klocwork;
public class JAVA_ASSERT_ARG_NEGATIVE {
    public static void test(String args[]) {
        int x = 123;
        assert x > 1;
        System.out.println("hello world");
    }
}