Name |
Schema Poisoning |
|
Likelyhood of attack |
Typical severity |
Low |
High |
|
Summary |
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. |
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. |
Execution Flow |
Step |
Phase |
Description |
Techniques |
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. |
- 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. |
- 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. |
- 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).
|
|
Solutions | Design: Protect the schema against unauthorized modification. 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. Implementation: For applications that leverage remote schemas, use the HTTPS protocol to prevent modification of traffic in transit and to avoid unauthorized modification. |
Related Weaknesses |
CWE ID
|
Description
|
CWE-15 |
External Control of System or Configuration Setting |
|
Related CAPECS |
CAPEC ID
|
Description
|
CAPEC-94 |
An adversary targets the communication between two components (typically client and server), in order to alter or obtain data from transactions. A general approach entails the adversary placing themself within the communication channel between the two components. |
CAPEC-176 |
An attacker manipulates files or settings external to a target application which affect the behavior of that application. For example, many applications use external configuration files and libraries - modification of these entities or otherwise affecting the application's ability to use them would constitute a configuration/environment manipulation attack. |
|