CVE-2026-48708
OliveTin has a Concurrent Template Parsing Race Condition which Leads to Cross-Request Command Contamination
Impact
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.
Affected packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| go | github.com/OliveTin/OliveTin | < 0.0.0-20260521225117-d74da9314005- | 0.0.0-20260521225117-d74da9314005 |
Weakness classification
References
- NVD record
- CVE.org record
- GitHub advisory
- https://github.com/advisories/GHSA-7fq5-7wr8-rjwj
- https://github.com/OliveTin/OliveTin/security/advisories/GHSA-7fq5-7wr8-rjwj
- https://nvd.nist.gov/vuln/detail/CVE-2026-48708
- https://github.com/OliveTin/OliveTin/commit/d74da9314005954dd49fa20dabf272247bc76519
- https://github.com/OliveTin/OliveTin/releases/tag/3000.13.0