COMMON ATTACK PATTERN ENUMERATION AND CLASSIFICATIONLive MITRE record

CAPEC-25

Forced Deadlock

The adversary triggers and exploits a deadlock condition in the target software to cause a denial of service. A deadlock can occur when two or more competing actions are waiting for each other to finish, and thus neither ever does. Deadlock conditions can be difficult to detect.

Abstraction

Meta

Typical severity

High

Likelihood of attack

Low

Understand the attack

What is this attack pattern?

The adversary triggers and exploits a deadlock condition in the target software to cause a denial of service. A deadlock can occur when two or more competing actions are waiting for each other to finish, and thus neither ever does. Deadlock conditions can be difficult to detect.

Execution flow

How does the attack proceed, step by step?

1

Explore

Attack step

The adversary initiates an exploratory phase to get familiar with the system.

Attack step

The adversary triggers a first action (such as holding a resource) and initiates a second action which will wait for the first one to finish.

Attack step

If the target program has a deadlock condition, the program waits indefinitely resulting in a denial of service.

Requirements

What does the attack require?

Prerequisites

  • The target host has a deadlock condition. There are four conditions for a deadlock to occur, known as the Coffman conditions. [ REF-101 ]
  • The target host exposes an API to the user.

Skills required

  • Medium: This type of attack may be sophisticated and require knowledge about the system's resources and APIs.

Resources required

Not stated in the MITRE record.

Impact

What does a successful attack lead to?

Resource Consumption

Affected scopes: Availability

Defence

How is it prevented and mitigated?

1
Use known algorithm to avoid deadlock condition (for instance non-blocking synchronization algorithms).
2
For competing actions, use well-known libraries which implement synchronization.

Real world

MITRE example instances

Example instance 1Detail
An example of a deadlock which may occur in database products is the following. Client applications using the database may require exclusive access to a table, and in order to gain exclusive access they ask for a lock. If one client application holds a lock on a table and attempts to obtain the lock on a second table that is already held by a second client application, this may lead to deadlock if the second application then attempts to obtain the lock that is held by the first application (Source: Wikipedia, http://en.wikipedia.org/wiki/Deadlock)