Skip to content

infinite recursive loop in dereferencePtr() #30

@nitram509

Description

@nitram509

Found by Gemeni ...

Issue Description

The dereferencePtr function follows pointers indefinitely using a for loop. If a value is a circular pointer (e.g., a pointer that points to itself), the function will loop forever, hanging the process. This can be triggered via the get value FEEL function if the provided context contains such a structure. This represents a potential Denial of Service (DoS) vulnerability.

File context.go

At line 93:

if err := getContextMap(kwargs["context"], argsByKey.Context); err == nil {
    if v, ok := argsByKey.Context[argsByKey.Key]; ok {
       return dereferencePtr(v), nil

classification: Medium Priority

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions