1133
Alternate Terms
NPD :
null deref :
nil pointer dereference : used for access of nil in Go programs
Likelihood Of Exploit
Medium
Common Consequences
Scope Impact Likelihood
Availability DoS: Crash, Exit, or Restart
NULL pointer dereferences usually result in the failure of
the process unless exception handling (on some platforms)
is available and implemented. Even when exception
handling is being used, it can still be very difficult to return
the software to a safe state of operation.
Integrity
Confidentiality
Availability
Execute Unauthorized Code or Commands
Read Memory
Modify Memory
In rare circumstances, when NULL is equivalent to the 0x0
memory address and privileged code can access it, then
writing or reading memory is possible, which may lead to
code execution.
Detection Methods
Automated Dynamic Analysis
This weakness can be detected using dynamic tools and techniques that interact with the
software using large test suites with many diverse inputs, such as fuzz testing (fuzzing),
robustness testing, and fault injection. The software's operation may slow down, but it should not
become unstable, crash, or generate incorrect results.
Effectiveness = Moderate
Manual Dynamic Analysis
Identify error conditions that are not likely to occur during normal usage and trigger them.
For example, run the program under low memory conditions, run with insufficient privileges
or permissions, interrupt a transaction before it is completed, or disable connectivity to basic
network services such as DNS. Monitor the software for any unexpected behavior. If you trigger
an unhandled exception or similar error that was discovered and handled by the application's
environment, it may still indicate unexpected conditions that were not handled by the application
itself.
Automated Static Analysis
Automated static analysis, commonly referred to as Static Application Security Testing (SAST),
can find some instances of this weakness by analyzing source code (or binary/compiled code)
without having to execute it. Typically, this is done by building a model of data flow and control
flow, then searching for potentially-vulnerable patterns that connect "sources" (origins of input)
with "sinks" (destinations where the data interacts with external components, a lower layer such
as the OS, etc.)
Effectiveness = High
Potential Mitigations
Phase: Implementation
CWE Version 4.14
CWE-476: NULL Pointer Dereference
CWE-476: NULL Pointer Dereference