Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

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

Offen
#606 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
58/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Ruhig
Tech-Stack
rust
Bereich
security

Rechercherichtung

Beginne in dstack-util/src/system_setup.rs beim AppKeys-Schreibvorgang um die Zeilen 1350–1351 und bei den Schreibvorgängen der entschlüsselten Umgebungsvariablen um die Zeilen 1409–1419. Lies, wie diese Dateien geöffnet und geschrieben werden, und überprüfe anschließend, dass neu geschriebene geheime Dateien auf den Besitzer beschränkt sind und nicht für alle lesbar sind. Erledigt ist die Aufgabe, wenn beide Schreibpfade restriktive Berechtigungen verwenden und die bestehenden Rust-Prüfungen erfolgreich sind.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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.

Vorherrschende Sprache
Rust
Sterne
551
Forks
97
Ø Merge
1 T. 8 Std.
Gemergte PRs (30 T.)
182

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus Dstack-TEE/dstack

Alle Issues in Dstack-TEE/dstack

Ähnliche Issues

Weitere Issues zu Rust

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.