reference Rule options

taint_assume_safe_numbers

Value
true or false
Default
false
See also
taint_assume_safe_booleans

With taint_assume_safe_numbers: true, a value of integer or floating-point type is clean, even when it was computed from tainted data, as Integer.parseInt(page) is from page.

As with taint_assume_safe_booleans, the option applies only where Opengrep knows the type: in Java, from declared variable types and method return types; in Go and TypeScript, from the declared type of a variable only. In Python, the option has no effect.

Examples

Numbers in Java

The rule page-logged turns the option on.

Paging.yaml
rules:  - id: page-logged-default    mode: taint    pattern-sources:      - pattern: request.getParameter(...)    pattern-sinks:      - pattern: log.info(...)    message: request parameter is logged    languages: [java]    severity: WARNING  - id: page-logged    mode: taint    pattern-sources:      - pattern: request.getParameter(...)    pattern-sinks:      - pattern: log.info(...)    message: request parameter is logged    languages: [java]    severity: WARNING    options:      taint_assume_safe_numbers: true
Paging.java
class Paging {  void handle() {    String page = request.getParameter("page");    // ruleid: page-logged-default, page-logged    log.info(page.trim());    int number = Integer.parseInt(page);    // ruleid: page-logged-default    log.info(number);    // ruleid: page-logged-default    log.info(page.length());  }}
Command and result
$ opengrep test .
2/2: ✓ All tests passed
No tests for fixes found.

No effect in Python

sizes.yaml
rules:  - id: size-logged    mode: taint    pattern-sources:      - pattern: input(...)    pattern-sinks:      - pattern: log(...)    message: user input is logged    languages: [python]    severity: WARNING    options:      taint_assume_safe_numbers: true
sizes.py
text = input()number = int(text)# ruleid: size-loggedlog(number)size = len(text)# ruleid: size-loggedlog(size)
Command and result
$ opengrep test .
1/1: ✓ All tests passed
No tests for fixes found.