Contenido principal

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

Defectos por datos contaminados

Defectos relacionados con elementos de código que provienen de una fuente no segura

Los defectos por datos contaminados señalan el uso de datos contaminados en determinadas operaciones. Se considera contaminado todo dato que proviene de una fuente no segura. Polyspace® considera como fuentes no seguras las siguientes:

  • Objetos volátiles.

  • Entradas externas obtenidas mediante funciones de biblioteca estándar. Las entradas externas pueden incluir:

    • Entradas del usuario

    • Variables de entorno

    • Contenido o ruta de archivos

    • Datos obtenidos de hardware

Antes de utilizar los datos, valide los datos contaminados procedentes de las citadas fuentes no seguras. Los atacantes maliciosos pueden utilizar datos contaminados no validados para atacar al programa y provocar fallos. Los defectos por datos contaminados señalan el uso de datos contaminados que no han sido validados en determinadas operaciones. Por ejemplo, Polyspace señala:

  • Datos contaminados en diversas operaciones numéricas.

  • Elementos controlados externamente, como rutas, comandos, variables de entorno e ID de host.

  • Datos contaminados en operaciones de memoria como la asignación o desreferenciación.

Resultados de Polyspace

Array access with tainted indexArray index from unsecure source possibly outside array bounds
Command executed from externally controlled pathPath argument from an unsecure source
Execution of externally controlled commandCommand argument from an unsecure source vulnerable to operating system command injection
Host change using externally controlled elementsChanging host ID from an unsecure source
Library loaded from externally controlled pathUsing a library argument from an externally controlled path
Loop bounded with tainted valueLoop controlled by a value from an unsecure source
Memory allocation with tainted sizeSize argument to memory function is from an unsecure source
Pointer dereference with tainted offsetOffset is from an unsecure source and dereference might be out of bounds
Tainted division operandOperands of division operation (/) come from an unsecure source
Tainted modulo operandOperands of remainder operation (%) come from an unsecure source
Tainted NULL or non-null-terminated stringArgument is from an unsecure source and might be NULL or not NULL-terminated
Tainted sign change conversionValue from an unsecure source changes sign
Tainted size of variable length arraySize of the variable-length array (VLA) is from an unsecure source and might be zero, negative, or too large
Tainted source used with sensitive functionData obtained from an untrusted source is passed to user-defined sensitive function (Desde R2023b)
Tainted string formatInput format argument is from an unsecure source
Use of externally controlled environment variableValue of environment variable is from an unsecure source
Use of tainted pointerPointer from an unsecure source may be NULL or point to unknown memory

Temas