Umbra Wiki weakness weakness/CWE-382
Back to wiki

CWE-382 — J2EE Bad Practices: Use of System.exit()

provenance: imported · CWE: CWE-382

CWE-382: J2EE Bad Practices: Use of System.exit()

MITRE CWE weakness

Kind Weakness
Abstraction Variant
Status Draft
Likelihood of exploit

Description

A J2EE application uses System.exit(), which also shuts down its container.

It is never a good idea for a web application to attempt to shut down the application container. Access to a function that can shut down the application is an avenue for Denial of Service (DoS) attacks.

Common consequences

  • Availability: DoS: Crash, Exit, or Restart

Mitigations

Architecture and Design — The shutdown function should be a privileged function available only to a properly authorized administrative user

Implementation — Web applications should not call methods that cause the virtual machine to exit, such as System.exit()

Implementation — Web applications should also not throw any Throwables to the application server as this may adversely affect the container.

Implementation — Non-web applications may have a main() method that contains a System.exit(), but generally should not call System.exit() from other locations in the code

References

  • CWE page: https://cwe.mitre.org/data/definitions/382.html
  • CWE list: https://cwe.mitre.org/data/index.html