Vulnerability advisory

CVE-2026-78693

Incomplete redaction re-attaches the original error path in AshGraphql, leaking internal field names

Published Updated OSV record ↗

Also known as EEF-CVE-2026-78693GHSA-ppr2-g9h8-w7qp

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

Affected versions

Repository

Affected commitsFixed by commit
GIT github.com/ash-project/ash_graphql ↗
6d2d8d995906d68cc245d209a9b3f9853405eb61 to before 78e90d369f09f44c534816de541e60841066a46778e90d369f09f44c534816de541e60841066a467
374261a4f243d67213f7527c93dde688dcb6ecf2 to before 4e2c5476ecfd2c701488627ee46e6eefc58c982e4e2c5476ecfd2c701488627ee46e6eefc58c982e
Also listed as affected (7)
  • v1.10.1
  • v1.10.0
  • v1.9.4
  • v1.9.3
  • v1.9.2
  • v1.9.1
  • v1.9.0

Description

Generation of Error Message Containing Sensitive Information vulnerability in ash-project ash_graphql allows a remote client to read internal field names that an application configured its error_handler to redact.

In AshGraphql.Errors, each error is passed to the configured error_handler and the returned map is merged with the pre-handler path via Map.put_new(handled, :path, path). Because put_new defers to the handler only when the handler itself set :path, a sanitizing handler that returns a fresh map or deletes :path has that decision reverted. The re-injected path comes from build_error_path/5, which falls back to raw internal Ash attribute and argument names when no field_names mapping is configured. A validation failure on a non-exposed or nested field therefore returns internal names in the GraphQL error path, defeating the application's redaction.

This issue affects ash_graphql: from 1.9.0 before 1.11.0.

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