Security: predictable /tmp/nc_exit_status in postdetails - symlink clobber and TOCTOU
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
- 84/100
Direzione di ricerca
Inizia in lgsm/modules/command_postdetails.sh intorno alle righe 63-65 e ispeziona il gruppo di comandi che chiama termbin.com, scrive in /tmp/nc_exit_status e lo rilegge. Esegui ./gameserver pd e verifica che la gestione dello stato di uscita non dipenda più da un percorso temporaneo condiviso prevedibile o da una race condition di scrittura/lettura.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Security report (responsible disclosure)
Predictable /tmp/nc_exit_status file in postdetails — symlink clobber + write/read race
Affected: lgsm/modules/command_postdetails.sh:63-65
nc -w 10 termbin.com 9999
echo $? > /tmp/nc_exit_status
} | tr -d '\n\0')
nc_exit_status=$(cat /tmp/nc_exit_status)
Two problems:
- Fixed world-writable path with no
mktemp/O_EXCL/noclobber: a local attacker pre-creates/tmp/nc_exit_statusas a symlink to a victim-owned file (e.g.~/.bashrc). Next time the victim runs./gameserver pd, the redirect truncates the target with0\n— arbitrary file clobber as the victim user (CWE-59/CWE-377). - TOCTOU between write and read: an attacker can swap the file contents between line 63 and line 65 to corrupt the status logic; the file is also shared across concurrent LGSM instances.
Suggested fix
Drop the temp file entirely:
nc -w 10 termbin.com 9999
nc_exit_status=$?
…inside the same command group, or use mktemp under ${tmpdir} if the split is required.
- Lingua principale
- Shell
- Stelle
- 4.9k
- Fork
- 870
- Merge medio
- 1g 16h
- PR unite (30g)
- 45
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Ha un 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 GameServerManagers/LinuxGSM
-
[iosserver] IOSoccer moved to a 64-bit server, srcds_run no longer existsForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertaengine: source game: IOSoccer info: dependency info: query type: bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
GameServerManagers/LinuxGSM#5023 ·
I maintainer di solito rispondono entro 1 giorno
-
command: monitor type: feature
Difficoltà 3/5 Mezza giornata Idoneità per principianti 42/100
GameServerManagers/LinuxGSM#4995 ·
I maintainer di solito rispondono entro 1 giorno
-
type: feature
Difficoltà 3/5 Mezza giornata Idoneità per principianti 45/100
GameServerManagers/LinuxGSM#4994 ·
I maintainer di solito rispondono entro 1 giorno
-
command: console distro: Debian info: website regression: yes reproducible: always severity: medium type: bug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
GameServerManagers/LinuxGSM#4962 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Security: game-server config values parsed via eval in info_game.sh - stored command injectionAperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 72/100
GameServerManagers/LinuxGSM#4955 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di GameServerManagers/LinuxGSM
Issue simili
-
netbox status: backlog topic: testing type: housekeeping
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
netbox-community/netbox#23395 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
ajeetdsouza/zoxide#1323 ·
I maintainer di solito rispondono entro 1 giorno
-
e2e-failure ready-to-code
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
redhat-developer/rhdh-plugin-export-overlays#4391 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
documentation good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
graygarbage/HermesKey#20 ·