OliveTin has a Concurrent Template Parsing Race Condition which Leads to Cross-Request Command Contamination
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- High
- Impact type
- —
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub.
Summary
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| OliveTin | OliveTin | before 3000.13.0 | 3000.13.0 | Patch available | CNA |
| — | github.com/OliveTin/OliveTin (Go) | before 0.0.0-20260521225117-d74da9314005 | 0.0.0-20260521225117-d74da9314005 | Patch available | GHSA-7fq5-7wr8-rjwj |
- OliveTin VendorOliveTin Affected before 3000.13.0 Fixed in 3000.13.0 Patch available CNA
- github.com/OliveTin/OliveTin (Go) Vendor— Affected before 0.0.0-20260521225117-d74da9314005 Fixed in 0.0.0-20260521225117-d74da9314005 Patch available GHSA-7fq5-7wr8-rjwj
Remediation
- Fix · CNA OliveTin (OliveTin) Fixed in 3000.13.0
- Fix · GHSA-7fq5-7wr8-rjwj github.com/OliveTin/OliveTin (Go) Fixed in 0.0.0-20260521225117-d74da9314005 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-48708
- 2026-10-03 Alias added: GHSA-7fq5-7wr8-rjwj
References
More OliveTin vulnerabilities
- TI-2026-23456 OliveTin: JWT Audience Validation Bypass in Local Key and HMAC Modes CVSS 3.1HIGH 8.8
- TI-2026-22008 OS command injection in OliveTin CVSS 3.1CRITICAL 10.0
- TI-2026-47717 OliveTin: Unauthenticated DoS via OAuth2 State Memory Exhaustion (Unbounded Map Growth) CVSS 3.1HIGH 7.5
- TI-2026-22985 OliveTin: Unauthenticated Action Termination via KillAction When Guests Must Login CVSS 3.1HIGH 7.5
- TI-2026-22984 OliveTin: Unauthenticated DoS via concurrent map writes in OAuth2 state handling CVSS 3.1HIGH 7.5
- TI-2026-22627 OliveTin: Unauthenticated Denial of Service via Memory Exhaustion in PasswordHash API Endpoint CVSS 3.1HIGH 7.5
Sources
- CVE-2026-48708 · CVE Program
- CVE-2026-48708 · NVD
- FIRST EPSS
- GHSA-7fq5-7wr8-rjwj · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences