Null Pointer Dereference

Detects code that dereferences pointers or return values that could be NULL without validation, causing crashes or privilege escalation.

zakirkun 014ccbc 2 files · 3.3 KB Updated

File contents

Null Pointer Dereference

Overview

Null pointer dereference occurs when code uses a pointer without checking whether it's NULL. This causes:

  • Crash/DoS: SIGSEGV on Unix, access violation on Windows
  • Kernel privilege escalation: NULL pointer dereference in kernel context can map page 0 and execute attacker code
  • Logic bypass: Skipping NULL checks allows unexpected code paths

Detection Strategy

  • Return values of malloc(), calloc(), realloc() used without NULL check
  • Results of fopen(), popen() dereferenced without NULL check
  • Java objects returned from getById() or map lookups used without null check

Remediation

Always check pointers for NULL before dereferencing.

Vulnerable (C):

char *buf = malloc(256);
strcpy(buf, input); // buf might be NULL if malloc failed!

Safe (C):

char *buf = malloc(256);
if (buf == NULL) { perror("malloc"); exit(1); }
strcpy(buf, input);

zakirkun/ice-tea/tree/main/skills/memory/null-pointer-deref commit 014ccbc547

Frequently asked questions

npx skillmds@latest add zakirkun/null-pointer-dereference