Как решить проблему контроля процессов, о которой сообщает Fortify

Я работаю над следующей проблемой управления процессом, о которой сообщает fortify, которая описана в https://vulncat.fortify.com/en/detail?id=desc.dataflow.abap.process_control#C%2FC%2B%2B .

Функция load() в filename.c вызывает dlopen() в строке 3. Вызов загружает библиотеку без указания абсолютного пути. Это может привести к тому, что программа будет использовать вредоносную библиотеку, предоставленную злоумышленником.

У меня есть функция ниже, которая вызывается в разных местах кода.

      void* load(char* name)
{
    void* handle;
    handle = dlopen(name, RTLD_LAZY | RTLD_GLOBAL);
    return(handle);
}

void somefunc()
{
    void *login_module_handle = load("/home/myuser/load_this_shared_lib.so");
}

Здесь я уже использую абсолютный путь, но не понимаю, почему Fortify все еще сообщает об ошибке.

Возможные рекомендации от Fortify показаны ниже.

  1. По возможности библиотеки должны управляться приложением и выполняться с использованием абсолютного пути.
  2. В случаях, когда путь неизвестен во время компиляции, например, для кросс-платформенных приложений, абсолютный путь должен быть создан из известных значений во время выполнения.

Любое предложение будет полезно.

0 ответов

Другие вопросы по тегам