This vulnerability occurs when an application triggers an error message from an external component—like a database, interpreter, or operating system—and that error reveals sensitive details about the system's internal workings, configuration, or data.
Unlike application-controlled errors, these messages originate from underlying platforms or dependencies and often include technical details developers didn't intend to expose. Attackers can deliberately trigger these errors by sending malformed inputs or causing system failures, then harvest information like stack traces, file paths, database schemas, or server versions to plan further attacks. Preventing this requires a defense-in-depth approach: configure external components to suppress verbose errors in production, implement centralized exception handling to catch and sanitize all external messages before they reach users, and ensure logging systems capture detailed diagnostics separately without exposing them through user interfaces. Regular testing with fuzzing and penetration testing helps identify what information leaks through these indirect channels.
Impact: Read Application Data
Strategy: Compilation or Build Hardening
Strategy: Environment Hardening
java
// May cause unchecked NullPointerException.* if (username.length() < 10) { ``` ... } }
java
/* Assume appropriate validation / encoding is used and privileges / permissions are preserved / }
java