
CVE-2024-51442 write up et fichier de configuration d'exemple
CVE-2024-51442 est une vulnérabilité d'injection de commandes dans minidlna/Readyshare version <= 1.3.3. Cette vulnérabilité peut être exploitée en exécutant minidlnad avec un paramètre db_dir spécialement conçu utilisé dans minidlna.conf.
La vulnérabilité existe à la fois dans la fonctionnalité rescan de la fonction check_db
minidlna.c
rescan:
CLEARFLAG(RESCAN_MASK);
if (ret < 0)
DPRINTF(E_WARN, L_GENERAL, "Creating new database at %s/files.db\n", db_path);
else if (ret == 1)
DPRINTF(E_WARN, L_GENERAL, "New media_dir detected; rebuilding...\n");
else if (ret == 2)
DPRINTF(E_WARN, L_GENERAL, "Removed media_dir detected; rebuilding...\n");
else
DPRINTF(E_WARN, L_GENERAL, "Database version mismatch (%d => %d); need to recreate...\n",
ret, DB_VERSION);
sqlite3_close(db);
snprintf(cmd, sizeof(cmd), "rm -rf %s/files.db %s/art_cache", db_path, db_path);
if (system(cmd) != 0)
DPRINTF(E_FATAL, L_GENERAL, "Failed to clean old file cache! Exiting...\n");
et lorsque -R est passé comme paramètre optionnel en ligne de commande :
minidlna.c
case 'R':
snprintf(buf, sizeof(buf), "rm -rf %s/files.db %s/art_cache", db_path, db_path);
if (system(buf) != 0)
DPRINTF(E_FATAL, L_GENERAL, "Failed to clean old file cache %s. EXITING\n", db_path);
break;
Le code ci-dessus exécutera "rm -rf %s/files.db %s/art_cache" avec db_path comme paramètre de la chaîne de format. db_path est récupéré à partir du fichier de configuration lorsqu'il est traité par le code dans options.c.
Cette vulnérabilité peut être exploitée en utilisant l'exemple minidlna.conf présent dans ce dépôt comme fichier de configuration. Cela ouvrira une fenêtre du système de fichiers via xdg-open à titre de preuve de concept.
minidlnad -d -f minidlna.conf