CWE-453 Variante Rascunho

Insecure Default Variable Initialization

This vulnerability occurs when software sets an internal variable to an insecure or unnecessarily weak default value during initialization, rather than using the most secure option available.

Definição

What is CWE-453?

This vulnerability occurs when software sets an internal variable to an insecure or unnecessarily weak default value during initialization, rather than using the most secure option available.
Insecure default initialization happens when a developer or framework assigns a starting value to a variable that is inherently vulnerable. Common examples include enabling debug modes, using weak cryptographic keys, granting excessive permissions, or turning security features off by default. This creates a hidden security gap because the system starts in a weakened state, often without the administrator or end-user being aware that they need to change a setting to be secure. To prevent this, developers should adopt a 'secure by default' design principle. This means the initial configuration should be the most restrictive and safest possible, requiring explicit action to loosen security, not the other way around. Always validate that security-critical variables like encryption settings, authentication flags, and privilege levels are initialized to their strongest values, and ensure documentation clearly warns against using insecure defaults.
Impacto no mundo real

Real-world CVEs caused by CWE-453

  • insecure default variable initialization in BIOS firmware for a hardware board allows DoS

Como os atacantes a exploram

Trajeto do atacante passo a passo

  1. 1

    This code attempts to login a user using credentials from a POST request:

  2. 2

    Because the $authorized variable is never initialized, PHP will automatically set $authorized to any value included in the POST request if register_globals is enabled. An attacker can send a POST request with an unexpected third value 'authorized' set to 'true' and gain authorized status without supplying valid credentials.

  3. 3

    Here is a fixed version:

  4. 4

    This code avoids the issue by initializing the $authorized variable to false and explicitly retrieving the login credentials from the $_POST variable. Regardless, register_globals should never be enabled and is disabled by default in current versions of PHP.

Exemplo de código vulnerável

Vulnerable PHP

This code attempts to login a user using credentials from a POST request:

Vulnerável PHP
```
// $user and $pass automatically set from POST request* 
  if (login_user($user,$pass)) {
  ```
  	$authorized = true;
  }
```
...* 
  
  if ($authorized) {
  ```
  	generatePage();
  }
Exemplo de código seguro

Secure PHP

Here is a fixed version:

Seguro PHP
$user = $_POST['user'];
  $pass = $_POST['pass'];
  $authorized = false;
  if (login_user($user,$pass)) {
  	$authorized = true;
  }
```
...*
What changed: the unsafe sink is replaced (or the input is validated/escaped) so the same payload no longer triggers the weakness.
Lista de verificação de prevenção

How to prevent CWE-453

  • System Configuration Disable or change default settings when they can be used to abuse the system. Since those default settings are shipped with the product they are likely to be known by a potential attacker who is familiar with the product. For instance, default credentials should be changed or the associated accounts should be disabled.
Sinais de deteção

How to detect CWE-453

SAST High

Executar análise estática (SAST) na base de código à procura do padrão inseguro no fluxo de dados.

DAST Moderate

Executar testes dinâmicos de segurança de aplicações (DAST) contra o endpoint em execução.

Runtime Moderate

Monitorizar os registos em tempo de execução para traços de exceção invulgares, input malformado ou tentativas de contornar a autorização.

Code review Moderate

Revisão de código: sinalizar qualquer novo código que trate input desta superfície sem usar os ajudantes validados do framework.

Correção automática do Plexicus

O Plexicus deteta automaticamente o CWE-453 e abre um PR de correção em menos de 60 segundos.

O Codex Remedium analisa cada commit, identifica esta fraqueza exata e entrega um pull request pronto para revisão com o patch. Sem tickets. Sem transferências.

Perguntas frequentes

Frequently asked questions

O que é o CWE-453?

This vulnerability occurs when software sets an internal variable to an insecure or unnecessarily weak default value during initialization, rather than using the most secure option available.

Qual a gravidade do CWE-453?

A MITRE não publicou uma classificação de probabilidade de exploração para esta fraqueza. Trate-a como impacto médio até o seu modelo de ameaças provar o contrário.

Que linguagens ou plataformas são afetadas pelo CWE-453?

MITRE lists the following affected platforms: PHP.

Como posso prevenir o CWE-453?

Disable or change default settings when they can be used to abuse the system. Since those default settings are shipped with the product they are likely to be known by a potential attacker who is familiar with the product. For instance, default credentials should be changed or the associated accounts should be disabled.

Como é que o Plexicus deteta e corrige o CWE-453?

O motor SAST do Plexicus correlaciona a assinatura de fluxo de dados do CWE-453 em cada commit. Quando é encontrada uma correspondência, o nosso agente Codex Remedium abre um PR de correção com o código corrigido, testes e um resumo de uma linha para o revisor.

Onde posso saber mais sobre o CWE-453?

A MITRE publica a definição canónica em https://cwe.mitre.org/data/definitions/453.html. Pode também consultar a documentação da OWASP e do NIST para orientações adjacentes.

Pronto quando você estiver

Pare de pagar por desenvolvedor.
Comece a fechar o ciclo.

O Plexicus é o ASPM nativo de IA que verifica, filtra, corrige, pentesta e explica — de forma autónoma. Programadores ilimitados, repos ilimitados, ações de IA de utilização justa. Nível gratuito real, €269/mo anual quando estiver pronto.