CVE-2026-48708 PUBLISHED

OliveTin has a Concurrent Template Parsing Race Condition which Leads to Cross-Request Command Contamination

Assigner: GitHub_M
Reserved: 22.05.2026 Published: 15.06.2026 Updated: 16.06.2026

OliveTin gives access to predefined shell commands from a web interface. In versions 3000.0.0 and prior, the template engine uses a single shared text/template.Template instance (tpl package-level variable in service/internal/tpl/templates.go) across all goroutines. Every action execution calls tpl.Parse(source) followed by t.Execute() on this shared instance with no synchronization. When two or more actions execute concurrently (which is the normal case — each ExecRequest spawns a goroutine), a race condition occurs: one goroutine's Parse overwrites the template tree while another goroutine is calling Execute, causing cross-user command contamination, Go runtime panic, and incorrect command execution. This issue has been resolved in version 3000.13.0.

Metrics

CVSS Vector: CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H
CVSS Score: 7.5

Product Status

Vendor OliveTin
Product OliveTin
Versions
  • Version < 3000.13.0 is affected

References

Problem Types

  • CWE-362: Concurrent Execution using Shared Resource with Improper Synchronization ('Race Condition') CWE
  • CWE-567: Unsynchronized Access to Shared Data in a Multithreaded Context CWE