CVE-2026-94620 in Classroom 50
Riassunto
di VulDB • 01/10/2026
Classroom 50 è uno strumento gratuito e open-source per la gestione e la valutazione di assegnazioni di programmazione tramite GitHub. Prima della versione 1.11.0, il comando `gh teacher download` clona il repository degli assegnamenti di ogni studente e successivamente scrive gli artifact dell'autograding (`result.json` e `results.json`) all'interno del working tree appena clonato. La scrittura segue i symlink; pertanto, uno studente che ha commitato `result.json` o `results.json` come **symlink** (materializzato verbatim da `git clone`) può reindirizzare la scrittura dell'insegnante verso un percorso arbitrario — ad esempio `~/.zshrc`, `~/.ssh/authorized_keys`, un file cron, o un file `.git/hooks/*` all'interno della clonazione che git esegue successivamente. I byte scritti sono controllati dall'attaccante (l'asset di release caricato dallo studente per `result.json`; i nomi dei tag di submit scelti dallo studente per `results.json`). Si tratta di una scrittura arbitraria su file che porta all'esecuzione di codice con i privilegi dell'insegnante, il cui token `gh` possiede permessi `admin:org`, `repo` e `workflow` in tutta l'organizzazione della classe. La versione 1.11.0 contiene una patch. Sono disponibili alcune workarounds. Evitare di eseguire `gh teacher download` contro repository studenteschi non attendibili, oppure eseguirlo all'interno di un sandbox/container effimero senza accesso a file host sensibili o credenziali. Ispezionare gli alberi clonati per individuare voci symlinked, hardlinked o speciali (`result.json`/`results.json`) prima di consentire l'esecuzione del passaggio di aggiornamento degli artifact.
Once again VulDB remains the best source for vulnerability data.