OliveTin's unsafe parsing of UniqueTrackingId can be used to write files
OliveTin gives access to predefined shell commands from a web interface. Prior to 3000.11.2, when the saveLogs feature is enabled, OliveTin persists execution log entries to disk. The filename used for these log files is constructed in part from the user-supplied UniqueTrackingId field in the StartAction API request. This value is not validated or sanitized before being used in a file path, allowing an attacker to use directory traversal sequences (e.g., ../../../) to write files to arbitrary locations on the filesystem. This vulnerability is fixed in 3000.11.2.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-31817
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 17:59 UTC · Revision 1
Source evidence
OliveTin's unsafe parsing of UniqueTrackingId can be used to write files
core-osv · Original sourcePublished 10 Mar 2026, 21:08 UTC
OliveTin gives access to predefined shell commands from a web interface. Prior to 3000.11.2, when the saveLogs feature is enabled, OliveTin persists execution log entries to disk. The filename used for these log files is constructed in part from the user-supplied UniqueTrackingId field in the StartAction API request. This value is not validated or sanitized before being used in a file path, allowing an attacker to use directory traversal sequences (e.g., ../../../) to write files to arbitrary locations on the filesystem. This vulnerability is fixed in 3000.11.2.
osv:CVE-2026-31817
Complete source record
{
"id": "773b8d916821e916d18c2996553fc149a14950fcda99089158a8fc082803f3b6",
"url": "https://osv.dev/vulnerability/CVE-2026-31817",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "OliveTin's unsafe parsing of UniqueTrackingId can be used to write files",
"summary": "OliveTin gives access to predefined shell commands from a web interface. Prior to 3000.11.2, when the saveLogs feature is enabled, OliveTin persists execution log entries to disk. The filename used for these log files is constructed in part from the user-supplied UniqueTrackingId field in the StartAction API request. This value is not validated or sanitized before being used in a file path, allowing an attacker to use directory traversal sequences (e.g., ../../../) to write files to arbitrary locations on the filesystem. This vulnerability is fixed in 3000.11.2.",
"evidence": "osv:CVE-2026-31817",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2026-31817",
"aliases": [
"CVE-2026-31817",
"GHSA-364q-w7vh-vhpc",
"GO-2026-4670"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:L"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/olivetin/olivetin",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "b03af0e2eca3d564abd5604868069f94dc798de0"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "3000.11.2"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"cpe": "cpe:2.3:a:olivetin:olivetin:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "3000.11.2"
}
],
"source": "CPE_RANGE"
}
]
}
}
],
"versions": [
"3000.11.1",
"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-31817.json"
}
}
],
"modified": "2026-10-28T02:30:30.928345366Z",
"provider": "osv",
"references": [
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/31xxx/CVE-2026-31817.json",
"https://github.com/OliveTin/OliveTin/security/advisories/GHSA-364q-w7vh-vhpc",
"https://nvd.nist.gov/vuln/detail/CVE-2026-31817"
],
"provider_metadata": {
"cwe_ids": [
"CWE-22"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/31xxx/CVE-2026-31817.json"
}
},
"related_cves": [
{
"value": "CVE-2026-31817",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 498099,
"published_at": "2026-03-10T21:08:53.873+00:00"
}