Skip to main content

praktor EUVDEUVD-2026-114361

| CVE-2026-62331 HIGH
Path Traversal (CWE-22)
2026-10-30 security-advisories@github.com
8.2
CVSS 3.1 · Vendor: github
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Message bot over Telegram (no allowlist)
  2. Delivery
    Upload document with ../ traversal filename
  3. Exploit
    path.Join collapses traversal outside uploads/
  4. Execution
    Overwrite CLAUDE.md in agent workspace volume
  5. Persist
    Agent reads injected file on later run
  6. Impact
    Agent 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 telegram.allow_from: [] is interpreted as allow-all, so the only precondition is that an attacker can message the bot and send a document; the attacker must control the document filename and embed ../ traversal sequences that path.Join collapses. Exploitation is LIMITED to the persistent agent workspace volume (praktor-wk-<workspace>, mounted at /workspace/agent) - the demonstrated scope is NOT an unrestricted host-filesystem write. Impact is fully realized only when the Claude agent subsequently reads the planted/overwritten file (e.g. CLAUDE.md, skill, hook, or config), so the injection takes effect on a later agent run rather than instantly. The documented workaround that restricts realistic exposure is setting telegram.allow_from to trusted user IDs; the vendor states upgrading to v0.9.1 is the recommended (complete) fix.

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 (allow_from: [] = allow all) removes any authentication precondition, so in a default deployment any Telegram user who can reach the bot qualifies - PR:N is justified here. The vuln.today decision label is 'this_week', indicating prioritized but not emergency handling. No EPSS probability and no CISA KEV status were supplied, and there is no CISA KEV listing in the input, so this is NOT confirmed actively exploited. The exploitation signal is a private, vendor-reported end-to-end proof of concept (credited to the reporter) - it is not public exploit code, so weaponization is not established. The headline score of 8.2 is driven by high integrity impact (stored instruction injection into the agent's CLAUDE.md/skill/hook/config surface), which is a genuinely serious capability because it persists across agent runs; however, real-world risk is materially constrained by product prevalence (a niche, single-maintainer orchestration project) and by the fact that the write primitive is scoped to the persistent agent workspace volume, not the host filesystem. Net: a real and credible priority for anyone actually running praktor at or below 0.9.0 with a default allowlist, but more a targeted/opportunistic concern than a mass-exploitation threat given the small deployment footprint.

Exploit ScenarioDerived

An attacker messages a praktor bot running the default allow_from: [] (allow-all) configuration and uploads a Telegram document whose filename contains directory traversal (e.g. ../../../CLAUDE.md); path.Join collapses the ../ sequences so the file lands at the root of the persistent agent workspace instead of under uploads/. The attacker thereby overwrites CLAUDE.md or an agent instruction/skill/hook file that the Claude agent reads on later runs, turning a document upload into stored instruction injection against the agent's execution surface. The reporter provided a deployed end-to-end PoC privately to the vendor; no public exploit code is listed in the input.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.8% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

praktor < 0.9.1

Affected Packages

euvd praktor fix: 0.9.1

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

Vendor (github) PRIMARY 8.2 HIGH
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N
vuln.today AI 7.5 HIGH

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.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (github).

CVSS VectorVendor: github

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
High
Availability
None

Lifecycle Timeline

2
Patch available
Oct 30, 2026 - 21:18 EUVD
CVE Published
Oct 30, 2026 - 19:18 cve.org
HIGH 8.2

DescriptionCVE.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.

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

Why It Matters

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.

Business Impact: High
Compensating Controls

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

EPSS Score
0.8%
Top 44% exploitable
Prevalence
Rare
niche single-maintainer orchestration project, no meaningful enterprise footprint
Social Media
1
Sightings
Data Quality
3 sources
Confidence: Low

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.8%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

42
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +41
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

CVE-2019-10044 HIGH POC
8.8 Mar 25

Telegram Desktop before 1.5.12 on Windows, and the Telegram applications for Android, iOS, and Linux, is vulnerable to a

CVE-2026-107181 HIGH POC
8.6 Oct 07

One-click account takeover in Telegram Desktop before 7.2.9, where the Core::Sandbox inter-process communication layer f

CVE-2026-94488 HIGH POC
8.3 Sep 21

Telegram Desktop before 6.9.4 fails to escape inline-keyboard button text when a chat is exported to HTML, so attacker-c

CVE-2018-20436 HIGH POC
8.1 Dec 24

The "secret chat" feature in Telegram 4.9.1 for Android has a "side channel" in which Telegram servers send GET requests

CVE-2021-47793 HIGH POC
7.5 Jan 16

Telegram Desktop versions up to 2.9.2 is affected by allocation of resources without limits or throttling (CVSS 7.5).

CVE-2018-17231 HIGH POC
7.5 Sep 19

Telegram Desktop (aka tdesktop) 1.3.14 might allow attackers to cause a denial of service (assertion failure and applica

CVE-2021-31321 HIGH POC
7.1 May 18

Telegram Android <7.1.0 (2090), Telegram iOS <7.1, and Telegram macOS <7.1 are affected by a Stack Based Overflow in the

CVE-2021-31320 HIGH POC
7.1 May 18

Telegram Android <7.1.0 (2090), Telegram iOS <7.1, and Telegram macOS <7.1 are affected by a Heap Buffer Overflow in the

CVE-2018-17780 MEDIUM POC
6.5 Sep 29

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

CVE-2022-43363 MEDIUM POC
6.1 Dec 06

Telegram Web 15.3.1 allows XSS via a certain payload derived from a Target Corporation website. Rated medium severity (C

CVE-2021-40532 CRITICAL
9.8 Sep 06

Telegram Web K Alpha before 0.7.2 mishandles the characters in a document extension. Rated critical severity (CVSS 9.8),

CVE-2018-17613 CRITICAL
9.8 Sep 28

Telegram Desktop (aka tdesktop) 1.3.16 alpha, when "Use proxy" is enabled, sends credentials and application data in cle

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy