Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Security: App keys and decrypted env vars written with world-readable permissions

Aberta
#606 2 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
58/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Pouca atividade
Stack de tecnologia
rust
Domínio
security

Direção de pesquisa

Comece em dstack-util/src/system_setup.rs, na escrita de AppKeys por volta das linhas 1350-1351 e nas escritas das variáveis de ambiente descriptografadas por volta das linhas 1409-1419. Leia como esses arquivos são abertos e escritos e, em seguida, verifique se os novos arquivos secretos gravados estão restritos ao proprietário, em vez de serem legíveis por todos. A tarefa estará concluída quando ambos os caminhos de escrita usarem permissões restritivas e as verificações Rust existentes passarem.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

security security: hardening security: report

Note: This issue documents a vulnerability that was originally reported privately as the repository security advisory GHSA-535m-2x67-prhm by @pbeza.

Root Cause

fs::write() is used with default permissions (0o644) to write AppKeys to the filesystem. The AppKeys structure contains disk_crypt_key, env_crypt_key, and k256_key — all highly sensitive cryptographic secrets. Similarly, decrypted environment variables are written to files with default world-readable permissions.

// Default fs::write() creates files with 0o644 permissions
fs::write(&app_keys_path, serde_json::to_string(&app_keys)?)?;

Attack Path

  1. Any process inside the CVM can read /path/to/app-keys.json
  2. Attacker compromises any container workload (web vulnerability, dependency exploit, etc.)
  3. Compromised process reads app-keys.json with disk_crypt_key, env_crypt_key, k256_key
  4. Attacker can decrypt the disk, decrypt environment variables, and use the k256 signing key

Impact

Any compromised process inside the CVM can read all application cryptographic keys and decrypted environment variables. This includes the disk encryption key (enables offline disk reading), the env encryption key (decrypts all environment secrets), and the k256 key (enables signing as the CVM).

Suggested Fix

Set restrictive permissions before writing:

use std::os::unix::fs::OpenOptionsExt;

let mut file = std::fs::OpenOptions::new()
    .write(true)
    .create(true)
    .truncate(true)
    .mode(0o600)
    .open(&app_keys_path)?;
file.write_all(serde_json::to_string(&app_keys)?.as_bytes())?;

Consider further restricting to 0o400 (read-only by owner) after the initial write.


Note: This finding was reported automatically as part of an AI/Claude-driven internal audit by the NEAR One MPC team. It has not been manually verified by a human to confirm whether it constitutes an actual security issue.

Linguagem predominante
Rust
Estrelas
561
Forks
99
Merge médio
1d 5h
PRs com merge (30d)
182

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de Dstack-TEE/dstack

Todas as issues de Dstack-TEE/dstack

Issues semelhantes

Mais issues de Rust

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.