Skip to content
Heist/ feed
Back to feed
Medium

RPC error handler fails open in AshTypescript, disclosing unredacted errors

Type: advisorySources: OSV

Generation of Error Message Containing Sensitive Information vulnerability in ash-project ash_typescript allows an unauthenticated attacker to receive unredacted internal error data by provoking an error shape the configured error handler does not match. apply_error_handler/3 in lib/ash_typescript/rpc/errors.ex is the only hook an application has for redacting or suppressing errors before they reach the client, with a nil return dropping the error entirely. Its rescue clause logs a warning and then returns the original, pre-handler error map. Error handlers are conventionally written as pattern-matching functions over expected error shapes, so an unmatched shape raises FunctionClauseError and the raw transformed error, including any secrets carried in vars, is emitted instead. An intent to suppress an error becomes an intent to publish it. The rescue catches exceptions only, so a handler that throws or exits still propagates. This issue affects ash_typescript: from 0.8.0 before 0.18.0.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-77950
Confirmed fixed CVEs
Not specified
Updated in this feed
8 Nov 2026, 01:21 UTC · Revision 1

Source evidence

RPC error handler fails open in AshTypescript, disclosing unredacted errors

core-osv · Original source

Published 1 Sept 2026, 02:08 UTC

Generation of Error Message Containing Sensitive Information vulnerability in ash-project ash_typescript allows an unauthenticated attacker to receive unredacted internal error data by provoking an error shape the configured error handler does not match. apply_error_handler/3 in lib/ash_typescript/rpc/errors.ex is the only hook an application has for redacting or suppressing errors before they reach the client, with a nil return dropping the error entirely. Its rescue clause logs a warning and then returns the original, pre-handler error map. Error handlers are conventionally written as pattern-matching functions over expected error shapes, so an unmatched shape raises FunctionClauseError and the raw transformed error, including any secrets carried in vars, is emitted instead. An intent to suppress an error becomes an intent to publish it. The rescue catches exceptions only, so a handler that throws or exits still propagates. This issue affects ash_typescript: from 0.8.0 before 0.18.0.

osv:CVE-2026-77950
Complete source record
{
  "id": "35f7c70b263d07f22d862100deb080beb9487e2f4d8e6cba5523aff320911fd5",
  "url": "https://osv.dev/vulnerability/CVE-2026-77950",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "RPC error handler fails open in AshTypescript, disclosing unredacted errors",
    "summary": "Generation of Error Message Containing Sensitive Information vulnerability in ash-project ash_typescript allows an unauthenticated attacker to receive unredacted internal error data by provoking an error shape the configured error handler does not match. apply_error_handler/3 in lib/ash_typescript/rpc/errors.ex is the only hook an application has for redacting or suppressing errors before they reach the client, with a nil return dropping the error entirely. Its rescue clause logs a warning and then returns the original, pre-handler error map. Error handlers are conventionally written as pattern-matching functions over expected error shapes, so an unmatched shape raises FunctionClauseError and the raw transformed error, including any secrets carried in vars, is emitted instead. An intent to suppress an error becomes an intent to publish it. The rescue catches exceptions only, so a handler that throws or exits still propagates. This issue affects ash_typescript: from 0.8.0 before 0.18.0.",
    "evidence": "osv:CVE-2026-77950",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-77950",
      "aliases": [
        "CVE-2026-77950",
        "EEF-CVE-2026-77950",
        "GHSA-mjr7-r3rf-x963"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/ash-project/ash_typescript",
              "type": "GIT",
              "events": [
                {
                  "introduced": "cb01cc8749e5a2a17fb45aedbe75df30a9f1126e"
                },
                {
                  "fixed": "59d8e985a98cf2e01794dbe5b919b897a95311f4"
                },
                {
                  "introduced": "1fbb71d48ac3684bf6a6948007fd1b06bf1c9823"
                },
                {
                  "fixed": "808e4b17ee821a8dac98bda5bf01da0fe1b69d41"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "cb01cc8749e5a2a17fb45aedbe75df30a9f1126e"
                      },
                      {
                        "fixed": "59d8e985a98cf2e01794dbe5b919b897a95311f4"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StandardRange"
                  },
                  {
                    "range": [
                      {
                        "introduced": "0.8.0"
                      },
                      {
                        "fixed": "0.18.0"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StandardRange"
                  },
                  {
                    "range": [
                      {
                        "fixed": "59d8e985a98cf2e01794dbe5b919b897a95311f4"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v0.15.0",
            "v0.15.3",
            "v0.15.2",
            "v0.15.1",
            "v0.14.4",
            "v0.14.3",
            "v0.14.2",
            "v0.14.1",
            "v0.14.0",
            "v0.13.2",
            "v0.13.1",
            "v0.13.0",
            "v0.12.1",
            "v0.12.0",
            "v0.11.6",
            "v0.11.5",
            "v0.11.4",
            "v0.11.3",
            "v0.11.2",
            "v0.11.1",
            "v0.11.0",
            "v0.10.2",
            "v0.10.1",
            "v0.10.0",
            "v0.9.1",
            "v0.9.0",
            "v0.8.4",
            "v0.8.3",
            "v0.8.2",
            "v0.8.1",
            "v0.8.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-77950.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:52.600153368Z",
      "provider": "osv",
      "references": [
        "https://cna.erlef.org/cves/CVE-2026-77950.html",
        "https://github.com",
        "https://osv.dev/vulnerability/EEF-CVE-2026-77950",
        "https://repo.hex.pm",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/77xxx/CVE-2026-77950.json",
        "https://github.com/ash-project/ash_typescript/security/advisories/GHSA-mjr7-r3rf-x963",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-77950",
        "https://github.com/ash-project/ash_typescript/commit/59d8e985a98cf2e01794dbe5b919b897a95311f4",
        "https://github.com/ash-project/ash_typescript"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-209"
        ],
        "cna_assigner": "EEF",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/77xxx/CVE-2026-77950.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-77950",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 521294,
  "published_at": "2026-09-01T02:08:54.754+00:00"
}