Runtipi: Authenticated arbitrary file write via backup restore symlink planting
Key facts
- Attack vector
- Network
- Privileges required
- High
- User interaction
- None
- Attack complexity
- Low
- Impact type
- —
- Confidentiality · integrity · availability
- None · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA.
Summary
Runtipi is a personal homeserver orchestrator. In 4.10.0 and earlier, Runtipi accepts symbolic links from an attacker-controlled backup archive and copies them into live application paths during the backup restore flow. An authenticated attacker can plant user-config/app.env as a symlink to an arbitrary reachable path and then send PUT /api/user-config/demoapp3:_user with attacker-controlled appEnv content. FilesystemService.writeTextFile() follows the planted link, allowing content to be written outside the intended restore and user-config directory boundary with Runtipi process permissions. This issue is fixed in version 4.10.1.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
Remediation
- Fix · CNA runtipi (runtipi) Fixed in 4.10.1
Timeline
- 2026-10-02 Threatist record created from CVE-2026-55168
References
More runtipi vulnerabilities
- TI-2026-24433 Runtipi unauthenticated /api/auth/reset-password allows operator account takeover during active reset window CVSS 3.1CRITICAL 9.8
- TI-2026-25221 Runtipi has a TOTP two-factor authentication bypass via unrestricted brute-force on `/api/auth/verify-totp` CVSS 3.1HIGH 8.8
- TI-2026-19447 Runtipi is Vulnerable to Authenticated Arbitrary Remote Code Execution CVSS 3.1HIGH 8.8
- TI-2026-34857 Runtipi: Unauthenticated arbitrary file read through app-store logo symlinks CVSS 3.1MEDIUM 6.5
- TI-2026-20279 Runtipi vulnerable to unauthenticated docker-compose.yml Overwrite via Path Traversal CVSS 3.1HIGH 8.8
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences