Fledge's backup-restore upload handler, uploadbackup() (python/fledge/services/core/api/backuprestore.py), takes the first extracted tar member's filename (tarfilenames[0]) and builds a shell command via string formatting: cmd = "cp {} {}".format(source, backup_path); ret_code = os.system(cmd). The only pre-check on the filename is a prefix/suffix match (startswith(backupprefix), endswith(validextensions)), which a name such as fledge_backup_$(id>/tmp/pwn).db satisfies while still injecting a shell command substitution. Because os.system() invokes a shell and no quoting (shlex.quote, list-form subprocess) is applied, an admin uploading a crafted backup archive achieves arbitrary OS command execution.
{
"cna_assigner": "TuranSec",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/71xxx/CVE-2026-71284.json",
"cwe_ids": [
"CWE-78"
]
}