2026-08-30 0:18CVE-2026-75847EEF
PUBLISHED5.2ApplicationCWE-312

Sensitive attribute values stored in a non-sensitive public changes map in AshPaperTrail

Cleartext Storage of Sensitive Information vulnerability in ash-project ash_paper_trail allows an attacker with read access to the generated version resource to recover the plaintext of sensitive? attributes.

AshPaperTrail stores the values of tracked sensitive? attributes in the generated version resource's changes map, which is declared public? true and sensitive? false, so the values are returned by the version resource's default read action and printed in logs, inspect output, and error messages instead of being redacted. AshPaperTrail.Resource.Transformers.CreateVersionResource derives the changes map's sensitivity from the ignore_attributes list (the attributes excluded from changes) rather than from the tracked attributes actually stored in it, and ignore_attributes defaults to empty, so the flag is effectively always false.

This issue affects ash_paper_trail: from 0.1.1 before 0.7.0.

Problem type

Affected products

ash-project

ash_paper_trail

< 0.7.0 - AFFECTED

ash_paper_trail

< 90efdb0769f83f7c5daba6a87758daebf4baf32c - AFFECTED

References

JSON source

https://cveawg.mitre.org/api/cve/CVE-2026-75847
Click to expand
{
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "cveMetadata": {
    "cveId": "CVE-2026-75847",
    "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
    "assignerShortName": "EEF",
    "dateUpdated": "2026-08-30T00:18:05.390Z",
    "dateReserved": "2026-08-20T20:00:01.970Z",
    "datePublished": "2026-08-30T00:18:05.390Z",
    "state": "PUBLISHED"
  },
  "containers": {
    "cna": {
      "providerMetadata": {
        "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "shortName": "EEF",
        "dateUpdated": "2026-08-30T00:18:05.390Z"
      },
      "title": "Sensitive attribute values stored in a non-sensitive public changes map in AshPaperTrail",
      "descriptions": [
        {
          "lang": "en",
          "value": "Cleartext Storage of Sensitive Information vulnerability in ash-project ash_paper_trail allows an attacker with read access to the generated version resource to recover the plaintext of sensitive? attributes.\n\nAshPaperTrail stores the values of tracked sensitive? attributes in the generated version resource's changes map, which is declared public? true and sensitive? false, so the values are returned by the version resource's default read action and printed in logs, inspect output, and error messages instead of being redacted. AshPaperTrail.Resource.Transformers.CreateVersionResource derives the changes map's sensitivity from the ignore_attributes list (the attributes excluded from changes) rather than from the tracked attributes actually stored in it, and ignore_attributes defaults to empty, so the flag is effectively always false.\n\nThis issue affects ash_paper_trail: from 0.1.1 before 0.7.0.",
          "supportingMedia": [
            {
              "type": "text/html",
              "base64": false,
              "value": "<p>Cleartext Storage of Sensitive Information vulnerability in ash-project ash_paper_trail allows an attacker with read access to the generated version resource to recover the plaintext of <code>sensitive?</code> attributes.</p>\n<p>AshPaperTrail stores the values of tracked <code>sensitive?</code> attributes in the generated version resource's <code>changes</code> map, which is declared <code>public? true</code> and <code>sensitive? false</code>, so the values are returned by the version resource's default read action and printed in logs, <code>inspect</code> output, and error messages instead of being redacted. <code>AshPaperTrail.Resource.Transformers.CreateVersionResource</code> derives the <code>changes</code> map's sensitivity from the <code>ignore_attributes</code> list (the attributes excluded from <code>changes</code>) rather than from the tracked attributes actually stored in it, and <code>ignore_attributes</code> defaults to empty, so the flag is effectively always false.</p>\n<p>This issue affects ash_paper_trail: from 0.1.1 before 0.7.0.</p>"
            },
            {
              "type": "text/markdown",
              "base64": false,
              "value": "Cleartext Storage of Sensitive Information vulnerability in ash-project ash_paper_trail allows an attacker with read access to the generated version resource to recover the plaintext of `sensitive?` attributes.\n\nAshPaperTrail stores the values of tracked `sensitive?` attributes in the generated version resource's `changes` map, which is declared `public? true` and `sensitive? false`, so the values are returned by the version resource's default read action and printed in logs, `inspect` output, and error messages instead of being redacted. `AshPaperTrail.Resource.Transformers.CreateVersionResource` derives the `changes` map's sensitivity from the `ignore_attributes` list (the attributes excluded from `changes`) rather than from the tracked attributes actually stored in it, and `ignore_attributes` defaults to empty, so the flag is effectively always false.\n\nThis issue affects ash_paper_trail: from 0.1.1 before 0.7.0."
            }
          ]
        }
      ],
      "affected": [
        {
          "vendor": "ash-project",
          "product": "ash_paper_trail",
          "collectionURL": "https://repo.hex.pm",
          "packageName": "ash_paper_trail",
          "cpes": [
            "cpe:2.3:a:ash-project:ash_paper_trail:*:*:*:*:*:*:*:*"
          ],
          "modules": [
            "'Elixir.AshPaperTrail.Resource.Transformers.CreateVersionResource'"
          ],
          "programFiles": [
            "lib/resource/transformers/create_version_resource.ex"
          ],
          "programRoutines": [
            {
              "name": "'Elixir.AshPaperTrail.Resource.Transformers.CreateVersionResource':transform/1"
            }
          ],
          "repo": "https://github.com/ash-project/ash_paper_trail",
          "defaultStatus": "unaffected",
          "versions": [
            {
              "version": "0.1.1",
              "status": "affected",
              "versionType": "semver",
              "lessThan": "0.7.0"
            }
          ]
        },
        {
          "vendor": "ash-project",
          "product": "ash_paper_trail",
          "collectionURL": "https://github.com",
          "packageName": "ash-project/ash_paper_trail",
          "cpes": [
            "cpe:2.3:a:ash-project:ash_paper_trail:*:*:*:*:*:*:*:*"
          ],
          "modules": [
            "'Elixir.AshPaperTrail.Resource.Transformers.CreateVersionResource'"
          ],
          "programFiles": [
            "lib/resource/transformers/create_version_resource.ex"
          ],
          "programRoutines": [
            {
              "name": "'Elixir.AshPaperTrail.Resource.Transformers.CreateVersionResource':transform/1"
            }
          ],
          "repo": "https://github.com/ash-project/ash_paper_trail",
          "defaultStatus": "unaffected",
          "versions": [
            {
              "version": "e379ca90a0c4db54d07a9d1556fd12f2413f6e98",
              "status": "affected",
              "versionType": "git",
              "lessThan": "90efdb0769f83f7c5daba6a87758daebf4baf32c"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "lang": "en",
              "description": "CWE-312 Cleartext Storage of Sensitive Information",
              "cweId": "CWE-312",
              "type": "CWE"
            }
          ]
        }
      ],
      "references": [
        {
          "url": "https://github.com/ash-project/ash_paper_trail/security/advisories/GHSA-wqjr-xmxp-j554",
          "tags": [
            "vendor-advisory",
            "related"
          ]
        },
        {
          "url": "https://cna.erlef.org/cves/CVE-2026-75847.html",
          "tags": [
            "related"
          ]
        },
        {
          "url": "https://osv.dev/vulnerability/EEF-CVE-2026-75847",
          "tags": [
            "related"
          ]
        },
        {
          "url": "https://github.com/ash-project/ash_paper_trail/commit/90efdb0769f83f7c5daba6a87758daebf4baf32c",
          "tags": [
            "patch"
          ]
        }
      ],
      "impacts": [
        {
          "capecId": "CAPEC-37",
          "descriptions": [
            {
              "lang": "en",
              "value": "CAPEC-37 Retrieve Embedded Sensitive Data"
            }
          ]
        }
      ],
      "metrics": [
        {
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ]
        }
      ],
      "configurations": [
        {
          "lang": "en",
          "value": "The tracked resource must declare one or more sensitive? attributes that are not listed in ignore_attributes. Exposure requires read access to the generated version resource, which ships with defaults [:read, ...] and a changes field that is selectable by default.",
          "supportingMedia": [
            {
              "type": "text/html",
              "base64": false,
              "value": "<p>The tracked resource must declare one or more <code>sensitive?</code> attributes that are not listed in <code>ignore_attributes</code>. Exposure requires read access to the generated version resource, which ships with <code>defaults [:read, ...]</code> and a <code>changes</code> field that is selectable by default.</p>"
            },
            {
              "type": "text/markdown",
              "base64": false,
              "value": "The tracked resource must declare one or more `sensitive?` attributes that are not listed in `ignore_attributes`. Exposure requires read access to the generated version resource, which ships with `defaults [:read, ...]` and a `changes` field that is selectable by default."
            }
          ]
        }
      ],
      "credits": [
        {
          "lang": "en",
          "value": "Zach Daniel / Ash Project",
          "type": "remediation developer"
        },
        {
          "lang": "en",
          "value": "Peter Ullrich",
          "type": "finder"
        },
        {
          "lang": "en",
          "value": "Peter Ullrich",
          "type": "reporter"
        },
        {
          "lang": "en",
          "value": "Jonatan Männchen / EEF",
          "type": "coordinator"
        }
      ]
    }
  }
}