Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CWE-476 (空指针解引用) — Vulnerability Class 1557

1557 vulnerabilities classified as CWE-476 (空指针解引用). AI Chinese analysis included.

CWE-476 represents a critical memory management weakness where software attempts to access memory through a pointer that holds a NULL value instead of a valid address. This error typically occurs when a function fails to allocate memory or validate input, yet the code proceeds to dereference the resulting null reference without checking its status. Attackers exploit this vulnerability by triggering the null condition, often causing the application to crash and resulting in a denial of service. In more complex scenarios, if the NULL pointer is manipulated to point to executable code, it may lead to arbitrary code execution or privilege escalation. To prevent this, developers must rigorously validate all pointers before use, ensuring they are not NULL. Implementing defensive programming practices, such as using assertions during development and comprehensive error handling in production, helps mitigate the risk of dereferencing invalid memory addresses.

MITRE CWE Description
The product dereferences a pointer that it expects to be valid but is NULL.
Common Consequences (2)
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 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.
Mitigations (5)
Implementation For any pointers that could have been modified or provided from a function that can return NULL, check the pointer for NULL before use. When working with a multithreaded or otherwise asynchronous environment, ensure that proper locking APIs are used to lock before the check, and unlock when it has finished [REF-1484].
Requirements Select a programming language that is not susceptible to these issues.
Implementation Check the results of all functions that return a value and verify that the value is non-null before acting upon it.
Effectiveness: Moderate
Architecture and Design Identify all variables and data stores that receive information from external sources, and apply input validation to make sure that they are only initialized to expected values.
Implementation Explicitly initialize all variables and other data stores, either during declaration or just before the first usage.
Examples (2)
This example takes an IP address from a user, verifies that it is well formed and then looks up the hostname and copies it into a buffer.
void host_lookup(char *user_supplied_addr){ struct hostent *hp; in_addr_t *addr; char hostname[64]; in_addr_t inet_addr(const char *cp); /*routine that ensures user_supplied_addr is in the right format for conversion */ validate_addr_form(user_supplied_addr); addr = inet_addr(user_supplied_addr); hp = gethostbyaddr( addr, sizeof(struct in_addr), AF_INET); strcpy(hostname, hp->h_name); }
Bad · C
In the following code, the programmer assumes that the system always has a property named "cmd" defined. If an attacker can control the program's environment so that "cmd" is not defined, the program throws a NULL pointer exception when it attempts to call the trim() method.
String cmd = System.getProperty("cmd"); cmd = cmd.trim();
Bad · Java
CVE ID Title CVSS Severity Published
CVE-2023-3358 Linux kernel 代码问题漏洞 — Kernel 5.5 - 2023-06-28
CVE-2023-3357 Linux kernel 代码问题漏洞 — Kernel 5.5 - 2023-06-28
CVE-2023-3212 Linux kernel 代码问题漏洞 — Linux kernel (gfs2 file system) 4.4 - 2023-06-23
CVE-2023-3220 Linux kernel 代码问题漏洞 — Linux kernel 5.5 - 2023-06-20
CVE-2023-3316 A NULL pointer dereference in TIFFClose() is caused by a failure to open an output file (non-existent path or a path that requires permissions like /dev/null) while specifying zones. — libtiff 5.9 Medium 2023-06-19
CVE-2023-33307 Fortinet FortiOS 代码问题漏洞 — FortiOS 6.4 Medium 2023-06-16
CVE-2023-33306 Fortinet FortiOS 代码问题漏洞 — FortiOS 6.2 Medium 2023-06-16
CVE-2023-32008 Windows Resilient File System (ReFS) Remote Code Execution Vulnerability — Windows 10 Version 1809 7.8 High 2023-06-13
CVE-2023-24938 Windows CryptoAPI Denial of Service Vulnerability — Windows 10 Version 1809 6.5 Medium 2023-06-13
CVE-2023-33121 Siemens JT2Go 代码问题漏洞 — JT2Go 3.3 Low 2023-06-13
CVE-2023-3012 NULL Pointer Dereference in gpac/gpac — gpac/gpac 5.5 - 2023-05-31
CVE-2023-33973 RIOT-OS vulnerable to NULL pointer dereference during NHC encoding — RIOT 7.5 High 2023-05-30
CVE-2023-2953 OpenLDAP 代码问题漏洞 — openldap 7.5 - 2023-05-30
CVE-2023-1667 libssh 代码问题漏洞 — libssh 6.5 - 2023-05-26
CVE-2023-2898 Linux kernel 代码问题漏洞 — Kernel 4.4 - 2023-05-26
CVE-2023-2875 eScan Antivirus IoControlCode PROCOBSRVESX.SYS 0x22E008u null pointer dereference — Antivirus 5.5 Medium 2023-05-24
CVE-2023-2872 FlexiHub IoControlCode fusbhub.sys 0x220088 null pointer dereference — FlexiHub 5.5 Medium 2023-05-24
CVE-2023-2871 FabulaTech USB for Remote Desktop IoControlCode 0x220408 null pointer dereference — USB for Remote Desktop 3.3 Low 2023-05-24
CVE-2023-2840 NULL Pointer Dereference in gpac/gpac — gpac/gpac 5.5 - 2023-05-22
CVE-2023-2731 LibTIFF 代码问题漏洞 — libtiff 5.5 - 2023-05-17
CVE-2023-2617 OpenCV wechat_qrcode Module decoded_bit_stream_parser.cpp decodeByteSegment null pointer dereference — wechat_qrcode Module 5.3 Medium 2023-05-10
CVE-2023-24940 Windows Pragmatic General Multicast (PGM) Denial of Service Vulnerability — Windows 10 Version 1809 7.5 High 2023-05-09
CVE-2023-2609 NULL Pointer Dereference in vim/vim — vim/vim 5.5 - 2023-05-09
CVE-2023-31129 Contiki-NG missing NULL pointer check in IPv6 neighbor discovery — contiki-ng 7.5 High 2023-05-08
CVE-2022-33305 Null pointer dereference in Modem — Snapdragon 7.5 High 2023-05-02
CVE-2022-33304 NULL pointers dereference in Modem — Snapdragon 7.5 High 2023-05-02
CVE-2023-0458 Spectre V1 Gadget in do_prlimit in the Linux Kernel — Linux Kernel 5.3 Medium 2023-04-26
CVE-2023-24822 RIOT-OS vulnerable to Null Pointer dereference during IPHC encoding — RIOT 7.5 High 2023-04-24
CVE-2023-24818 RIOT-OS vulnerable to null pointer dereference during fragment forwarding — RIOT 7.5 High 2023-04-24
CVE-2023-25510 NVIDIA CUDA Toolkit 代码问题漏洞 — NVIDIA CUDA Toolkit 3.3 Low 2023-04-22

Vulnerabilities classified as CWE-476 (空指针解引用) represent 1557 CVEs. The CWE taxonomy describes the weakness; review individual CVEs for product-specific impact.