Omission of Security-relevant Information

Draft Base
Structure: Simple
Description

This vulnerability occurs when an application fails to capture or present crucial security-related details, such as the origin of a request or the specifics of a security event. Without this information, developers and security teams cannot effectively trace attacks or validate whether an operation is legitimate.

Extended Description

When security-relevant information is omitted, it creates a blind spot in your application's defense. Attackers can exploit this gap to launch attacks without leaving an audit trail, making it nearly impossible to perform forensic analysis, understand the attack vector, or attribute malicious activity. This lack of visibility undermines incident response and allows threats to persist undetected. To prevent this, ensure your application logs and displays key security events with sufficient context. This includes timestamps, source IP addresses, user identifiers, affected resources, and the nature of the action performed. Implementing structured logging and real-time monitoring dashboards turns this data into actionable intelligence, helping your team quickly identify, investigate, and mitigate security incidents.

Common Consequences 1
Scope: Non-Repudiation

Impact: Hide Activities

The source of an attack will be difficult or impossible to determine. This can allow attacks to the system to continue without notice.

Demonstrative Examples 2

ID : DX-174

This code logs suspicious multiple login attempts.

Code Example:

Bad
PHP
php
This code only logs failed login attempts when a certain limit is reached. If an attacker knows this limit, they can stop their attack from being discovered by avoiding the limit.

ID : DX-175

This code prints the contents of a file if a user has permission.

Code Example:

Bad
PHP
php

//resolve file if its a symbolic link* if(is_link($filename)){ ``` $realFile = readlink($filename); } if(fileowner($realFile) == $user){ echo file_get_contents($realFile); return; } else{ echo 'Access denied'; writeLog($user . ' attempted to access the file '. $filename . ' on '. date('r')); } }

While the code logs a bad access attempt, it logs the user supplied name for the file, not the canonicalized file name. An attacker can obscure their target by giving the script the name of a link to the file they are attempting to access. Also note this code contains a race condition between the is_link() and readlink() functions (Race Condition Enabling Link Following).
Observed Examples 3
CVE-1999-1029Login attempts are not recorded if the user disconnects before the maximum number of tries.
CVE-2002-1839Sender's IP address not recorded in outgoing e-mail.
CVE-2000-0542Failed authentication attempts are not recorded if later attempt succeeds.
References 1
The Art of Software Security Assessment
Mark Dowd, John McDonald, and Justin Schuh
Addison Wesley
2006
ID: REF-62
Applicable Platforms
Languages:
Not Language-Specific : Undetermined
Modes of Introduction
Architecture and Design
Implementation
Operation
Related Weaknesses
Taxonomy Mapping
  • PLOVER