COMMON WEAKNESS ENUMERATIONIncomplete

CWE-464

Addition of Data Structure Sentinel

The accidental addition of a data-structure sentinel can cause serious programming logic problems.

Soyutlama

Base

Yapı

Simple

Sömürü İhtimali

High

Problemi anla

Problem nedir?

The accidental addition of a data-structure sentinel can cause serious programming logic problems.

Genişletilmiş açıklama

Data-structure sentinels are often used to mark the structure of data. A common example of this is the null character at the end of strings or a special sentinel to mark the end of a linked list. It is dangerous to allow this type of control data to be easily accessible. Therefore, it is important to protect from the addition or modification of sentinels.

Kök neden

Problem nasıl ve ne zaman oluşur?

Yaşam döngüsü evresi

Implementation

Risk

Başarılı sömürü neye yol açar?

Modify Application Data

Etkilenen güvenlik alanları: Integrity

Generally this error will cause the data structure to not work properly by truncating the data.

Savunma

Nasıl önlenir ve çözülür?

Implementation · Architecture and Design

Birden fazla yaşam döngüsü evresinde uygulanacak savunma

Detay
Encapsulate the user from interacting with data sentinels. Validate user input to verify that sentinels are not present.

Implementation

Uygulama aşaması savunması

Detay
Proper error checking can reduce the risk of inadvertently introducing sentinel values into data. For example, if a parsing function fails or encounters an error, it might return a value that is the same as the sentinel.

Architecture and Design

Mimari ve tasarım yaklaşımı

Detay
Use an abstraction library to abstract away risky APIs. This is not a complete solution.

Operation

Operasyonel savunma

Detay
Use OS-level preventative functionality. This is not a complete solution.