An application typically makes calls to functions that are a part of
libraries external to the application. These libraries may be part of the
operating system or they may be third party libraries. It is possible that
the application does not handle situations properly where access to these
libraries has been blocked. Depending on the error handling within the
application, blocked access to libraries may leave the system in an insecure
state that could be leveraged by an attacker.
Attack Execution Flow
Determine what external libraries the application
accesses.
Block access to the external libraries accessed by
the application.
Monitor the behavior of the system to see if it
goes into an insecure/inconsistent state.
If the system does go into an
insecure/inconsistent state, leverage that to obtain
information about the system functionality or data,
elevate access control, etc. The rest of this attack
will depend on the context and the desired
goal.
Attack Prerequisites
An application requires access to external libraries.
An attacker has the priviliges to block application access to external
libraries.
Typical Likelihood of Exploit
Likelihood: Medium
Methods of Attack
API Abuse
Modification of Resources
Examples-Instances
Description
A web-based system uses a third party cryptographic random number
generation library that derives entropy from machine's hardware. This
library is used in generation of user session ids used by the
applicatoin. If the library is inaccessible, the application instead
uses a software based weak pseudo random number generation library. An
attacker of the system blocks access of the application to the third
party cryptographic random number generation library (by renaming it).
The application in turn uses the weak pseudo random number generation
library to generate session ids that are predictable. An attacker then
leverages this weakness to guess a session id of another user to perform
a horizontal elevation of privilege escalation and gain access to
another user's account.
Attacker Skills or Knowledge Required
Skill or Knowledge Level: Low
Solutions and Mitigations
Ensure that application handles situations where access to APIs in
external libraries is not available securely. If the application cannot
continue its execution safely it should fail in a consistent and secure
fashion.