This weakness occurs when a method in one class directly accesses a private or internal member (like a field or property) of a different class, bypassing proper interfaces.
Directly reaching into another class's internals breaks a core principle of object-oriented design: encapsulation. It creates tight, hidden couplings between classes, making your code brittle and difficult to change. When a class's internal state can be changed from many unexpected places, it becomes hard to reason about its behavior, track data flow, and ensure integrity, which sets the stage for bugs. From a security perspective, this poor structure doesn't directly cause a vulnerability but significantly increases risk. It makes the codebase harder to audit and maintain, slowing down the identification and fixing of actual security flaws. Furthermore, this pattern often bypasses validation logic, allowing data to be set to invalid or dangerous states, and it makes introducing new vulnerabilities during future modifications much more likely.
Impact: Reduce Maintainability