Tainted division operand
Operands of division operation (/
) come from an unsecure
source
Description
This defect occurs when one or both integer operands in a division operation comes from unsecure sources.
Risk
If the numerator is the minimum possible value and the denominator is
-1
, your division operation overflows because the result cannot be represented by the current variable size.If the denominator is zero, your division operation fails possibly causing your program to crash.
These risks can be used to execute arbitrary code. This code is usually outside the scope of a program's implicit security policy.
Fix
Before performing the division, validate the values of the operands.
Check for denominators of 0
or -1
,
and numerators of the minimum integer value.
Extend Checker
By default, Polyspace® assumes that data from external
sources are tainted. See Sources of Tainting in a Polyspace Analysis. To consider any data that does not originate in
the current scope of Polyspace analysis as tainted,
use the command line option -consider-analysis-perimeter-as-trust-boundary
.
Examples
Result Information
Group: Tainted Data |
Language: C | C++ |
Default: Off |
Command-Line Syntax: TAINTED_INT_DIVISION |
Impact: Low |
Version History
Introduced in R2015b
See Also
Integer division by zero
| Float division by zero
| Tainted modulo operand
| Find defects (-checkers)
| -consider-analysis-perimeter-as-trust-boundary
Topics
- Interpret Bug Finder Results in Polyspace Desktop User Interface
- Interpret Bug Finder Results in Polyspace Access Web Interface (Polyspace Access)
- Address Results in Polyspace User Interface Through Bug Fixes or Justifications
- Address Results in Polyspace Access Through Bug Fixes or Justifications (Polyspace Access)
- Sources of Tainting in a Polyspace Analysis
- Modify Default Behavior of Bug Finder Checkers