Skip to content

FS-PERM-001: Arquivos de dados criados com permissões 0644 (world-readable) #356

@ElioNeto

Description

@ElioNeto

🟡 Médio | Segurança | WAL/SSTable

Problema

Arquivos de dados (WAL, SSTables, snapshots) são criados com permissões default do sistema (tipicamente 0644, world-readable). Em sistemas multi-tenant, qualquer usuário local pode ler todos os dados do storage engine.

Impacto

Vazamento de dados para outros usuários no mesmo sistema. Violação de isolamento em ambientes compartilhados.

Evidência

$ ls -la .lsm_data/
-rw-rw-r--  1 user user 511 Apr 10 17:40 wal.log
-rw-rw-r--  1 user user ... sstables/*.sst

Como reproduzir

sudo -u outro_usuario cat /path/to/.lsm_data/wal.log
# Dados legíveis por qualquer usuário

Correção recomendada

use std::fs::set_permissions;
use std::os::unix::fs::PermissionsExt;

// Após criar cada arquivo de dados:
let mut perms = file.metadata()?.permissions();
perms.set_mode(0o600); // owner read/write only
set_permissions(path, perms)?;

Criar uma função utilitária create_secure_file(path) -> File que:

  1. Cria o arquivo com permissões restritas (0o600 ou 0o640)
  2. Loga warning se não for possível

Esforço: Baixo (2h)

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions