COMMON ATTACK PATTERN ENUMERATION AND CLASSIFICATIONLive MITRE record

CAPEC-271

Schema Poisoning

An adversary corrupts or modifies the content of a schema for the purpose of undermining the security of the target. Schemas provide the structure and content definitions for resources used by an application. By replacing or modifying a schema, the adversary can affect how the application handles or interprets a resource, often leading to possible denial of service, entering into an unexpected state, or recording incomplete data.

Abstraction

Standard

Typical severity

High

Likelihood of attack

Low

Understand the attack

What is this attack pattern?

An adversary corrupts or modifies the content of a schema for the purpose of undermining the security of the target. Schemas provide the structure and content definitions for resources used by an application. By replacing or modifying a schema, the adversary can affect how the application handles or interprets a resource, often leading to possible denial of service, entering into an unexpected state, or recording incomplete data.

Execution flow

How does the attack proceed, step by step?

1

Explore

Find target application and schema

The adversary first finds the application that they want to target. This application must use schemas in some way, so the adversary also needs to confirm that schemas are being used.

Techniques used

  • Gain access to the system that the application is on and look for a schema.
  • Observe HTTP traffic to the application and look for a schema being transmitted.
2

Experiment

Gain access to schema

The adversary gains access to the schema so that they can modify the contents.

Techniques used

  • For a local scenario, the adversary needs access to the machine that the schema is located on and gain permissions to alter the contents of the schema file.
  • For a remote scenario, the adversary needs to be able to perform an adversary in the middle attack on the HTTP traffic that contains a schema.
3

Exploit

Poison schema

Once the adversary gains access to the schema, they will alter it to achieve a desired effect. Locally, they can just modify the file. For remote schemas, the adversary will alter the schema in transit by performing an adversary in the middle attack.

Techniques used

  • Cause a denial of service by modifying the schema so that it does not contain required information for subsequent processing.
  • Manipulation of the data types described in the schema may affect the results of calculations. For example, a float field could be changed to an int field.
  • Change the encoding defined in the schema for certain fields allowing the contents to bypass filters that scan for dangerous strings. For example, the modified schema might use a URL encoding instead of ASCII, and a filter that catches a semicolon (;) might fail to detect its URL encoding (%3B).

Requirements

What does the attack require?

Prerequisites

  • Some level of access to modify the target schema.
  • The schema used by the target application must be improperly secured against unauthorized modification and manipulation.

Skills required

Not stated in the MITRE record.

Resources required

  • Access to the schema and the knowledge and ability modify it. Ability to replace or redirect access to the modified schema.

Impact

What does a successful attack lead to?

Unreliable ExecutionResource Consumption

Affected scopes: Availability

Modify Data

Affected scopes: Integrity

Read Data

Affected scopes: Confidentiality

Defence

How is it prevented and mitigated?

1
Design: Protect the schema against unauthorized modification.
2
Implementation: For applications that use a known schema, use a local copy or a known good repository instead of the schema reference supplied in the schema document.
3
Implementation: For applications that leverage remote schemas, use the HTTPS protocol to prevent modification of traffic in transit and to avoid unauthorized modification.

Real world

MITRE example instances

Example instance 1Detail
In a JSON Schema Poisoning Attack, an adervary modifies the JSON schema to cause a Denial of Service (DOS) or to submit malicious input: { "title": "Contact", "type": "object", "properties": { "Name": { "type": "string" }, "Phone": { "type": "string" }, "Email": { "type": "string" }, "Address": { "type": "string" } }, "required": ["Name", "Phone", "Email", "Address"] } If the 'name' attribute is required in all submitted documents and this field is removed by the adversary, the application may enter an unexpected state or record incomplete data. Additionally, if this data is needed to perform additional functions, a Denial of Service (DOS) may occur.
Example instance 2Detail
In a Database Schema Poisoning Attack, an adversary alters the database schema being used to modify the database in some way. This can result in loss of data, DOS, or malicious input being submitted. Assuming there is a column named "name", an adversary could make the following schema change: ALTER TABLE Contacts MODIFY Name VARCHAR(65353); The "Name" field of the "Conteacts" table now allows the storing of names up to 65353 characters in length. This could allow the adversary to store excess data within the database to consume system resource or to execute a DOS.
CAPEC-271: Schema Poisoning — DayBreach Saldırı Sözlüğü · DayBreach