This weakness occurs when an application relies on hardware-specific or platform-dependent features but fails to isolate that code from the rest of the system. This poor separation creates tight coupling between the core logic and low-level machine details.
When machine-dependent code—like direct hardware manipulation, processor-specific instructions, or OS-native calls—is scattered throughout an application, it creates a maintenance burden. Porting the software to a new architecture or platform becomes a complex, error-prone task of finding and updating every embedded dependency. This directly slows down development cycles and makes applying security patches more difficult. Indirectly, this complexity becomes a security liability. The increased effort to maintain or migrate the code makes it harder to identify and fix vulnerabilities in a timely manner. Developers are more likely to introduce flaws when modifying this entangled code, and the lack of clear boundaries can obscure security-critical logic. Properly encapsulating these dependencies behind clean interfaces is essential for long-term security and maintainability.
Impact: Reduce Maintainability
c