Difference between revisions of "Incorrect block delimitation"

From OWASP
Jump to: navigation, search
Line 1: Line 1:
 
 
{{Template:SecureSoftware}}
 
{{Template:SecureSoftware}}
  
Line 51: Line 50:
 
Not available.
 
Not available.
  
==Categories ==
 
  
 
[[Category:Vulnerability]]
 
[[Category:Vulnerability]]

Revision as of 23:11, 27 May 2006


Overview

In some languages, forgetting to explicitly delimit a block can result in a logic error that can, in turn, have security implications.

Consequences

This is a general logic error - with all the potential consequences that this entails.

Exposure period

  • Implementation

Platform

C, C++, C#, Java

Required resources

Any

Severity

Varies

Likelihood of exploit

Low

Avoidance and mitigation

Implementation: Always use explicit block delimitation and use static-analysis technologies to enforce this practice.

Discussion

In many languages, braces are optional for blocks, and - in a case where braces are omitted - it is possible to insert a logic error where a statement is thought to be in a block but is not. This is a common and well known reliability error.

Examples

In this example, when the condition is true, the intention may be that both x and y run.

if (condition==true) x;
  y;

Related problems

Not available.