Read the docs
TI-2026-83332 Aliases CVE-2026-62331GHSA-48v2-6jcm-fc99

Path traversal in praktor Telegram uploads enables prompt injection

Priority MEDIUM 43CWE-22Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Impact type
—
Confidentiality · integrity · availability
Low · High · None
Fix status
Fixed

Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub.

Summary

praktor before 0.9.1 (mtzanidakis praktor, Go module github.com/mtzanidakis/praktor) joins the attacker-controlled document filename of Telegram uploads into a destination path without sanitization, and path.Join collapses parent-directory sequences. This path traversal (CWE-22) lets a remote Telegram user who can message the bot write files outside uploads/ in the persistent agent workspace. With allow_from set to an empty list, no authentication is needed, and planted or overwritten CLAUDE.md or instruction files then steer the Claude agent in later runs.

Written with Claude Haiku 5.5 from the sources below · 2026-11-03

Description from the CNA

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.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00778 56th percentileScored 2026-11-07
Fix Fixed praktor (mtzanidakis): 0.9.1github.com/mtzanidakis/praktor (Go): 0.9.1

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
Yes
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
mtzanidakispraktorbefore 0.9.10.9.1Patch availableCNA
—github.com/mtzanidakis/praktor (Go)before 0.9.10.9.1Patch availableGHSA-48v2-6jcm-fc99
  • praktor Vendormtzanidakis Affected before 0.9.1 Fixed in 0.9.1 Patch available CNA
  • github.com/mtzanidakis/praktor (Go) Vendor— Affected before 0.9.1 Fixed in 0.9.1 Patch available GHSA-48v2-6jcm-fc99

Remediation

Upgrade praktor to version 0.9.1, which fixes this issue for both the mtzanidakis praktor product and the Go module github.com/mtzanidakis/praktor.

Written with Claude Haiku 5.5 from the sources below · 2026-11-03

  • Fix · CNA praktor (mtzanidakis) Fixed in 0.9.1
  • Fix · GHSA-48v2-6jcm-fc99 github.com/mtzanidakis/praktor (Go) Fixed in 0.9.1 Advisory →

Timeline

  1. 2026-10-30 Threatist record created from CVE-2026-62331
  2. 2026-10-30 CISA SSVC decision points changed
  3. 2026-10-30 Priority changed: MEDIUM → LOW
  4. 2026-11-01 Priority changed: LOW → MEDIUM
  5. 2026-11-03 Alias added: GHSA-48v2-6jcm-fc99
  6. 2026-11-03 Fix available: Go/github.com/mtzanidakis/[email protected] · GHSA-48v2-6jcm-fc99
  7. 2026-11-03 CVSS score added · GHSA-48v2-6jcm-fc99
  8. 2026-11-03 Weakness changed · GHSA-48v2-6jcm-fc99
  9. 2026-11-03 6 new references · GHSA-48v2-6jcm-fc99

References

Sources