|
Weakness ID: 1321
Vulnerability Mapping:
ALLOWED
This CWE ID may be used to map to real-world vulnerabilities
Abstraction: Variant Variant - a weakness that is linked to a certain type of product, typically involving a specific language or technology. More specific than a Base weakness. Variant level weaknesses typically describe issues in terms of 3 to 5 of the following dimensions: behavior, property, technology, language, and resource. |
| Phase(s) | Mitigation | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
Implementation |
By freezing the object prototype first (for example, Object.freeze(Object.prototype)), modification of the prototype becomes impossible.
Effectiveness: High Note:
While this can mitigate this weakness completely, other methods are recommended when possible, especially in components used by upstream software ("libraries").
|
Architecture and Design
|
By blocking modifications of attributes that resolve to object prototype, such as proto or prototype, this weakness can be mitigated.
Effectiveness: High
|
Implementation
|
Strategy: Input Validation When handling untrusted objects, validating using a schema can be used.
Effectiveness: Limited
|
Implementation
|
By using an object without prototypes (via Object.create(null) ), adding object prototype attributes by accessing the prototype via the special attributes becomes impossible, mitigating this weakness.
Effectiveness: High
|
Implementation
|
Map can be used instead of objects in most cases. If Map methods are used instead of object attributes, it is not possible to access the object prototype or modify it.
Effectiveness: Moderate |