Skip to content
Heist/ feed
Back to feed
High

Tautulli: Path traversal / arbitrary file write via unsanitized upload filename in import_config and import_database

Type: advisorySources: OSV

Tautulli is a Python based monitoring and tracking tool for Plex Media Server. Prior to 2.17.2, the import_config handler and the database_file branch of import_database in plexpy/webserve.py join the attacker-controlled config_file.filename or database_file.filename directly to CACHE_DIR without basename reduction or a containment check. An administrator or caller with the instance API key can submit a multipart filename containing parent-directory segments, causing the upload to be created or overwritten outside CACHE_DIR before file-content validation runs. The write is limited to paths permitted to the Tautulli process, but it can enable configuration tampering, service disruption, or code execution. This issue is fixed in version 2.17.2.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-52835
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 04:59 UTC · Revision 1

Source evidence

Tautulli: Path traversal / arbitrary file write via unsanitized upload filename in import_config and import_database

core-osv · Original source

Published 21 Sept 2026, 19:06 UTC

Tautulli is a Python based monitoring and tracking tool for Plex Media Server. Prior to 2.17.2, the import_config handler and the database_file branch of import_database in plexpy/webserve.py join the attacker-controlled config_file.filename or database_file.filename directly to CACHE_DIR without basename reduction or a containment check. An administrator or caller with the instance API key can submit a multipart filename containing parent-directory segments, causing the upload to be created or overwritten outside CACHE_DIR before file-content validation runs. The write is limited to paths permitted to the Tautulli process, but it can enable configuration tampering, service disruption, or code execution. This issue is fixed in version 2.17.2.

osv:CVE-2026-52835
Complete source record
{
  "id": "d7b9c7615898345678a6d106308d86a5a0cbe782928ba5753891189d0ae8ec6d",
  "url": "https://osv.dev/vulnerability/CVE-2026-52835",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Tautulli: Path traversal / arbitrary file write via unsanitized upload filename in import_config and import_database",
    "summary": "Tautulli is a Python based monitoring and tracking tool for Plex Media Server. Prior to 2.17.2, the import_config handler and the database_file branch of import_database in plexpy/webserve.py join the attacker-controlled config_file.filename or database_file.filename directly to CACHE_DIR without basename reduction or a containment check. An administrator or caller with the instance API key can submit a multipart filename containing parent-directory segments, causing the upload to be created or overwritten outside CACHE_DIR before file-content validation runs. The write is limited to paths permitted to the Tautulli process, but it can enable configuration tampering, service disruption, or code execution. This issue is fixed in version 2.17.2.",
    "evidence": "osv:CVE-2026-52835",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-52835",
      "aliases": [
        "CVE-2026-52835",
        "GHSA-8ww5-pp25-3jm8"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/tautulli/tautulli",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "c7153deb6e3017b8dda46c8448fe548a61c5a47a"
                },
                {
                  "fixed": "8c7c1a5ab09a6cca00aec995df07ce24680e7f31"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "2.17.2"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "8c7c1a5ab09a6cca00aec995df07ce24680e7f31"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "c7153deb6e3017b8dda46c8448fe548a61c5a47a"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "v2.17.2"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v2.17.1",
            "v2.17.0",
            "v2.16.1",
            "v2.16.0",
            "v2.15.3",
            "v2.15.2",
            "v2.15.1",
            "v2.15.0",
            "v2.14.6",
            "v2.14.5",
            "v2.14.4",
            "v2.14.3",
            "v2.14.2",
            "v2.14.1-beta",
            "v2.14.0-beta",
            "v2.13.4",
            "v2.13.3",
            "v2.13.2",
            "v2.13.1",
            "v2.13.0",
            "v2.12.5",
            "v2.12.4",
            "v2.12.3",
            "v2.12.2",
            "v2.12.1",
            "v2.12.0",
            "v2.12.0-beta",
            "v2.11.1",
            "v2.11.0",
            "v2.10.5",
            "v2.10.4",
            "v2.10.3",
            "v2.10.2",
            "v2.10.1",
            "v2.10.0",
            "v2.9.7",
            "v2.9.6",
            "v2.9.5",
            "v2.9.4",
            "v2.9.3",
            "v2.9.2",
            "v2.9.1",
            "v2.9.0",
            "v2.9.0-beta",
            "v2.8.1",
            "v2.8.0",
            "v2.8.0-beta",
            "v2.7.7",
            "v2.7.6",
            "v2.7.5",
            "v2.7.4",
            "v2.7.3",
            "v2.7.2",
            "v2.7.1",
            "v2.7.0",
            "v2.7.0-beta",
            "v2.6.10",
            "v2.6.9",
            "v2.6.8",
            "v2.6.7",
            "v2.6.6",
            "v2.6.5",
            "v2.6.4",
            "v2.6.3",
            "v2.6.2",
            "v2.6.1",
            "v2.6.0",
            "v2.5.6",
            "v2.6.0-beta",
            "v2.5.5",
            "v2.5.4",
            "v2.5.3",
            "v2.5.2",
            "v2.5.2-beta",
            "v2.5.1-beta",
            "v2.5.0-beta",
            "v2.1.38",
            "v2.1.37",
            "v2.1.36-beta",
            "v2.1.35-beta",
            "v2.1.34",
            "v2.1.33",
            "v2.1.32",
            "v2.1.31",
            "v2.1.31-beta",
            "v2.1.30-beta",
            "v2.1.29-beta",
            "v2.1.28",
            "v2.1.27-beta",
            "v2.1.26",
            "v2.1.25",
            "v2.1.24-beta",
            "v2.1.23-beta",
            "v2.1.22",
            "v2.1.21",
            "v2.1.20",
            "v2.1.20-beta",
            "v2.1.19-beta",
            "v2.1.18",
            "v2.1.17-beta",
            "v2.1.16-beta",
            "v2.1.14",
            "v2.1.13",
            "v2.1.12",
            "v2.1.11-beta",
            "v2.1.10-beta",
            "v2.1.9",
            "v2.1.8-beta",
            "v2.1.7-beta",
            "v2.1.6-beta",
            "v2.1.5-beta",
            "v2.1.4",
            "v2.1.3-beta",
            "v2.1.2-beta",
            "v2.1.1-beta",
            "v2.1.0-beta",
            "v2.0.23-beta",
            "v2.0.22",
            "v2.0.22-beta",
            "v2.0.21-beta",
            "v2.0.20-beta",
            "v2.0.19-beta",
            "v2.0.18-beta",
            "v2.0.17-beta",
            "v2.0.16-beta",
            "v2.0.15-beta",
            "v2.0.14-beta",
            "v2.0.13-beta",
            "v2.0.12-beta",
            "v2.0.11-beta",
            "v2.0.10-beta",
            "v2.0.9-beta",
            "v2.0.8-beta",
            "v2.0.7-beta",
            "v2.0.6-beta",
            "v2.0.5-beta",
            "v2.0.4-beta",
            "v2.0.3-beta",
            "v2.0.2-beta",
            "v2.0.1-beta",
            "v2.0.0-beta",
            "v1.4.25",
            "v1.4.24",
            "v1.4.23",
            "v1.4.22",
            "v1.4.21",
            "v1.4.20",
            "v1.4.19",
            "v1.4.18",
            "v1.4.17",
            "v1.4.16",
            "v1.4.15",
            "v1.4.14",
            "v1.4.13",
            "v1.1.3",
            "v1.1.2",
            "v1.1.1",
            "v1.1.0",
            "v1.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-52835.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:33.413763276Z",
      "provider": "osv",
      "references": [
        "https://github.com/Tautulli/Tautulli/releases/tag/v2.17.2",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/52xxx/CVE-2026-52835.json",
        "https://github.com/Tautulli/Tautulli/security/advisories/GHSA-8ww5-pp25-3jm8",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-52835",
        "https://github.com/Tautulli/Tautulli/commit/8c7c1a5ab09a6cca00aec995df07ce24680e7f31"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-22",
          "CWE-434"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/52xxx/CVE-2026-52835.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-52835",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 500419,
  "published_at": "2026-09-21T19:06:57.947+00:00"
}