Skip to content

False positive: Insecure Direct Object Reference (cs/web/insecure-direct-object-reference) and Missing function level access control (cs/web/missing-function-level-access-control) #16327

Open
@alensiljak

Description

@alensiljak

Description of the false positive

In a C# project, we have dozens of potential false positives for "Insecure Direct Object Reference (cs/web/insecure-direct-object-reference)" and "Missing function level access control (cs/web/missing-function-level-access-control)" due to the custom authorization that we use via an attribute. Please see the code example below.
What would you suggest as a mitigation in this situation?

Code samples or links to source code

[Function(Functions.Event.Add)]
public void PublicFunction() {
    Function1();
}

private void Function1() {
    Function2();
}

private void Function2(id) {
    // load object id <= Insecure Direct Object Reference (cs/web/insecure-direct-object-reference)
}

where the [Function] attribute takes the user's identity and looks if it is authorized for a specific system function. This checks for both authentication and authorization.

The "Missing function level access control (cs/web/missing-function-level-access-control)" is often reported directly on the function declaration:

[Function(Functions = new[] { Functions.Location.Edit })]
public async Task<IActionResult> Edit(string name)  // <= scanner reports insecure function

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions