CAPEC Definitions

    CAPEC Definitions / CAPEC-13

    CAPEC-13: Subverting Environment Variable Values

    The adversary directly or indirectly modifies environment variables used by or controlling the target software. The adversary's goal is to cause the target software to deviate from its expected operation in a manner that benefits the adversary.

    Severity:Very High
    Possibility:High

    Extended Description

    No Extended Description.

    Mitigations

    Protect environment variables against unauthorized read and write access.

    Protect the configuration files which contain environment variables against illegitimate read and write access.

    Assume all input is malicious. Create an allowlist that defines all valid input to the software system based on the requirements specifications. Input that does not match against the allowlist should not be permitted to enter into the system.

    Apply the least privilege principles. If a process has no legitimate reason to read an environment variable do not give that privilege.

    Relationships with other CAPECs

    CAPEC-77: Manipulating User-Controlled Variables

    CAPEC-14: Client-side Injection-induced Buffer Overflow

    CAPEC-10: Buffer Overflow via Environment Variables

    Prerequisites

    An environment variable is accessible to the user.

    An environment variable used by the application can be tainted with user supplied data.

    Input data used in an environment variable is not validated properly.

    The variables encapsulation is not done properly. For instance setting a variable as public in a class makes it visible and an adversary may attempt to manipulate that variable.

    Related Weaknesses

    CWE-353: Missing Support for Integrity Check

    CWE-285: Improper Authorization

    CWE-302: Authentication Bypass by Assumed-Immutable Data

    CWE-74: Improper Neutralization of Special Elements in Output Used by a Downstream Component ('Injection')

    CWE-15: External Control of System or Configuration Setting

    CWE-73: External Control of File Name or Path

    CWE-20: Improper Input Validation

    CWE-200: Exposure of Sensitive Information to an Unauthorized Actor