Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessMessage bot over Telegram (no allowlist)
-
DeliveryUpload document with ../ traversal filename
-
Exploitpath.Join collapses traversal outside uploads/
-
ExecutionOverwrite CLAUDE.md in agent workspace volume
-
PersistAgent reads injected file on later run
-
ImpactAgent executes attacker-planted instructions
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 | No authentication is required in the default configuration because |
| Impact | The provided CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:N) describes a remotely reachable, low-complexity flaw needing no user interaction, and the advisory confirms the default configuration ( |
| Exploit ScenarioDerived | An attacker messages a praktor bot running the default |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 30, 2026
Path traversal in praktor through v0.9.0 lets any Telegram user who can message the bot write files outside the intended uploads/ directory inside an agent's persistent workspace volume. Because the default configuration (telegram.allow_from: []) accepts all senders, no authentication or prior privilege is required: the attacker controls the uploaded document filename and can plant or overwrite CLAUDE.md, instruction, skill, hook, or configuration files that the Claude Code agent reads on later runs, yielding a stored instruction injection whose assessed impact is integrity-only (C:N/I:H/A:N). The issue is fixed in v0.9.1 via PR #228; no public exploit code was identified at time of analysis, although the reporter supplied the maintainers a private end-to-end proof of concept against the real container.Manager along with fix verification.
RemediationAI
Vendor-released patch: upgrade to praktor v0.9.1, which contains PR #228 (https://github.com/mtzanidakis/praktor/pull/228) and commit c3731eeda01c0b3ec1dbd13cccd5a147c3182141 (https://github.com/mtzanidakis/praktor/commit/c3731eeda01c0b3ec1dbd13cccd5a147c3182141); the full advisory is at https://github.com/mtzanidakis/praktor/security/advisories/GHSA-48v2-6jcm-fc99. The vendor states that upgrading to v0.9.1 is the recommended and complete fix, since it both strips directory components from uploaded filenames with path.Base() and hardens WriteVolumeBytes to reject any path escaping /vol. The documented workaround, which limits who can reach the vulnerable upload path at all, is to restrict telegram.allow_from to trusted Telegram user IDs instead of leaving it empty (allow-all); this only reduces exposure and does not fix the underlying path handling, so any sender who remains allowlisted can still attempt the traversal until the upgrade is applied. After upgrading, review the affected agent workspaces for unexpected or modified CLAUDE.md, instruction, skill, hook, or configuration files written outside uploads/ that may have been planted by earlier uploads.
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
praktor is a Go multi-agent Claude Code orchestrator that relays Telegram input to agents running in isolated Docker containers with a Mission Control web UI. Both upload handlers in internal/telegram/bot.go (processMediaGroup and processMessage) built their destination path with fmt.Sprintf("uploads/%d_%s", timestamp, attachment.Name), concatenating the Telegram-supplied document filename directly, and then handed that string to path.Join, which cleans the path and collapses "../" segments before WriteVolumeBytes wrote into the workspace volume. This is classic CWE-22 path traversal: the attacker-controlled filename is treated as a trusted relative path component. The traversal is confined to the Docker volume praktor-wk-<workspace>, mounted at /workspace/agent - the demonstrated write scope is the persistent agent workspace, not an unrestricted host filesystem write. The trigger depends on an attacker-crafted filename containing directory separators and parent references; the file content and any resulting influence on the agent are only realized when the Claude agent subsequently reads the planted or overwritten instruction, skill, hook, or config file, so the injection takes effect on a later run rather than instantly. The fix is defense in depth: path.Base() is applied to the attacker-controlled filename at both upload sites, and WriteVolumeBytes now rejects any joined path that escapes /vol, protecting future callers.
Know when Telegram 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:N/UI:N/S:U/C:L/I:H/A:N
Default allow-all makes it remote unauthenticated (AV:N/AC:L/PR:N/UI:N); the primitive is a workspace-scoped arbitrary write giving high integrity (I:H) with no direct read (C:N) or availability (A:N) impact.
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
2DescriptionCVE.org
praktor is a multi-agent Claude Code orchestrator with Telegram input and output, Docker isolation, and a Mission Control UI. Prior to 0.9.1, both Telegram upload sites in internal/telegram/bot.go concatenate the attacker-controlled document filename into a destination path without sanitization, and path.Join collapses parent-directory traversal. A remote Telegram user who can message the bot can therefore write outside uploads/ within the persistent agent workspace mounted at /workspace/agent. Because allow_from: [] permits all senders by default, no prior authentication or privilege is required in that configuration. The attacker can plant or overwrite CLAUDE.md, instruction, skill, hook, or configuration files that the Claude agent reads and operates on across later runs, turning a document upload into stored instruction injection. The demonstrated arbitrary-write scope is the persistent agent workspace volume, not an unrestricted host-filesystem write. This issue is fixed in version 0.9.1.
Articles & Coverage 1
Technical POC Analysis
CWE-22 (Improper Limitation of a Pathname to a Restricted Directory, "Path Traversal").
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
CVE-2026-62331 exposes praktor deployments up to v0.9.0 to path traversal that allows any Telegram user able to message the bot to write files outside the intended uploads directory. Because the default configuration accepts all senders, unauthenticated outsiders can plant or overwrite agent instruction and configuration files, enabling stored instruction injection that undermines the integrity of AI agent behavior. Leadership should care because this is an integrity compromise of an AI agent with persistent workspace access, and any team running praktor on default settings is exposed to untrusted external parties.
No vendor-released patch identified at time of analysis for versions through v0.9.0; however, v0.9.1 fixes the issue. Interim mitigation: lock down telegram.allow_from to a strict allowlist of trusted senders (default empty list accepts all senders), or disable the Telegram integration until upgraded, and monitor agent workspace volumes for unexpected instruction, skill, hook, or configuration files.
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.
Telegram Desktop before 1.5.12 on Windows, and the Telegram applications for Android, iOS, and Linux, is vulnerable to a
One-click account takeover in Telegram Desktop before 7.2.9, where the Core::Sandbox inter-process communication layer f
Telegram Desktop before 6.9.4 fails to escape inline-keyboard button text when a chat is exported to HTML, so attacker-c
The "secret chat" feature in Telegram 4.9.1 for Android has a "side channel" in which Telegram servers send GET requests
Telegram Desktop versions up to 2.9.2 is affected by allocation of resources without limits or throttling (CVSS 7.5).
Telegram Desktop (aka tdesktop) 1.3.14 might allow attackers to cause a denial of service (assertion failure and applica
Telegram Android <7.1.0 (2090), Telegram iOS <7.1, and Telegram macOS <7.1 are affected by a Stack Based Overflow in the
Telegram Android <7.1.0 (2090), Telegram iOS <7.1, and Telegram macOS <7.1 are affected by a Heap Buffer Overflow in the
Telegram Desktop (aka tdesktop) 1.3.14, and Telegram 3.3.0.0 WP8.1 on Windows, leaks end-user public and private IP addr
Telegram Web 15.3.1 allows XSS via a certain payload derived from a Target Corporation website. Rated medium severity (C
Telegram Web K Alpha before 0.7.2 mishandles the characters in a document extension. Rated critical severity (CVSS 9.8),
Telegram Desktop (aka tdesktop) 1.3.16 alpha, when "Use proxy" is enabled, sends credentials and application data in cle
EUVD-2026-114361
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB