CAPEC-28: Fuzzing

In this attack pattern, the adversary leverages fuzzing to try to identify weaknesses in the system. Fuzzing is a software security and functionality testing method that feeds randomly constructed input to the system and looks for an indication that a failure in response to that input has occurred. Fuzzing treats the system as a black box and is totally free from any preconceptions or assumptions about the system. Fuzzing can help an attacker discover certain assumptions made about user input in the system. Fuzzing gives an attacker a quick way of potentially uncovering some of these assumptions despite not necessarily knowing anything about the internals of the system. These assumptions can then be turned against the system by specially crafting user input that may allow an attacker to achieve their goals.

Examples

A fuzz test reveals that when data length for a particular field exceeds certain length, the input validation filter fails and lets the user data in unfiltered. This provides an attacker with an injection vector to deliver the malicious payload into the system.

Medium
Severity
2
occurrences in scenarios
Frequency
2
Affected Components
2
Affected Scenarios

Requirements and Mitigations

Requirements

Component properties that must be true for this threat to apply:

Mitigations

Component properties that mitigate this threat:

Affected Components

Component Description Boundary
Cosign Binary (build machines) Cosign binary running on the build machine FPF-operated Tailnet
LibreOffice Converts documents to PDFs gVisor sandbox

Affected Scenarios

convert — affects: LibreOffice
release_sandbox — affects: Cosign Binary (build machines)

Back to Summary