# NULL Pointer Dereference (CWE-476) A NULL pointer dereference occurs when the application dereferences a pointer that it expects to be valid, but is NULL. **Stack:** JavaScript - Prevalence: Mittel 2 Sprachen abgedeckt - Impact: Mittel Review empfohlen - Prevention: Dokumentiert 2 Fix-Beispiele **OWASP:** Insecure Design (A04:2021-Insecure Design) - #4 ## Description NULL pointer dereferences typically cause the application to crash. In some cases, they may be exploitable for denial of service or potentially for code execution. ## Prevention ### JavaScript Replace non-null assertions (!) with explicit null checks or optional chaining ## Warning Signs - [LOW] Non-null assertion (!), used on '...' without explicit null/undefined check. This may cause runtime crashes if the value ## Consequences - DoS: Absturz/Beenden/Neustart ## Mitigations - Pointer vor dem Dereferenzieren prüfen - Sprachfeatures nutzen, die Null-Pointer-Probleme vermeiden - Geeignete Fehlerbehandlung für Null-Rückgaben implementieren ## Detection - Total rules: 2 - Languages: go, typescript ## Rules by Language ### Typescript (1 rules) - **Non-Null Assertion Without Null Check** [LOW]: The non-null assertion operator (!) bypasses null/undefined checks at compile time without runtime safety, causing crashes when values are unexpectedly null. - Remediation: Use explicit null checks or optional chaining instead of non-null assertions. ```typescript function getUserEmail(userId: string) { const user = users.find(u => u.id === userId); if (!user) { throw new Error('User not found'); } return user.email; } ``` Learn more: https://shoulder.dev/learn/typescript/cwe-476/non-null-assertion