RS.NPD.CHECK.MIGHT
Previously checked null pointer may be dereferenced
An attempt to access data using a null pointer causes a runtime error. When a program dereferences a pointer that is expected to be valid but turns out to be null, a null pointer dereference occurs. Null-pointer dereference defects often occur due to ineffective error handling or race conditions, and typically cause abnormal program termination. Before a pointer is dereferenced in Rust code, it must be checked to confirm that it is not equal to null.
The RS.NPD checkers look for instances in which a null or possibly null pointer is dereferenced.
The RS.NPD.CHECK.MIGHT checker flags situations in which a pointer that's been checked for a null value might subsequently be dereferenced explicitly or through a function call without being checked for null.
Vulnerability and risk
Null-pointer dereferences usually result in the failure of the process. These issues typically occur due to ineffective exception handling.
Mitigation and prevention
To avoid this vulnerability:
- Check for a null value in the results of all functions that return values
- Make sure all external inputs are validated
- Explicitly initialize variables
- Make sure that unusual exceptions are handled correctly
Related checkers
External guidance
Security training
Application security training materials provided by Secure Code Warrior.