Insecure exceptions - Empty or no catch
Description
The application does not perform proper exception handling. Empty catch statements are found, or try statements without their respective catch. This behavior can make the application temporarily or permanently unavailable by presenting errors that are not being handled.
Impact
- Generate the crash of the application due to errors that are not being taken into account.
- Lose the traceability of the errors presented.
Recommendation
For every try sentence define its respective catch handling the exception accordingly.
Threat
Authenticated attacker from the Internet.
Expected Remediation Time
⌚ 40 minutes.
Score
Default score using CVSS 3.1. It may change depending on the context of the vulnerability.
Base
- Attack vector: N
- Attack complexity: H
- Privileges required: L
- User interaction: N
- Scope: U
- Confidentiality: N
- Integrity: N
- Availability: L
Temporal
- Exploit code madurity: P
- Remediation level: U
- Report confidence: C
Result
- Vector string: CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:L/E:P/RL:U/RC:C
- Score:
- Base: 3.1
- Temporal: 3.0
- Severity:
- Base: Low
- Temporal: Low
Code Examples
Compliant code
All try sentences are accompanied by a catch sentence that correctly handles any exception
def handleUserInput(userReq):
try:
getFile(userReq)
Except:
raise Exception("Error")
//Next portion of the code
Non compliant code
There are some try sentences without their respective catch to handle exceptions
def handleUserInput(userReq):
try:
getFile(userReq)
//Next portion of the code without a catch sentence
Requirements
- 161. Define secure default options
- 266. Disable insecure functionalities
- 359. Avoid using generic exceptions
Search for vulnerabilities in your apps for free with our automated security testing! Start your 21-day free trial and discover the benefits of our Continuous Hacking Machine Plan. If you prefer a full service that includes the expertise of our ethical hackers, don't hesitate to contact us for our Continuous Hacking Squad Plan.