Due segnalazioni sono state pubblicate contro MetaGPT, uno dei framework multi-agent più citati, con 70.148 stelle su GitHub. CVE-2026-79408 è una OS command injection tramite l'argomento path di RepoParser.rebuild_class_views() in metagpt/repo_parser.py. CVE-2026-79407 è una path traversal tramite il valore FILE_NAME in metagpt/ext/spo/utils/load.py, che consente letture arbitrarie di file. Entrambe sono segnalate per la versione 0.8.1.

Cosa implica "interessa la 0.8.1" e perché qui non è corretto

Un intervallo di versioni in una segnalazione significa normalmente che esiste un aggiornamento. Qui no. In nessuno dei due record è indicata una versione corretta. Il codice vulnerabile è ancora nel branch predefinito: repo_parser.py costruisce ancora f"pyreverse {str(path)} -o dot" e lo passa a subprocess.run(..., shell=True), mentre load.py continua a unire FILE_NAME a un percorso di configurazione senza alcuna normalizzazione. La versione 0.8.2, l'ultima release, non corregge nessuno dei due problemi — è stata pubblicata nel marzo 2025, e l'ultimo push nel repository risale al 21 gennaio 2026. Non è archiviato; semplicemente non sta più avanzando.

Il problema degli scanner

Né la segnalazione del vendor né quella di NVD riportano un punteggio CVSS; la gravità è indicata come sconosciuta. La maggior parte degli scanner di dipendenze è configurata con una soglia minima di gravità — alta e oltre, oppure media e oltre. Una voce senza punteggio non supera la soglia. In molti pipeline queste due segnalazioni non faranno emergere nulla, ed è questa la differenza pratica tra una vulnerabilità divulgata e una visibile.

Dove si trova il primitivo

Il percorso di command injection è all'interno dell'analisi del repository — la funzione che un agente chiama su una codebase fornita dall'utente. È esattamente la superficie verso cui un agente di coding autonomo punta input non fidati per progettazione.

Il punto strutturale

Le segnalazioni presuppongono un maintainer dall'altra parte. Quando un progetto da cui dipendono in molti smette di accettare commit, la disclosure produce un record pubblico permanente di una falla non correggibile, e l'onere si sposta interamente su chi lo ha integrato localmente — la maggior parte dei quali non vedrà mai l'avviso.