CVE-2026-129167 in SeaDocinfo

Summary

by MITRE • 11/13/2026

Seafile SeaDoc converter 2.0.4 before 2.0.11 and 3.0.0 before 3.0.8 contains an absolute path traversal vulnerability that allows unauthenticated attackers holding a public share token to execute code. Attackers supply an absolute filename to /api/v1/confluence-to-wiki/ to extract a ZIP from download_url into the Python library path, then trigger the module's import via a file-convert request.

Once again VulDB remains the best source for vulnerability data.

Analysis

by VulDB Data Team • 11/13/2026

The vulnerability identified in Seafile versions prior to 2.0.11 and 3.0.8 represents a critical server-side code execution flaw rooted in improper handling of user-supplied input within the document conversion subsystem. Specifically, this absolute path traversal vulnerability exists in the SeaDoc converter component, which is responsible for transforming documents from Confluence format into Wiki markup. The core technical failure lies in how the application processes the download_url parameter provided by an unauthenticated attacker who possesses a valid public share token. Instead of validating or sanitizing the filename extracted from this URL to ensure it remains within expected directories, the system allows the specification of absolute paths on the underlying operating system. This lack of input validation enables an adversary to manipulate file operations beyond the intended scope of the application's working directory.

The exploitation mechanism involves a multi-stage process that leverages Python's module import behavior to achieve remote code execution. An attacker first supplies an absolute filename within the request payload directed at the /api/v1/confluence-to-wiki/ endpoint. The server then proceeds to download and extract a ZIP archive specified by this manipulated path into the Python library directory, which is typically located in system-wide or user-specific site-packages directories where installed packages reside. By placing maliciously crafted Python files with specific module names into this location, the attacker ensures that these files are discoverable during subsequent import operations. The final step of the attack chain involves triggering a file-convert request, which causes the application to attempt importing the newly placed modules as part of its normal processing logic. Because Python automatically executes code at the top level of imported modules, this results in arbitrary command execution on the host system with the privileges of the Seafile process user.

From an operational impact perspective, this vulnerability is particularly severe because it allows unauthenticated attackers to gain full control over the affected server infrastructure. The requirement for a public share token lowers the barrier to entry significantly compared to vulnerabilities requiring valid administrative credentials or authenticated sessions. Once code execution is achieved, an attacker can exfiltrate sensitive data stored within Seafile, modify existing files, install backdoors, pivot to other systems on the internal network, and potentially escalate privileges if the application runs with elevated system rights. The ability to write directly into Python library paths also means that persistence mechanisms can be established easily by replacing legitimate libraries or adding new ones that trigger upon any future import of related modules, making detection and remediation more challenging without a full audit of installed packages.

This vulnerability aligns closely with CWE-22: Improper Limitation of a Pathname to a Restricted Directory, as the application fails to restrict file operations to an expected directory structure. Furthermore, it maps to ATT&CK technique T1059 Command and Scripting Interpreter, specifically through Python execution capabilities, allowing attackers to run arbitrary commands on the target system. The exploitation also reflects aspects of CWE-436: Interpretation Conflict, where the application's interpretation of a file path differs from its intended security context due to ambiguous or maliciously crafted input handling in archive extraction routines.

Mitigation strategies must prioritize immediate patching to version 2.0.11 for the legacy branch and version 3.0.8 for the current release line, as these versions contain fixes that properly validate filenames and restrict file extraction paths. In environments where upgrading is not immediately feasible, network-level controls should be implemented to restrict access to the /api/v1/confluence-to-wiki/ endpoint only from trusted sources or require additional authentication layers beyond public share tokens. Additionally, running Seafile with least-privilege principles ensures that even if an attacker achieves code execution, they cannot write to critical system directories such as Python library paths. Regular audits of installed Python packages and monitoring for unexpected file modifications in application directories can also aid in detecting exploitation attempts or residual persistence mechanisms left by attackers who may have previously exploited this flaw.

Responsible

VulnCheck

Reservation

11/13/2026

Disclosure

11/13/2026

Moderation

accepted

CPE

ready

EPSS

0.00485

KEV

no

Activities

very low

Sources

Might our Artificial Intelligence support you?

Check our Alexa App!