Project

General

Profile

Actions

Bug #6753

closed

detect/cip: missing return-value check for a 'scanf'-like function

Added by Daniel Olatunji 9 months ago. Updated 5 months ago.

Status:
Closed
Priority:
Normal
Target version:
Affected Versions:
Effort:
Difficulty:
Label:

Description

Failing to check that a call to 'scanf' actually writes to an output variable can lead to unexpected behavior at reading time.
This variable is read, but may not have been written; hence it should be guarded by a check that the ["call to sscanf"|"relative:///src/detect-cipservice.c:160:9:160:14"] returns at least 1.

Affected file & code: suricata/src/detect-cipservice.c; Line 161,Column 22-24.

        } else if ((num > MAX_CIP_ATTRIBUTE) && (i == 2))//if service greater than 16 bit
        {
            SCLogError("invalid CIP attribute %lu", num);
            goto error;
        }

        sscanf(token, "%2" SCNu8, &var);
        input[i++] = var;

        token = strtok_r(NULL, delims, &save);
    }


Related issues 2 (1 open1 closed)

Related to Suricata - Optimization #6714: CI: run more CodeQL queriesAssignedDaniel OlatunjiActions
Related to Suricata - Feature #3958: enip: convert protocol parser to rustClosedPhilippe AntoineActions
Actions

Also available in: Atom PDF