env: a NUL byte in a `--file` entry reaches `std::env::set_var` unvalidated and aborts the process (exit 134)
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 82/100
Direzione di ricerca
Inizia in src/uu/env/src/env.rs intorno alle righe 331-338 e segui il percorso --file dalle voci analizzate fino a std::env::set_var; confrontalo con apply_specified_env_vars, che protegge il percorso argv. Riproduci i casi NUL per chiave e valore riportati nell'issue, quindi verifica che entrambi producano una diagnostica e un errore senza panic invece di terminare con exit 134.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
env --file FILE parses an .env/INI file and passes each key and value straight to std::env::set_var, which panics when either contains a NUL byte. A single NUL anywhere in the file therefore aborts env with a Rust panic instead of a diagnostic.
The argv path (env NAME=VALUE ...) is guarded — apply_specified_env_vars checks for an empty name before calling set_var, but the --file path has no guard at all.
Steps to reproduce
A NUL in the value:
$ printf 'KEY=a\x00b\n' > conf.env
$ env --file conf.env
thread 'main' panicked at library/std/src/env.rs:361:9:
failed to set environment variable `"KEY"` to `"a\0b"`: file name contained an unexpected NUL byte
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
$ echo $?
134
A NUL in the key does the same:
$ printf 'a\x00b=c\n' > k.env
$ env --file k.env # exit 134, identical panic
Root cause
std::env::set_var panics if either argument contains a NUL. Nothing between the parser and this call validates the bytes.
- Lingua principale
- Rust
- Stelle
- 24.2k
- Fork
- 2.1k
- Merge medio
- 1g 17h
- PR unite (30g)
- 331
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di uutils/coreutils
-
minorbug(mv): invalid mode errors not quotedForse già presa Una pull request collegata a questa issue è aperta o già unita. ApertaU - mv
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
ptx: break file missing path in error messageForse già presa Una pull request collegata a questa issue è aperta o già unita. ApertaU - ptx
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
uutils/coreutils#15307 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
minorbug(stat): os errno not stripped when failing to flush stdoutForse già presa @cestercian l’ha presa 7 giorni fa. ApertaU - stat
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
uutils/coreutils#15200 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
stty: support B460800 and B921600 baud ratesForse già presa @oech3 l’ha presa 3 giorni fa. Apertaawaiting upstream U - stty
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
B - high priority U - du
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
uutils/coreutils#14984 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di uutils/coreutils
Issue simili
-
Expose the dot grid colourAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
nannou-org/egui_graph#92 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation good first issue
Difficoltà 2/5 Mezza giornata Idoneità per principianti 72/100
sujithputta02/Esapay#13 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
tursodatabase/turso#10002 ·
I maintainer di solito rispondono entro 1 giorno
-
needs triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
topgrade-rs/topgrade#2419 ·
I maintainer di solito rispondono entro 1 giorno
-
review-bot
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
midagedev/bloomery#318 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno