Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate to rdiffweb
-
DeliveryCraft request path with %2e%2e sequence
-
ExploitBypass startswith() containment check
-
ExecutionOperation resolves onto sibling repository
-
ImpactUnintended browse/restore/delete of adjacent data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires an authenticated session (PR:L) and depends on the attacker inducing a user to act (UI:R). The specific, concrete preconditions from the description: (1) the request path must contain a percent-encoded traversal sequence (%2e%2e) hitting the browse, restore, history, or delete operation; (2) the target must be a SIBLING path whose directory name begins with the operated repository's path string (so the vulnerable startswith() prefix check passes); and (3) the user must already hold permissions on that sibling repository. Limiting factors: no cross-user privilege boundary is crossed (the user only reaches data they can already access), there is no confidentiality impact, and success hinges on the restrictive sibling-prefix naming condition plus the victim being misled - all of which substantially narrow real-world impact. |
| Impact | This is a genuinely low-priority issue despite being a path traversal (CWE-22), and the signals are internally consistent. The provided CVSS 3.1 vector (AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:L) scores only 4.6 (Medium): it requires an already-authenticated user (PR:L) AND user interaction/being misled (UI:R), with no confidentiality impact (C:N) and only limited integrity/availability impact (I:L/A:L). The description further constrains exploitation to a narrow precondition - the traversal only resolves to a *sibling* path whose name begins with the repository path, and the user must already hold permissions on that sibling - which is closer to AC:H than the AC:L stated in the input (noted as a divergence, not a confirmed error). No EPSS score, KEV listing, POC, or SSVC decision data was provided; there is no public exploit identified at time of analysis and no evidence of active exploitation. The practical effect is that an authenticated user can be misled into browsing/restoring/deleting adjacent backup data they already have rights to - an integrity/consistency bug more than a privilege-escalation or data-disclosure threat. Net: a real but low-severity defect, not an urgent patch. |
| Exploit ScenarioDerived | An authenticated rdiffweb user is induced to follow a crafted request path containing a percent-encoded traversal sequence (%2e%2e). Because the server validates containment with a string startswith() check rather than a filesystem boundary check, the browse/restore/history/delete operation resolves onto a sibling repository whose directory name shares the intended repository's prefix, causing the user to unintentionally view or delete data belonging to that other repository. No public exploit code is identified at time of analysis, and exploitation requires authentication plus user interaction. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 16, 2026
In ikus060/ikus-soft rdiffweb 7.1.1, the repository containment check relies on a string prefix comparison (startswith) instead of a true filesystem path-boundary check, so a percent-encoded traversal sequence (%2e%2e) in the request path lets the browse, restore, history, and delete operations resolve to a path outside the intended repository. The attack surface is narrow: the actor must already be an authenticated user with permissions on the target, the target must be a sibling directory whose name begins with the operated repository's path string, and the victim must be socially induced to issue the crafted request (CVSS 3.1 rating 4.6; our independent assessment is more conservative at 3.1 given AC:H). The realistic outcome is a user operating on - or deleting - data other than the repository being displayed; no confidentiality impact is involved because the user only reaches data they already have rights to. No public exploit code was identified at time of analysis, and there is no KEV entry.
RemediationAI
Upstream fix available (PR/commit); released patched version not independently confirmed - the corrective change is in GitLab commit 04b7096566811feb7d782e38560b44044fa91a29, referenced alongside work items 392, 393 and 394 at https://gitlab.com/ikus-soft/rdiffweb/-/work_items/392, /393 and /394, so upgrade rdiffweb to a build that includes that commit (or a release newer than 7.1.1) rather than relying on 7.1.1. If upgrading is not immediately possible, apply compensating controls that address the specific preconditions rather than generic advice: (1) eliminate the sibling-prefix naming condition by renaming repositories so no repository directory name begins with the full path string of another (the prefix collision is the sole reason the vulnerable startswith check passes - the trade-off is administrative churn and possible client/URL breakage); (2) tighten per-repository ACLs so no user holds write or delete rights on any repository whose name is a prefix-extension of another accessible repository, which directly neutralizes the delete/history impact at the cost of coarser sharing; and (3) restrict access to the rdiffweb instance to trusted networks or place it behind an authenticating reverse proxy to reduce the pool of authenticated users who could be induced to trigger the crafted URL. Because exploitation requires user interaction (UI:R), user awareness matters: instruct operators not to follow repository links from untrusted sources and to verify the repository name shown before confirming restore, history or delete actions. No vendor-released patch version string beyond the referenced commit was available in the supplied data, so do not assume a specific tagged release is fixed without verifying against the upstream changelog.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
rdiffweb is a Python/Flask web front end for rdiff-backup repositories, and the vulnerable logic sits in the request-handling path that maps a user-supplied repository identifier to an on-disk directory before dispatching to the browse, restore, history, and delete handlers. The root cause is CWE-22 (Improper Limitation of a Pathname to a Restricted Directory, i.e. path traversal), implemented here specifically as a containment check built on a string prefix comparison - the code effectively asks whether the resolved path starts with the repository path string, without normalizing and comparing path components or enforcing a directory boundary (e.g. via a realpath/commonpath check). Because %2e%2e decodes to '..' at a point where the prefix test still passes, the check can be satisfied by a sibling directory whose name literally begins with the repository path text (for example '/repos/project-backup' passing a check intended for '/repos/project'), and the operation then lands outside the intended repository. The CPE cpe:2.3:a:ikus-soft:rdiffweb:*:*:*:*:*:*:*:* indicates the affected package is the rdiffweb application itself, with 7.1.1 explicitly named in the description. Exploitation does not cross a privilege boundary: the traversal is constrained to paths the authenticated user already holds permissions on, which is why there is no confidentiality impact and only limited integrity/availability effect (the delete operation is the most consequential outcome).
Know when Rdiffweb gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:L
Network-facing web app (AV:N) but the required sibling-prefix naming precondition raises AC to H; authenticated user (PR:L) must be misled (UI:R); no disclosure (C:N), only limited data alteration/deletion (I:L/A:L).
Primary rating from Vendor (GitLab).
CVSS VectorVendor: GitLab
Lifecycle Timeline
1DescriptionCVE.org
Improper path containment check in ikus060 rdiffweb 7.1.1 allows an authenticated user to cause the browse, restore, history and delete operations to resolve to a path outside the repository being operated on, via a percent-encoded traversal sequence (%2e%2e) in the request path, because the containment check uses a string prefix comparison (startswith) instead of a filesystem path boundary check. The target must be a sibling path whose name begins with the repository path, and the user already hold permissions on it; the issue can mislead a user into operating on, or deleting, data other than the repository displayed
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
Improper Access Control in GitHub repository ikus060/rdiffweb prior to 2.5.5. Rated critical severity (CVSS 9.8), this v
Business Logic Errors in GitHub repository ikus060/rdiffweb prior to 2.5.5. Rated critical severity (CVSS 9.8), this vul
Improper Privilege Management in GitHub repository ikus060/rdiffweb prior to 2.5.2. Rated critical severity (CVSS 9.8),
Insufficient Session Expiration in GitHub repository ikus060/rdiffweb prior to 2.5.0. Rated critical severity (CVSS 9.8)
Allocation of Resources Without Limits or Throttling in GitHub repository ikus060/rdiffweb prior to 2.5.0a4. Rated criti
Session Fixation in GitHub repository ikus060/rdiffweb prior to 2.4.7. Rated critical severity (CVSS 9.8), this vulnerab
Allocation of Resources Without Limits or Throttling in GitHub repository ikus060/rdiffweb prior to 2.8.4. Rated high se
Cross-Site Request Forgery (CSRF) in GitHub repository ikus060/rdiffweb prior to 2.4.3. Rated high severity (CVSS 8.8),
Weak Password Requirements in GitHub repository ikus060/rdiffweb prior to 2.4.2. Rated high severity (CVSS 8.8), this vu
Improper Restriction of Rendered UI Layers or Frames in GitHub repository ikus060/rdiffweb prior to 2.4.1. Rated high se
Path Traversal in GitHub repository ikus060/rdiffweb prior to 2.4.10. Rated high severity (CVSS 7.5), this vulnerability
Allocation of Resources Without Limits or Throttling in GitHub repository ikus060/rdiffweb prior to 2.5.0a3. Rated high
EUVD-2026-102835
GHSA-75v3-2c25-pfq5
NVD
CVE.org
Vulnrichment
VulDB
Exploit-DB