Skip to content
Heist/ feed
Back to feed
High

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

Type: advisorySources: OSV

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.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-48708
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 08:37 UTC · Revision 1

Source evidence

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

core-osv · Original source

Published 15 Jun 2026, 19:59 UTC

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.

osv:CVE-2026-48708
Complete source record
{
  "id": "bd11824e58f887f2d0c4d7eb90e31b668442e4217ac862d2f0f954fc2473e848",
  "url": "https://osv.dev/vulnerability/CVE-2026-48708",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "OliveTin has a Concurrent Template Parsing Race Condition which Leads to Cross-Request Command Contamination",
    "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.",
    "evidence": "osv:CVE-2026-48708",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-48708",
      "aliases": [
        "CVE-2026-48708",
        "GHSA-7fq5-7wr8-rjwj",
        "GO-2026-5216"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/olivetin/olivetin",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "8bf52fbea38212e269cbe82f596616b8625a562b"
                },
                {
                  "fixed": "d74da9314005954dd49fa20dabf272247bc76519"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "3000.13.0"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "d74da9314005954dd49fa20dabf272247bc76519"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "8bf52fbea38212e269cbe82f596616b8625a562b"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "3000.13.0"
                  }
                ]
              }
            }
          ],
          "versions": [
            "3000.11.1",
            "3000.12.0",
            "3000.11.4",
            "3000.11.3",
            "3000.11.2",
            "3000.11.0",
            "3000.10.2",
            "3000.10.1",
            "3000.10.0",
            "3000.9.4",
            "3000.9.1",
            "3000.9.0",
            "3000.8.0",
            "3000.7.0",
            "3000.6.0",
            "3000.5.0",
            "3000.4.0",
            "3000.3.2",
            "3000.3.1",
            "3000.3.0",
            "3000.2.1",
            "3000.2.0",
            "3000.1.2",
            "3000.1.1",
            "3000.1.0",
            "3000.0.2",
            "3000.0.1",
            "3000.0.0",
            "2025.7.19",
            "2025.7.13",
            "2025.6.22",
            "2025.6.6",
            "2025.6.1",
            "2025.5.26",
            "2025.4.22",
            "2025.4.21",
            "2025.4.14",
            "2025.4.8",
            "2025.3.28",
            "2025.3.23",
            "2025.2.21",
            "2025.2.19",
            "2024.12.11",
            "2024.11.24",
            "2024.11.18",
            "2024.11.09",
            "2024.11.02",
            "2024.10.27",
            "2024.10.26",
            "2024.10.18",
            "2024.10.17",
            "2024.10.14",
            "2024.10.02",
            "2024.10.01",
            "2024.09.16",
            "2024.09.11",
            "2024.09.10",
            "2024.09.02",
            "2024.08.31",
            "2024.08.25",
            "2024.08.14",
            "2024.07.153",
            "2024.07.16",
            "2024.07.152",
            "2024.07.15",
            "2024.07.13",
            "2024.07.07",
            "2024.07.06",
            "2024.07.03",
            "2024.06.04",
            "2024.06.02",
            "2024.06.01",
            "2024.05.51",
            "2024.05.31",
            "2024.05.27",
            "2024.05.24",
            "2024.05.13",
            "2024.04.28",
            "2024.04.261",
            "2024.04.26",
            "2024.04.021",
            "2024.04.20",
            "2024.04.18",
            "2024.04.14",
            "2024.04.11",
            "2024.04.09",
            "2024.03.24",
            "2024.03.081",
            "2024.03.08",
            "2024.03.06",
            "2024.03.05",
            "2024.03.01",
            "2024.02.28",
            "2024.02.27",
            "2024.02.01",
            "2023.12.21",
            "2023.12.20",
            "2023.12.17",
            "2023.12.1",
            "2023.10.25",
            "2023.10.24",
            "2023.10.12",
            "2023.10.09",
            "2023.03.25",
            "2023.03.24-4",
            "2023.03.24-3",
            "2023.03.24-2",
            "2023.03.24",
            "2023.03.22",
            "2023.02.16",
            "2022.11.14",
            "2022.11.11",
            "2022-10-19",
            "2022-04-07",
            "2022-01-06",
            "2021-11-19",
            "2021-11-17-2",
            "2021-11-17",
            "2021-11-02.alpha1-task-arguments",
            "2021-07-19",
            "2021-07-16",
            "2021-05-28",
            "2021-05-25",
            "2021-05-24.f44",
            "2021-05-19.28"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-48708.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:27.253411018Z",
      "provider": "osv",
      "references": [
        "https://github.com/OliveTin/OliveTin/releases/tag/3000.13.0",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/48xxx/CVE-2026-48708.json",
        "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"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-362",
          "CWE-567"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/48xxx/CVE-2026-48708.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-48708",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 493861,
  "published_at": "2026-06-15T19:59:27.859+00:00"
}