CWE-382 · Słabość
J2EE Bad Practices: Use of System.exit()
- Abstrakcja
- Wariant
- Status
- Szkic
- Dodano
- 19 lipca 2006
- Ostatnia zmiana
- 11 grudnia 2025
Opis
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.
Skutki
Availability
DoS: Crash, Exit, or Restart
Zapobieganie
Architecture and Design · Separation of Privilege
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
Słabość nadrzędna
Kiedy powstaje
- Implementation — A call to System.exit() is probably part of leftover debug code or code imported from a non-J2EE application.
Dotyczy
Java, Web Based, Web Server
Źródła
- Seven Pernicious Kingdoms: A Taxonomy of Software Security Errors — Katrina Tsipenyuk, Brian Chess, Gary McGraw, NIST, 2005
Wpis z katalogu CWE 4.20.