Reino: Code Quality
Códigos de baixa qualidade levam a comportamentos imprevisíveis. Da perspectiva do usuário, isso normalmente se manifesta como usabilidade ruim. Para um invasor, trata-se de uma oportunidade para atacar o sistema de formas imprevistas.
Undefined Behavior: File Pointer Dereference
Abstract
O aplicativo usa uma atribuição que desreferencia um objeto FILE do sistema.
Explanation
Dependendo do compilador C específico em uso, o endereço de um objeto FILE do sistema pode ser significativo para o uso do objeto FILE como um fluxo. Usar uma cópia do objeto FILE sem o endereço associado pode levar a um comportamento indefinido, resultando em um possível vazamento de informações do sistema, uma falha do sistema ou na capacidade de um agente mal-intencionado ler ou editar arquivos a seu critério.
Exemplo 1: O código a seguir mostra um objeto FILE do sistema que é desreferenciado e copiado por valor.
Como
Exemplo 1: O código a seguir mostra um objeto FILE do sistema que é desreferenciado e copiado por valor.
FILE *sysfile = fopen(test.file, "w+");
FILE insecureFile = *sysfile;
Como
sysfile
é desreferenciado na atribuição de insecureFile
, o uso de insecureFile
pode resultar em uma ampla variedade de problemas.References
[1] Standards Mapping - Common Weakness Enumeration CWE ID 706
[2] Standards Mapping - Motor Industry Software Reliability Association (MISRA) C Guidelines 2012 Rule 22.5
[3] Standards Mapping - Motor Industry Software Reliability Association (MISRA) C Guidelines 2023 Rule 22.5
desc.structural.cpp.undefined_behavior_file_pointer_dereference