Miggo Logo

CVE-2025-48201:
The Backup Plus extension for TYPO3 (ns_backup) has a Predictable Resource Location

8.6

CVSS Score
3.1

Basic Information

EPSS Score
0.13702%
Published
5/21/2025
Updated
5/21/2025
KEV Status
No
Technology
TechnologyPHP

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
Package NameEcosystemVulnerable VersionsFirst Patched Version
nitsan/ns-backupcomposer< 13.0.113.0.1

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability (CVE-2025-48201) in ns_backup allows unauthenticated users to download backups and configuration files due to predictable resource locations. The provided commit 67b8102a19e8e516dc4228f5c42f9e4fba5046cb patches this vulnerability.

My analysis focused on identifying the functions whose original logic led to the creation of these predictable paths.

  1. NITSAN\NsBackup\Controller\BackupBaseController::generateBackup: This function is central to the backup creation process. The diff shows significant changes in how it determines storage paths (localStoragePath, jsonFolder) and, crucially, how it names JSON configuration files and log files. Previously, these paths and names were hardcoded or derived from predictable inputs (like backup type and timestamp) without randomization. The patch introduces a random string (substr(md5(uniqid(mt_rand(), true)), 0, 8)) for JSON and log file names, and makes the base storage path more configurable and checked via isPathPublic.
  2. NITSAN\NsBackup\Controller\BackupBaseController::getPhpbuBackup: This helper function, called by generateBackup, is responsible for generating the actual backup filenames (e.g., for SQL dumps, tar archives). The diff shows that filenames like $this->backupFile and $this->backupDownloadPath were previously constructed using the direct backup type and a formatted timestamp (e.g., backupType-YYYYMMDD-HHMM.ext.compression). The patch changes this to use md5($backupType) in the filename, significantly reducing predictability.

These two functions were directly responsible for creating the files in predictable locations with predictable names, which is the essence of the 'Predictable Resource Location' vulnerability. Other changes in the patch, such as input validation in other controllers or UI changes for download links, are mitigations or hardening measures built upon the core fix of making the paths non-predictable at the source of their creation.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

T** ns_***kup *xt*nsion t*rou** **.*.* *or TYPO* **s * Pr**i*t**l* R*sour** Lo**tion. T*is *llows *n un*ut**nti**t** r*mot* us*r to *ownlo** *r**t** ***kups *n* *on*i*ur*tion *il*s.

Reasoning

T** vuln*r**ility (*V*-****-*****) in ns_***kup *llows un*ut**nti**t** us*rs to *ownlo** ***kups *n* *on*i*ur*tion *il*s *u* to pr**i*t**l* r*sour** lo**tions. T** provi*** *ommit `****************************************` p*t***s t*is vuln*r**ility.