...
In this noncompliant code example, MutableClass
uses a mutable field date
of type Date
. Class Date
is also a mutable class. The example is not compliant fails to comply because MutableClass
objects provide no means of copying themselveslack copy functionality.
Code Block | ||
---|---|---|
| ||
public final class MutableClass { private Date date; public MutableClass(Date d) { this.date = d; } public void setDate(Date d) { this.date = d; } public Date getDate() { return date; } } |
When a trusted caller passes an instance of MutableClass
to untrusted code, and the untrusted code modifies that instance (perhaps by incrementing the month or changing the timezone), the state of the object may no longer remain consistent may consequently become inconsistent with its previous state. Similar problem problems can arise in the presence of multiple threads, even in the absence of untrusted code.
...
Guideline | Severity | Likelihood | Remediation Cost | Priority | Level |
---|---|---|---|---|---|
OBJ10-J | low | likely | medium | P6 | L2 |
Automated Detection
TODOSound automated detection appears to be infeasible in the general case. Heuristic approaches may be useful.
Related Vulnerabilities
Search for vulnerabilities resulting from the violation of this guideline on the CERT website.
...