Vulnerability advisory

EEF-CVE-2026-77970

Sensitive fields nested in embedded values are not redacted in AshPaperTrail versions

Published Updated OSV record ↗

Also known as CVE-2026-77970GHSA-v645-6jm6-cgpj

Severity
  • CVSS 4.0CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Affected versions

Repository

Affected commitsFixed by commit
GIT github.com/ash-project/ash_paper_trail ↗
ffe5e03b14d26b73bff17f3eca811591788aba9c to before 0cd4acfe7f48397673d8594fb5e2cd0f1bda6e400cd4acfe7f48397673d8594fb5e2cd0f1bda6e40
Also listed as affected (10)
  • v0.6.0
  • v0.5.7
  • v0.5.6
  • v0.5.5
  • v0.5.4
  • v0.5.3
  • v0.5.2
  • v0.5.1
  • v0.5.0
  • v0.3.0

Description

Summary

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 sensitive values nested inside embedded resources, unions, or lists.

sensitive_attributes :redact and :ignore only act on the tracked resource's top-level attributes. maybe_redact_changes/3 and the stored-action-input path in AshPaperTrail.Resource.Changes.CreateNewVersion derive the sensitive set from the resource's own attributes and never descend into embedded, union, or list values, so a non-sensitive attribute or action argument that holds an embed with a sensitive? field (for example an accepted credentials embed carrying a token) is written to the version table in cleartext.

This issue affects ash_paper_trail: from 0.3.0 before 0.7.0.

Configurations

The resource must version an attribute or accept an action input whose type is an embedded resource, union, or list containing a sensitive? field, with sensitive_attributes set to :redact or :ignore. Exposure requires read access to the generated version resource.

References

  • Codex
  • Claude Code
  • VS Code
  • GitHub Copilot
  • Cursor
  • Cline
  • Windsurf
  • Google Anti-gravity
  • OpenCode
  • Pi
  • Gemini CLI
  • Hermes Agent
  • Zed
  • Junie
  • Qwen Code
  • Kiro
  • Kilo Code
  • Factory Droid

Set up GitHits for your agents

Run this command:

<> bash
npx githits@latest init

What happens next:

  1. Opens your browser to authorize GitHits
  2. Asks whether to set up GitHits at the user or project level
  3. Detects your supported AI coding tools
  4. Lets you choose which tools to configure
  5. Configures the selected tools