This weakness occurs when a parent class directly references its child classes, their methods, or their member variables, creating a problematic and tightly coupled dependency.
This design flaw creates a fragile inheritance structure where the parent class is no longer a stable, independent blueprint. It becomes dependent on the specific implementation details of its children, violating core object-oriented principles. This coupling makes the code difficult to maintain, as changes in a child class can unexpectedly break the parent class, leading to runtime errors and unreliable behavior. From a security perspective, while not a direct vulnerability, this unreliability can be exploited. If an attacker can reach or influence this unstable code path, they might trigger crashes, bypass logic, or cause unexpected state changes. The resulting instability transforms a code quality issue into a potential entry point for denial-of-service or other attacks that exploit the program's unpredictable behavior.
Impact: Reduce Reliability