{"id":"CVE-2026-55168","summary":"Runtipi: Authenticated arbitrary file write via backup restore symlink planting","details":"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.","aliases":["GHSA-wcrf-g9p9-2wg7"],"modified":"2026-08-27T11:30:54.931034085Z","published":"2026-08-21T20:31:38.124Z","database_specific":{"cwe_ids":["CWE-59","CWE-61"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55168.json","cna_assigner":"GitHub_M"},"references":[{"type":"WEB","url":"https://github.com/runtipi/runtipi/releases/tag/v4.10.1"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55168.json"},{"type":"ADVISORY","url":"https://github.com/runtipi/runtipi/security/advisories/GHSA-wcrf-g9p9-2wg7"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-55168"},{"type":"FIX","url":"https://github.com/runtipi/runtipi/commit/df529a211b05f3a0007b209b6c337f8c1942619c"},{"type":"FIX","url":"https://github.com/runtipi/runtipi/pull/2606"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/runtipi/runtipi","events":[{"introduced":"0"},{"fixed":"df529a211b05f3a0007b209b6c337f8c1942619c"},{"fixed":"5734817389df55aafb9afd571e42e12ab7e647e0"}],"database_specific":{"extracted_events":[{"introduced":"0"},{"fixed":"4.10.1"}],"source":["AFFECTED_FIELD","REFERENCES"]}}],"versions":["v4.10.1-beta.2","v4.10.1-beta.1","v4.10.0-beta.1","v4.10.0","v4.9.3","v4.9.2-beta.1","v4.9.2","v4.9.1-beta.3","v4.9.1-beta.2","v4.9.1","v4.9.1-beta.1","v4.9.0","v4.9.0-beta.5","v4.9.0-beta.2","v4.8.2-beta.4","v4.8.2","v4.8.2-beta.3","v4.8.2-beta.2","v4.8.2-beta.1","v4.8.1-beta.1","v4.8.1","v4.8.0-beta.5","v4.8.0","v4.8.0-beta.4","v4.8.0-beta.3","v4.8.0-beta.2","v4.8.0-beta.1","v4.7.2","v4.7.2-beta.1","v4.7.1-beta.1","v4.7.1","nightly","v4.7.0","v4.7.0-beta.3","v4.7.0-beta.2","v4.7.0-beta.1","v4.7.0-alpha.2","v4.7.0-alpha.1","v4.6.5","v4.6.4","v4.6.3-beta.2","v4.6.3","v4.6.3-beta.1","v4.6.2","v4.6.1","v4.6.0","v4.6.0-beta.2","e2e","v4.6.0-beta.1","v4.5.5","v4.5.4","v4.5.3","v4.5.2-alpha.1","v4.5.2","v4.5.1","v4.5.0","v4.5.0-beta.7","v4.5.0-beta.6","v4.5.0-beta.5","v4.5.0-beta.4","v4.5.0-beta.3","v4.5.0-beta.2","v4.5.0-beta.1","v4.4.0","v4.4.0-beta.7","v4.4.0-beta.6","v4.4.0-beta.4","v4.4.0-beta.3","v4.4.0-beta.2","v4.4.0-beta.1","v4.4.0-alpha.1","v4.3.0-beta.2","v4.3.0","v4.3.0-beta.1","v4.2.1","v4.2.0-beta.4","v4.2.0","v4.2.0-beta.3","v4.2.0-beta.2","v4.2.0-beta.1","v4.1.2-alpha.1","v4.1.1-alpha.3","v4.1.1","v4.1.1-alpha.2","v4.1.1-alpha.1","v4.1.0","v4.1.0-beta.2","v4.1.0-beta.1","v4.1.0-alpha.2","v4.1.0-alpha.1","v4.0.3-beta.1","v4.0.3","v4.0.2","v4.0.1","v4.0.0-beta.13","v4.0.0-beta.12","v4.0.0","v4.0.0-beta.11","v4.0.0-beta.10","v4.0.0-beta.9","v3.10.0-beta.9","v4.0.0-beta.8","v4.0.0-beta.7","v4.0.0-beta.6","v4.0.0-beta.5","v4.0.0-beta.4","v4.0.0-beta.3","v4.0.0-beta.2","v4.0.0-beta.1","v4.0.0-alpha.2","v4.0.0-alpha.1","v3.9.5-beta.1","v3.10.0-beta.4","v3.10.0-beta.3","v3.10.0-beta.2","v3.10.0-beta.1","v3.10.0","v3.9.4-beta.5","v3.9.4-beta.4","v3.9.4-beta.3","v3.9.4-beta.2","v3.9.4-beta.1","v3.9.4","v3.9.3-beta.3","v3.9.3-beta.2","v3.9.3-beta.1","v3.9.3","v3.9.2-beta.2","v3.9.2-beta.1","v3.9.2","v3.9.1","v3.9.0-beta.4","v3.9.0-beta.3","v3.9.0-beta.2","v3.9.0-beta.1","v3.9.0","v3.9.0-alpha.2","v3.9.0-alpha.1","v3.8.4-beta.1","v3.8.4-alpha.3","v3.8.4-alpha.2","v3.8.4-alpha.1","v3.8.4","v3.8.3-beta.6","v3.8.3-beta.5","v3.8.3-beta.4","v3.8.3-beta.3","v3.8.3-beta.2","v3.8.3-beta.1","v3.8.3","v3.8.3-alpha.2","v3.8.3-alpha.1","v3.8.2-alpha.1","v3.8.2","v3.8.1","v3.8.0-beta.2","v3.8.0","v3.8.0-beta.1","v3.7.5","v3.7.4","v3.7.3-beta.1","v3.7.3","v3.7.2-beta.1","v3.7.2","v3.7.1","v3.7.1-beta.3","v3.7.1-beta.2","v3.7.1-beta.1","v3.7.0","v3.6.4","v3.7.0-beta.9","v3.7.0-beta.8","v3.7.0-beta.7","v3.7.0-beta.10","v3.7.0-beta.6","v3.7.0-beta.5","v3.7.0-beta.4","v3.7.0-beta.3","v3.7.0-beta.2","v3.7.0-beta.1","v3.7.0-alpha.9","v3.7.0-alpha.8","v3.7.0-alpha.7","v3.7.0-alpha.6","v3.7.0-alpha.5","v3.7.0-alpha.4","v3.7.0-alpha.3","v3.7.0-alpha.2","v3.7.0-alpha.1","v3.6.3","v3.6.2","v3.6.1","v3.6.0","v3.5.3","v3.5.2","v3.5.1","v3.5.0-beta.2","v3.5.0","v3.4.1","v3.4.0","v3.3.2","v3.3.0","v3.2.0","v3.1.3","v3.1.2","v3.1.1","v3.1.0","v3.0.3","v3.0.2","v3.0.1","v3.0.0","v2.5.0","v2.4.0","v2.3.1","v2.3.0","v2.2.1","v2.2.0","v2.1.0","v2.0.7","v2.0.6","v2.0.5","v2.0.4","v2.0.3","v2.0.2","v2.0.1","v2.0.0-beta.1","v2.0.0","v1.6.0","v1.5.2","v1.5.1","v1.5.0","v1.4.2","v1.4.1","v1.4.0","v1.3.0","v1.2.1","v1.2.0","v1.1.2","v1.1.1","v1.1.0","v1.0.1","v1.0.0","v0.8.1","v0.8.0","v0.7.4","v0.7.3","v0.7.2","v0.7.1","v0.7.0","v0.6.1","v0.6.0","v0.5.0","v0.4.2","v0.4.1","v0.4.0","v0.3.1","v0.3.0","v0.2.1","v0.2.0","v0.1.5","v0.1.4","v0.1.3","v0.1.2","v0.1.1","v0.1.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-55168.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:H"}]}