Skip to content
Heist/ feed
Back to feed
Medium

Directus exposes sensitive fields in revision history

Type: advisorySources: OSV

Directus is a real-time API and App dashboard for managing SQL database content. Prior to 11.17.0, Directus stores revision records (in directus_revisions) whenever items are created or updated. Due to the revision snapshot code not consistently calling the prepareDelta sanitization pipeline, sensitive fields (including user tokens, two-factor authentication secrets, external auth identifiers, auth data, stored credentials, and AI provider API keys) could be stored in plaintext within revision records. This vulnerability is fixed in 11.17.0.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-39943
Confirmed fixed CVEs
Not specified
Updated in this feed
6 Nov 2026, 02:39 UTC · Revision 1

Source evidence

Directus exposes sensitive fields in revision history

core-osv · Original source

Published 9 Apr 2026, 16:12 UTC

Directus is a real-time API and App dashboard for managing SQL database content. Prior to 11.17.0, Directus stores revision records (in directus_revisions) whenever items are created or updated. Due to the revision snapshot code not consistently calling the prepareDelta sanitization pipeline, sensitive fields (including user tokens, two-factor authentication secrets, external auth identifiers, auth data, stored credentials, and AI provider API keys) could be stored in plaintext within revision records. This vulnerability is fixed in 11.17.0.

osv:CVE-2026-39943
Complete source record
{
  "id": "84c46c55d6a9137e006680f21acd0259ab6eb864eef29e919cc11456e4d2648b",
  "url": "https://osv.dev/vulnerability/CVE-2026-39943",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Directus exposes sensitive fields in revision history",
    "summary": "Directus is a real-time API and App dashboard for managing SQL database content. Prior to 11.17.0, Directus stores revision records (in directus_revisions) whenever items are created or updated. Due to the revision snapshot code not consistently calling the prepareDelta sanitization pipeline, sensitive fields (including user tokens, two-factor authentication secrets, external auth identifiers, auth data, stored credentials, and AI provider API keys) could be stored in plaintext within revision records. This vulnerability is fixed in 11.17.0.",
    "evidence": "osv:CVE-2026-39943",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-39943",
      "aliases": [
        "CVE-2026-39943",
        "GHSA-mvv8-v4jj-g47j"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/directus/directus",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "dfb2db349f84b67a85565cbc009b8c658f130ce9"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "11.17.0"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "dfb2db349f84b67a85565cbc009b8c658f130ce9"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "v11.17.0"
                  },
                  {
                    "cpe": "cpe:2.3:a:monospace:directus:*:*:*:*:*:node.js:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "11.17.0"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v11.16.1",
            "v11.16.0",
            "v11.15.4",
            "v11.15.3",
            "remove",
            "list",
            "delete",
            "v11.15.2",
            "v11.15.1",
            "v11.15.0",
            "v11.14.1",
            "v11.14.0",
            "v11.13.4",
            "v11.13.3",
            "v11.13.2",
            "v11.13.1",
            "v11.13.0",
            "v11.12.0",
            "v11.11.0",
            "v11.10.2",
            "v11.10.1",
            "v11.10.0",
            "v11.9.3",
            "v11.9.2",
            "v11.9.1",
            "v11.9.0",
            "v11.8.0",
            "v11.7.2",
            "v11.7.1",
            "v11.7.0",
            "v11.6.1",
            "v11.6.0",
            "v11.5.1",
            "v11.5.0",
            "v11.4.1",
            "v11.4.0",
            "v11.3.5",
            "v11.3.4",
            "v11.3.3",
            "v11.3.2",
            "v11.3.1",
            "v11.3.0",
            "v11.2.2",
            "v11.2.1",
            "v11.2.0",
            "v11.1.2",
            "v11.1.1",
            "v11.1.0",
            "v10.13.2",
            "v11.0.2",
            "v11.0.1",
            "v11.0.0",
            "v10.13.1",
            "v10.13.0",
            "v10.12.1",
            "v10.11.2",
            "10.11.2",
            "v10.11.1",
            "v10.11.0",
            "v10.10.7",
            "v10.10.6",
            "v10.10.5",
            "v10.10.4",
            "v10.10.3",
            "v10.10.2",
            "v10.10.1",
            "v10.10.0",
            "v10.9.3",
            "v10.9.2",
            "v10.9.1",
            "v10.9.0",
            "v10.8.3",
            "v10.8.2",
            "v10.8.1",
            "v10.8.0",
            "v10.7.2",
            "v10.7.1",
            "v10.7.0",
            "v10.6.4",
            "v10.6.3",
            "v10.6.2",
            "v10.6.1",
            "v10.6.0",
            "v10.5.3",
            "v10.5.2",
            "v10.5.1",
            "v10.5.0",
            "v10.4.3",
            "v10.4.2",
            "v10.4.0",
            "v10.3.0",
            "v10.2.1",
            "v10.2.0",
            "v10.1.1",
            "v10.1.0",
            "v10.0.0",
            "v9.26.0",
            "v9.25.2",
            "v9.25.1",
            "v9.25.0",
            "v9.24.0",
            "v9.23.4",
            "v9.23.3",
            "v9.23.2",
            "v9.23.1",
            "v9.23.0",
            "v9.22.4",
            "v9.22.3",
            "v9.22.2",
            "v9.22.1",
            "v9.22.0",
            "v9.21.2",
            "v9.21.1",
            "v9.21.0",
            "v9.20.4",
            "v9.20.3",
            "v9.20.2",
            "v9.20.1",
            "v9.20.0",
            "v9.19.2",
            "v9.19.1",
            "v9.19.0",
            "v9.18.1",
            "v9.18.0",
            "v9.17.4",
            "v9.17.3",
            "v9.17.2",
            "v9.17.1",
            "v9.17.0",
            "v9.16.1",
            "v9.16.0",
            "v9.15.1",
            "v9.15.0",
            "v9.14.5",
            "v9.14.4",
            "v9.14.3",
            "v9.14.2",
            "v9.14.1",
            "v9.13.0",
            "v9.12.2",
            "v9.12.1",
            "v9.12.0",
            "v9.11.1",
            "v9.11.0",
            "v9.10.0",
            "v9.9.1",
            "v9.9.0",
            "v9.8.0",
            "v9.7.1",
            "v9.7.0",
            "v9.6.0",
            "v9.5.2",
            "v9.5.1",
            "v9.5.0",
            "v9.4.3",
            "v9.4.2",
            "v9.4.1",
            "v9.4.0",
            "v9.3.0",
            "v9.2.2",
            "v9.2.1",
            "v9.2.0",
            "v9.1.2",
            "v9.1.1",
            "v9.1.0",
            "v9.0.1",
            "v9.0.0",
            "v9.0.0-rc.101",
            "v9.0.0-rc.100",
            "v9.0.0-rc.99",
            "v9.0.0-rc.98",
            "v9.0.0-rc.97",
            "v9.0.0-rc.96",
            "v9.0.0-rc.95",
            "v9.0.0-rc.94",
            "v9.0.0-rc.93",
            "v9.0.0-rc.92",
            "v9.0.0-rc.91",
            "v9.0.0-rc.90",
            "v9.0.0-rc.89",
            "v9.0.0-rc.88",
            "v9.0.0-rc.87",
            "v9.0.0-rc.86",
            "v9.0.0-rc.85",
            "v9.0.0-rc.84",
            "v9.0.0-rc.83",
            "v9.0.0-rc.82",
            "v9.0.0-rc.81",
            "v9.0.0-rc.80",
            "v9.0.0-rc.79",
            "v9.0.0-rc.78",
            "v9.0.0-rc.77",
            "v9.0.0-rc.76",
            "v9.0.0-rc.75",
            "v9.0.0-rc.74",
            "v9.0.0-rc.73",
            "v9.0.0-rc.72",
            "v9.0.0-rc.71",
            "v9.0.0-rc.70",
            "v9.0.0-rc.69",
            "v9.0.0-rc.68",
            "v9.0.0-rc.67",
            "v9.0.0-rc.66",
            "v9.0.0-rc.65",
            "v9.0.0-rc.64",
            "v9.0.0-rc.63",
            "v9.0.0-rc.62",
            "v9.0.0-rc.61",
            "v9.0.0-rc.60",
            "v9.0.0-rc.59",
            "v9.0.0-rc.58",
            "v9.0.0-rc.57",
            "v9.0.0-rc.56",
            "v9.0.0-rc.55",
            "v9.0.0-rc.54",
            "v9.0.0-rc.53",
            "v9.0.0-rc.52",
            "v9.0.0-rc.51",
            "v9.0.0-rc.50",
            "v9.0.0-rc.49",
            "v9.0.0-rc.48",
            "v9.0.0-rc.47",
            "v9.0.0-rc.46",
            "v9.0.0-rc.45",
            "v9.0.0-rc.44",
            "v9.0.0-rc.43",
            "v9.0.0-rc.42",
            "v9.0.0-rc.41",
            "v9.0.0-rc.40",
            "v9.0.0-rc.39",
            "v9.0.0-rc.38",
            "v9.0.0-rc.37",
            "v9.0.0-rc.36",
            "v9.0.0-rc.35",
            "v9.0.0-rc.34",
            "v9.0.0-rc.33",
            "v9.0.0-rc.32",
            "v9.0.0-rc.31",
            "v9.0.0-rc.30",
            "v9.0.0-rc.29",
            "v9.0.0-rc.28",
            "v9.0.0-rc.27",
            "v9.0.0-rc.25",
            "v9.0.0-rc.26",
            "v9.0.0-rc.24",
            "v9.0.0-rc.23",
            "v9.0.0-rc.22",
            "v9.0.0-rc.21",
            "v9.0.0-rc.20",
            "v9.0.0-rc.19",
            "v9.0.0-rc.18",
            "v9.0.0-rc.17",
            "v9.0.0-rc.15",
            "v9.0.0-rc.14",
            "v9.0.0-rc.13",
            "v9.0.0-rc.12",
            "v9.0.0-rc.11",
            "v9.0.0-rc.10",
            "v9.0.0-rc.9",
            "v9.0.0-rc.8",
            "v9.0.0-rc.7",
            "v9.0.0-rc.6",
            "v9.0.0-rc.5",
            "v9.0.0-rc.4",
            "v9.0.0-rc.3",
            "v9.0.0-rc.2",
            "v9.0.0-rc.1",
            "v9.0.0-rc.0",
            "v9.0.0-beta.14",
            "v9.0.0-beta.13",
            "v9.0.0-beta.12",
            "v9.0.0-beta.11",
            "v9.0.0-beta.10",
            "v9.0.0-beta.9",
            "v9.0.0-beta.8",
            "v9.0.0-beta.7",
            "v9.0.0-beta.5",
            "v9.0.0-beta.4",
            "v9.0.0-beta.3",
            "v9.0.0-beta.2",
            "v9.0.0-beta.1",
            "v9.0.0-beta.0",
            "v9.0.0-alpha.42",
            "v9.0.0-alpha.41",
            "v9.0.0-alpha.40",
            "v9.0.0-alpha.39",
            "v9.0.0-alpha.38",
            "v9.0.0-alpha.37",
            "v9.0.0-alpha.36",
            "v9.0.0-alpha.34",
            "v9.0.0-alpha.33",
            "v9.0.0-alpha.32",
            "v9.0.0-alpha.31",
            "v9.0.0-y.0",
            "v9.0.0-alpha.27",
            "v9.0.0-alpha.26",
            "v9.0.0-alpha.25",
            "v9.0.0-alpha.24",
            "v9.0.0-alpha.23",
            "v9.0.0-alpha.22",
            "v9.0.0-alpha.21",
            "v9.0.0-alpha.20",
            "v9.0.0-alpha.18",
            "v9.0.0-alpha.17",
            "v9.0.0-alpha.16",
            "v9.0.0-alpha.15",
            "v9.0.0-alpha.14",
            "v9.0.0-alpha.10",
            "v9.0.0-alpha.9",
            "v9.0.0-alpha.8",
            "v9.0.0-alpha.7",
            "v9.0.0-alpha.6",
            "v9.0.0-alpha.5",
            "v9.0.0-alpha.4"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-39943.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:46.173157778Z",
      "provider": "osv",
      "references": [
        "https://github.com/directus/directus/releases/tag/v11.17.0",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/39xxx/CVE-2026-39943.json",
        "https://github.com/directus/directus/security/advisories/GHSA-mvv8-v4jj-g47j",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-39943"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-200",
          "CWE-312"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/39xxx/CVE-2026-39943.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-39943",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 514353,
  "published_at": "2026-04-09T16:12:09.963+00:00"
}