This vulnerability occurs when a system has access to multiple sources for the same critical data, but it chooses to rely on the less secure or less trustworthy one. This creates a security gap because the system ignores better-protected alternatives that offer stronger verification or are harder for attackers to compromise.
Think of this flaw as a developer choosing to trust a rumor from an anonymous tip line over an official, signed document from a verified authority—even though both claim to state the same fact. The core issue isn't about missing data, but about making a poor choice between available sources. This often happens in code that fetches configuration, license keys, or critical parameters from multiple locations (like a local file, a network service, and a hardware security module) but defaults to the most convenient, rather than the most secure, option. To prevent this, your code should implement a clear trust hierarchy. Always design your system to prefer and require the most authoritative source—the one with the strongest cryptographic verification, integrity checks, or tamper resistance. This means explicitly validating the source before trusting its data and failing securely if the high-trust source is unavailable, rather than silently falling back to a weaker alternative that an attacker could easily manipulate.
Impact: Bypass Protection MechanismGain Privileges or Assume Identity
An attacker could utilize the untrusted data source to bypass protection mechanisms and gain access to sensitive data.
phpphp
...*