GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2026-82733 (GCVE-0-2026-82733)

Vulnerability from cvelistv5 – Published: 2026-09-01 02:09 – Updated: 2026-09-01 15:12
VLAI
Title
Route handler return value echoed into AshTypescript error response
Summary
Generation of Error Message Containing Sensitive Information vulnerability in ash-project ash_typescript allows an unauthenticated attacker to read internal application data from an HTTP 500 response body. When a typed-controller route handler returns anything other than a %Plug.Conn{}, dispatch/3 in lib/ash_typescript/typed_controller/request_handler.ex passes the value to unexpected_return/2, which interpolates inspect(value, limit: 50) directly into the response message. The limit option bounds elements per collection rather than the term as a whole, so a handler falling through with a term such as {:error, %User{}} or a changeset serialises its full field set, including hashed passwords, tokens, and tenant identifiers, into the JSON error returned to the caller. This contradicts the module's own posture elsewhere: the rescue clause gates Exception.message/1 behind AshTypescript.typed_controller_show_raised_errors?/0 and otherwise returns a generic message, while this path is ungated and always echoes. This issue affects ash_typescript: from 0.15.0 before 0.18.0.
SSVC
Exploitation: poc Automatable: no Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-09-01 15:11 UTC
CWE
  • CWE-209 - Generation of Error Message Containing Sensitive Information
Assigner
Impacted products
Vendor Product Version CPE status
ash-project ash_typescript Affected: 0.15.0 , < 0.18.0 (semver)
    cpe:2.3:a:ash-project:ash_typescript:*:*:*:*:*:*:*:*
Create a notification for this product.
ash-project ash_typescript Affected: 546a15e1a2d7dbf1df2d5a6ee4404bc3da87852e , < dec80e29543f96e43eeece8501376562f17ac638 (git)
    cpe:2.3:a:ash-project:ash_typescript:*:*:*:*:*:*:*:*
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-82733",
                "options": [
                  {
                    "Exploitation": "poc"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-09-01T15:11:48.163039Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-09-01T15:12:07.507Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "references": [
          {
            "tags": [
              "exploit"
            ],
            "url": "https://github.com/ash-project/ash_typescript/security/advisories/GHSA-ghhw-qh7p-55xr"
          }
        ],
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "collectionURL": "https://repo.hex.pm",
          "cpes": [
            "cpe:2.3:a:ash-project:ash_typescript:*:*:*:*:*:*:*:*"
          ],
          "defaultStatus": "unaffected",
          "modules": [
            "\u0027Elixir.AshTypescript.TypedController.RequestHandler\u0027"
          ],
          "packageName": "ash_typescript",
          "packageURL": "pkg:hex/ash_typescript",
          "product": "ash_typescript",
          "programFiles": [
            "lib/ash_typescript/typed_controller/request_handler.ex"
          ],
          "programRoutines": [
            {
              "name": "\u0027Elixir.AshTypescript.TypedController.RequestHandler\u0027:unexpected_return/2"
            },
            {
              "name": "\u0027Elixir.AshTypescript.TypedController.RequestHandler\u0027:handle/4"
            }
          ],
          "repo": "https://github.com/ash-project/ash_typescript",
          "vendor": "ash-project",
          "versions": [
            {
              "lessThan": "0.18.0",
              "status": "affected",
              "version": "0.15.0",
              "versionType": "semver"
            }
          ]
        },
        {
          "collectionURL": "https://github.com",
          "cpes": [
            "cpe:2.3:a:ash-project:ash_typescript:*:*:*:*:*:*:*:*"
          ],
          "defaultStatus": "unaffected",
          "modules": [
            "\u0027Elixir.AshTypescript.TypedController.RequestHandler\u0027"
          ],
          "packageName": "ash-project/ash_typescript",
          "packageURL": "pkg:github/ash-project/ash_typescript",
          "product": "ash_typescript",
          "programFiles": [
            "lib/ash_typescript/typed_controller/request_handler.ex"
          ],
          "programRoutines": [
            {
              "name": "\u0027Elixir.AshTypescript.TypedController.RequestHandler\u0027:unexpected_return/2"
            },
            {
              "name": "\u0027Elixir.AshTypescript.TypedController.RequestHandler\u0027:handle/4"
            }
          ],
          "repo": "https://github.com/ash-project/ash_typescript",
          "vendor": "ash-project",
          "versions": [
            {
              "lessThan": "dec80e29543f96e43eeece8501376562f17ac638",
              "status": "affected",
              "version": "546a15e1a2d7dbf1df2d5a6ee4404bc3da87852e",
              "versionType": "git"
            }
          ]
        }
      ],
      "configurations": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eThe application exposes an AshTypescript typed controller over HTTP with a route handler that can return a non-\u003ccode\u003ePlug.Conn\u003c/code\u003e term carrying sensitive data.\u003c/p\u003e"
            },
            {
              "base64": false,
              "type": "text/markdown",
              "value": "The application exposes an AshTypescript typed controller over HTTP with a route handler that can return a non-`Plug.Conn` term carrying sensitive data."
            }
          ],
          "value": "The application exposes an AshTypescript typed controller over HTTP with a route handler that can return a non-Plug.Conn term carrying sensitive data."
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:a:ash-project:ash_typescript:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "0.18.0",
                  "versionStartIncluding": "0.15.0",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ],
          "operator": "AND"
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "finder",
          "value": "Peter Ullrich"
        },
        {
          "lang": "en",
          "type": "reporter",
          "value": "Peter Ullrich"
        },
        {
          "lang": "en",
          "type": "remediation developer",
          "value": "Torkild Gundersen Kjevik / Ash Project"
        },
        {
          "lang": "en",
          "type": "coordinator",
          "value": "Jonatan M\u00e4nnchen / EEF"
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eGeneration of Error Message Containing Sensitive Information vulnerability in ash-project ash_typescript allows an unauthenticated attacker to read internal application data from an HTTP 500 response body.\u003c/p\u003e\n\u003cp\u003eWhen a typed-controller route handler returns anything other than a \u003ccode\u003e%Plug.Conn{}\u003c/code\u003e, \u003ccode\u003edispatch/3\u003c/code\u003e in \u003ccode\u003elib/ash_typescript/typed_controller/request_handler.ex\u003c/code\u003e passes the value to \u003ccode\u003eunexpected_return/2\u003c/code\u003e, which interpolates \u003ccode\u003einspect(value, limit: 50)\u003c/code\u003e directly into the response message. The \u003ccode\u003elimit\u003c/code\u003e option bounds elements per collection rather than the term as a whole, so a handler falling through with a term such as \u003ccode\u003e{:error, %User{}}\u003c/code\u003e or a changeset serialises its full field set, including hashed passwords, tokens, and tenant identifiers, into the JSON error returned to the caller.\u003c/p\u003e\n\u003cp\u003eThis contradicts the module\u0027s own posture elsewhere: the \u003ccode\u003erescue\u003c/code\u003e clause gates \u003ccode\u003eException.message/1\u003c/code\u003e behind \u003ccode\u003eAshTypescript.typed_controller_show_raised_errors?/0\u003c/code\u003e and otherwise returns a generic message, while this path is ungated and always echoes.\u003c/p\u003e\n\u003cp\u003eThis issue affects ash_typescript: from 0.15.0 before 0.18.0.\u003c/p\u003e"
            },
            {
              "base64": false,
              "type": "text/markdown",
              "value": "Generation of Error Message Containing Sensitive Information vulnerability in ash-project ash_typescript allows an unauthenticated attacker to read internal application data from an HTTP 500 response body.\n\nWhen a typed-controller route handler returns anything other than a `%Plug.Conn{}`, `dispatch/3` in `lib/ash_typescript/typed_controller/request_handler.ex` passes the value to `unexpected_return/2`, which interpolates `inspect(value, limit: 50)` directly into the response message. The `limit` option bounds elements per collection rather than the term as a whole, so a handler falling through with a term such as `{:error, %User{}}` or a changeset serialises its full field set, including hashed passwords, tokens, and tenant identifiers, into the JSON error returned to the caller.\n\nThis contradicts the module\u0027s own posture elsewhere: the `rescue` clause gates `Exception.message/1` behind `AshTypescript.typed_controller_show_raised_errors?/0` and otherwise returns a generic message, while this path is ungated and always echoes.\n\nThis issue affects ash_typescript: from 0.15.0 before 0.18.0."
            }
          ],
          "value": "Generation of Error Message Containing Sensitive Information vulnerability in ash-project ash_typescript allows an unauthenticated attacker to read internal application data from an HTTP 500 response body.\n\nWhen a typed-controller route handler returns anything other than a %Plug.Conn{}, dispatch/3 in lib/ash_typescript/typed_controller/request_handler.ex passes the value to unexpected_return/2, which interpolates inspect(value, limit: 50) directly into the response message. The limit option bounds elements per collection rather than the term as a whole, so a handler falling through with a term such as {:error, %User{}} or a changeset serialises its full field set, including hashed passwords, tokens, and tenant identifiers, into the JSON error returned to the caller.\n\nThis contradicts the module\u0027s own posture elsewhere: the rescue clause gates Exception.message/1 behind AshTypescript.typed_controller_show_raised_errors?/0 and otherwise returns a generic message, while this path is ungated and always echoes.\n\nThis issue affects ash_typescript: from 0.15.0 before 0.18.0."
        }
      ],
      "impacts": [
        {
          "capecId": "CAPEC-54",
          "descriptions": [
            {
              "lang": "en",
              "value": "CAPEC-54 Query System for Information"
            }
          ]
        }
      ],
      "metrics": [
        {
          "cvssV4_0": {
            "Automatable": "NOT_DEFINED",
            "Recovery": "NOT_DEFINED",
            "Safety": "NOT_DEFINED",
            "attackComplexity": "LOW",
            "attackRequirements": "PRESENT",
            "attackVector": "NETWORK",
            "baseScore": 6.3,
            "baseSeverity": "MEDIUM",
            "privilegesRequired": "NONE",
            "providerUrgency": "NOT_DEFINED",
            "subAvailabilityImpact": "NONE",
            "subConfidentialityImpact": "NONE",
            "subIntegrityImpact": "NONE",
            "userInteraction": "NONE",
            "valueDensity": "NOT_DEFINED",
            "vectorString": "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",
            "version": "4.0",
            "vulnAvailabilityImpact": "NONE",
            "vulnConfidentialityImpact": "LOW",
            "vulnIntegrityImpact": "NONE",
            "vulnerabilityResponseEffort": "NOT_DEFINED"
          },
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-209",
              "description": "CWE-209 Generation of Error Message Containing Sensitive Information",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-01T02:09:22.784Z",
        "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "shortName": "EEF"
      },
      "references": [
        {
          "tags": [
            "related",
            "vendor-advisory"
          ],
          "url": "https://github.com/ash-project/ash_typescript/security/advisories/GHSA-ghhw-qh7p-55xr"
        },
        {
          "tags": [
            "related"
          ],
          "url": "https://cna.erlef.org/cves/CVE-2026-82733.html"
        },
        {
          "tags": [
            "related"
          ],
          "url": "https://osv.dev/vulnerability/EEF-CVE-2026-82733"
        },
        {
          "tags": [
            "patch"
          ],
          "url": "https://github.com/ash-project/ash_typescript/commit/dec80e29543f96e43eeece8501376562f17ac638"
        }
      ],
      "source": {
        "discovery": "EXTERNAL"
      },
      "title": "Route handler return value echoed into AshTypescript error response"
    }
  },
  "cveMetadata": {
    "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
    "assignerShortName": "EEF",
    "cveId": "CVE-2026-82733",
    "datePublished": "2026-09-01T02:09:22.784Z",
    "dateReserved": "2026-08-31T00:59:10.001Z",
    "dateUpdated": "2026-09-01T15:12:07.507Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-82733",
      "date": "2026-09-17",
      "epss": "0.00315",
      "percentile": "0.24442"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-82733\",\"sourceIdentifier\":\"6b3ad84c-e1a6-4bf7-a703-f496b71e49db\",\"published\":\"2026-09-01T03:16:53.373\",\"lastModified\":\"2026-09-01T21:15:00.147\",\"vulnStatus\":\"Deferred\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"Generation of Error Message Containing Sensitive Information vulnerability in ash-project ash_typescript allows an unauthenticated attacker to read internal application data from an HTTP 500 response body.\\n\\nWhen a typed-controller route handler returns anything other than a %Plug.Conn{}, dispatch/3 in lib/ash_typescript/typed_controller/request_handler.ex passes the value to unexpected_return/2, which interpolates inspect(value, limit: 50) directly into the response message. The limit option bounds elements per collection rather than the term as a whole, so a handler falling through with a term such as {:error, %User{}} or a changeset serialises its full field set, including hashed passwords, tokens, and tenant identifiers, into the JSON error returned to the caller.\\n\\nThis contradicts the module\u0027s own posture elsewhere: the rescue clause gates Exception.message/1 behind AshTypescript.typed_controller_show_raised_errors?/0 and otherwise returns a generic message, while this path is ungated and always echoes.\\n\\nThis issue affects ash_typescript: from 0.15.0 before 0.18.0.\"}],\"affected\":[{\"source\":\"6b3ad84c-e1a6-4bf7-a703-f496b71e49db\",\"affectedData\":[{\"vendor\":\"ash-project\",\"product\":\"ash_typescript\",\"defaultStatus\":\"unaffected\",\"collectionURL\":\"https://repo.hex.pm\",\"packageName\":\"ash_typescript\",\"cpes\":[\"cpe:2.3:a:ash-project:ash_typescript:*:*:*:*:*:*:*:*\"],\"modules\":[\"\u0027Elixir.AshTypescript.TypedController.RequestHandler\u0027\"],\"programFiles\":[\"lib/ash_typescript/typed_controller/request_handler.ex\"],\"programRoutines\":[{\"name\":\"\u0027Elixir.AshTypescript.TypedController.RequestHandler\u0027:unexpected_return/2\"},{\"name\":\"\u0027Elixir.AshTypescript.TypedController.RequestHandler\u0027:handle/4\"}],\"repo\":\"https://github.com/ash-project/ash_typescript\",\"packageURL\":\"pkg:hex/ash_typescript\",\"versions\":[{\"version\":\"0.15.0\",\"lessThan\":\"0.18.0\",\"versionType\":\"semver\",\"status\":\"affected\"}]},{\"vendor\":\"ash-project\",\"product\":\"ash_typescript\",\"defaultStatus\":\"unaffected\",\"collectionURL\":\"https://github.com\",\"packageName\":\"ash-project/ash_typescript\",\"cpes\":[\"cpe:2.3:a:ash-project:ash_typescript:*:*:*:*:*:*:*:*\"],\"modules\":[\"\u0027Elixir.AshTypescript.TypedController.RequestHandler\u0027\"],\"programFiles\":[\"lib/ash_typescript/typed_controller/request_handler.ex\"],\"programRoutines\":[{\"name\":\"\u0027Elixir.AshTypescript.TypedController.RequestHandler\u0027:unexpected_return/2\"},{\"name\":\"\u0027Elixir.AshTypescript.TypedController.RequestHandler\u0027:handle/4\"}],\"repo\":\"https://github.com/ash-project/ash_typescript\",\"packageURL\":\"pkg:github/ash-project/ash_typescript\",\"versions\":[{\"version\":\"546a15e1a2d7dbf1df2d5a6ee4404bc3da87852e\",\"lessThan\":\"dec80e29543f96e43eeece8501376562f17ac638\",\"versionType\":\"git\",\"status\":\"affected\"}]}]}],\"metrics\":{\"cvssMetricV40\":[{\"source\":\"6b3ad84c-e1a6-4bf7-a703-f496b71e49db\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"4.0\",\"vectorString\":\"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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X\",\"baseScore\":6.3,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"attackRequirements\":\"PRESENT\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"NONE\",\"vulnConfidentialityImpact\":\"LOW\",\"vulnIntegrityImpact\":\"NONE\",\"vulnAvailabilityImpact\":\"NONE\",\"subConfidentialityImpact\":\"NONE\",\"subIntegrityImpact\":\"NONE\",\"subAvailabilityImpact\":\"NONE\",\"exploitMaturity\":\"NOT_DEFINED\",\"confidentialityRequirement\":\"NOT_DEFINED\",\"integrityRequirement\":\"NOT_DEFINED\",\"availabilityRequirement\":\"NOT_DEFINED\",\"modifiedAttackVector\":\"NOT_DEFINED\",\"modifiedAttackComplexity\":\"NOT_DEFINED\",\"modifiedAttackRequirements\":\"NOT_DEFINED\",\"modifiedPrivilegesRequired\":\"NOT_DEFINED\",\"modifiedUserInteraction\":\"NOT_DEFINED\",\"modifiedVulnConfidentialityImpact\":\"NOT_DEFINED\",\"modifiedVulnIntegrityImpact\":\"NOT_DEFINED\",\"modifiedVulnAvailabilityImpact\":\"NOT_DEFINED\",\"modifiedSubConfidentialityImpact\":\"NOT_DEFINED\",\"modifiedSubIntegrityImpact\":\"NOT_DEFINED\",\"modifiedSubAvailabilityImpact\":\"NOT_DEFINED\",\"Safety\":\"NOT_DEFINED\",\"Automatable\":\"NOT_DEFINED\",\"Recovery\":\"NOT_DEFINED\",\"valueDensity\":\"NOT_DEFINED\",\"vulnerabilityResponseEffort\":\"NOT_DEFINED\",\"providerUrgency\":\"NOT_DEFINED\"}}],\"ssvcV203\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"ssvcData\":{\"timestamp\":\"2026-09-01T15:11:48.163039Z\",\"id\":\"CVE-2026-82733\",\"options\":[{\"exploitation\":\"poc\"},{\"automatable\":\"no\"},{\"technicalImpact\":\"partial\"}],\"role\":\"CISA Coordinator\",\"version\":\"2.0.3\"}}]},\"weaknesses\":[{\"source\":\"6b3ad84c-e1a6-4bf7-a703-f496b71e49db\",\"type\":\"Secondary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-209\"}]}],\"references\":[{\"url\":\"https://cna.erlef.org/cves/CVE-2026-82733.html\",\"source\":\"6b3ad84c-e1a6-4bf7-a703-f496b71e49db\"},{\"url\":\"https://github.com/ash-project/ash_typescript/commit/dec80e29543f96e43eeece8501376562f17ac638\",\"source\":\"6b3ad84c-e1a6-4bf7-a703-f496b71e49db\"},{\"url\":\"https://github.com/ash-project/ash_typescript/security/advisories/GHSA-ghhw-qh7p-55xr\",\"source\":\"6b3ad84c-e1a6-4bf7-a703-f496b71e49db\"},{\"url\":\"https://osv.dev/vulnerability/EEF-CVE-2026-82733\",\"source\":\"6b3ad84c-e1a6-4bf7-a703-f496b71e49db\"},{\"url\":\"https://github.com/ash-project/ash_typescript/security/advisories/GHSA-ghhw-qh7p-55xr\",\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\"}]}}",
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2026-82733\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"poc\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2026-09-01T15:11:48.163039Z\"}}}], \"references\": [{\"url\": \"https://github.com/ash-project/ash_typescript/security/advisories/GHSA-ghhw-qh7p-55xr\", \"tags\": [\"exploit\"]}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2026-09-01T15:12:02.885Z\"}}], \"cna\": {\"title\": \"Route handler return value echoed into AshTypescript error response\", \"source\": {\"discovery\": \"EXTERNAL\"}, \"credits\": [{\"lang\": \"en\", \"type\": \"finder\", \"value\": \"Peter Ullrich\"}, {\"lang\": \"en\", \"type\": \"reporter\", \"value\": \"Peter Ullrich\"}, {\"lang\": \"en\", \"type\": \"remediation developer\", \"value\": \"Torkild Gundersen Kjevik / Ash Project\"}, {\"lang\": \"en\", \"type\": \"coordinator\", \"value\": \"Jonatan M\\u00e4nnchen / EEF\"}], \"impacts\": [{\"capecId\": \"CAPEC-54\", \"descriptions\": [{\"lang\": \"en\", \"value\": \"CAPEC-54 Query System for Information\"}]}], \"metrics\": [{\"format\": \"CVSS\", \"cvssV4_0\": {\"Safety\": \"NOT_DEFINED\", \"version\": \"4.0\", \"Recovery\": \"NOT_DEFINED\", \"baseScore\": 6.3, \"Automatable\": \"NOT_DEFINED\", \"attackVector\": \"NETWORK\", \"baseSeverity\": \"MEDIUM\", \"valueDensity\": \"NOT_DEFINED\", \"vectorString\": \"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\", \"providerUrgency\": \"NOT_DEFINED\", \"userInteraction\": \"NONE\", \"attackComplexity\": \"LOW\", \"attackRequirements\": \"PRESENT\", \"privilegesRequired\": \"NONE\", \"subIntegrityImpact\": \"NONE\", \"vulnIntegrityImpact\": \"NONE\", \"subAvailabilityImpact\": \"NONE\", \"vulnAvailabilityImpact\": \"NONE\", \"subConfidentialityImpact\": \"NONE\", \"vulnConfidentialityImpact\": \"LOW\", \"vulnerabilityResponseEffort\": \"NOT_DEFINED\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"GENERAL\"}]}], \"affected\": [{\"cpes\": [\"cpe:2.3:a:ash-project:ash_typescript:*:*:*:*:*:*:*:*\"], \"repo\": \"https://github.com/ash-project/ash_typescript\", \"vendor\": \"ash-project\", \"modules\": [\"\u0027Elixir.AshTypescript.TypedController.RequestHandler\u0027\"], \"product\": \"ash_typescript\", \"versions\": [{\"status\": \"affected\", \"version\": \"0.15.0\", \"lessThan\": \"0.18.0\", \"versionType\": \"semver\"}], \"packageURL\": \"pkg:hex/ash_typescript\", \"packageName\": \"ash_typescript\", \"programFiles\": [\"lib/ash_typescript/typed_controller/request_handler.ex\"], \"collectionURL\": \"https://repo.hex.pm\", \"defaultStatus\": \"unaffected\", \"programRoutines\": [{\"name\": \"\u0027Elixir.AshTypescript.TypedController.RequestHandler\u0027:unexpected_return/2\"}, {\"name\": \"\u0027Elixir.AshTypescript.TypedController.RequestHandler\u0027:handle/4\"}]}, {\"cpes\": [\"cpe:2.3:a:ash-project:ash_typescript:*:*:*:*:*:*:*:*\"], \"repo\": \"https://github.com/ash-project/ash_typescript\", \"vendor\": \"ash-project\", \"modules\": [\"\u0027Elixir.AshTypescript.TypedController.RequestHandler\u0027\"], \"product\": \"ash_typescript\", \"versions\": [{\"status\": \"affected\", \"version\": \"546a15e1a2d7dbf1df2d5a6ee4404bc3da87852e\", \"lessThan\": \"dec80e29543f96e43eeece8501376562f17ac638\", \"versionType\": \"git\"}], \"packageURL\": \"pkg:github/ash-project/ash_typescript\", \"packageName\": \"ash-project/ash_typescript\", \"programFiles\": [\"lib/ash_typescript/typed_controller/request_handler.ex\"], \"collectionURL\": \"https://github.com\", \"defaultStatus\": \"unaffected\", \"programRoutines\": [{\"name\": \"\u0027Elixir.AshTypescript.TypedController.RequestHandler\u0027:unexpected_return/2\"}, {\"name\": \"\u0027Elixir.AshTypescript.TypedController.RequestHandler\u0027:handle/4\"}]}], \"references\": [{\"url\": \"https://github.com/ash-project/ash_typescript/security/advisories/GHSA-ghhw-qh7p-55xr\", \"tags\": [\"related\", \"vendor-advisory\"]}, {\"url\": \"https://cna.erlef.org/cves/CVE-2026-82733.html\", \"tags\": [\"related\"]}, {\"url\": \"https://osv.dev/vulnerability/EEF-CVE-2026-82733\", \"tags\": [\"related\"]}, {\"url\": \"https://github.com/ash-project/ash_typescript/commit/dec80e29543f96e43eeece8501376562f17ac638\", \"tags\": [\"patch\"]}], \"descriptions\": [{\"lang\": \"en\", \"value\": \"Generation of Error Message Containing Sensitive Information vulnerability in ash-project ash_typescript allows an unauthenticated attacker to read internal application data from an HTTP 500 response body.\\n\\nWhen a typed-controller route handler returns anything other than a %Plug.Conn{}, dispatch/3 in lib/ash_typescript/typed_controller/request_handler.ex passes the value to unexpected_return/2, which interpolates inspect(value, limit: 50) directly into the response message. The limit option bounds elements per collection rather than the term as a whole, so a handler falling through with a term such as {:error, %User{}} or a changeset serialises its full field set, including hashed passwords, tokens, and tenant identifiers, into the JSON error returned to the caller.\\n\\nThis contradicts the module\u0027s own posture elsewhere: the rescue clause gates Exception.message/1 behind AshTypescript.typed_controller_show_raised_errors?/0 and otherwise returns a generic message, while this path is ungated and always echoes.\\n\\nThis issue affects ash_typescript: from 0.15.0 before 0.18.0.\", \"supportingMedia\": [{\"type\": \"text/html\", \"value\": \"\u003cp\u003eGeneration of Error Message Containing Sensitive Information vulnerability in ash-project ash_typescript allows an unauthenticated attacker to read internal application data from an HTTP 500 response body.\u003c/p\u003e\\n\u003cp\u003eWhen a typed-controller route handler returns anything other than a \u003ccode\u003e%Plug.Conn{}\u003c/code\u003e, \u003ccode\u003edispatch/3\u003c/code\u003e in \u003ccode\u003elib/ash_typescript/typed_controller/request_handler.ex\u003c/code\u003e passes the value to \u003ccode\u003eunexpected_return/2\u003c/code\u003e, which interpolates \u003ccode\u003einspect(value, limit: 50)\u003c/code\u003e directly into the response message. The \u003ccode\u003elimit\u003c/code\u003e option bounds elements per collection rather than the term as a whole, so a handler falling through with a term such as \u003ccode\u003e{:error, %User{}}\u003c/code\u003e or a changeset serialises its full field set, including hashed passwords, tokens, and tenant identifiers, into the JSON error returned to the caller.\u003c/p\u003e\\n\u003cp\u003eThis contradicts the module\u0027s own posture elsewhere: the \u003ccode\u003erescue\u003c/code\u003e clause gates \u003ccode\u003eException.message/1\u003c/code\u003e behind \u003ccode\u003eAshTypescript.typed_controller_show_raised_errors?/0\u003c/code\u003e and otherwise returns a generic message, while this path is ungated and always echoes.\u003c/p\u003e\\n\u003cp\u003eThis issue affects ash_typescript: from 0.15.0 before 0.18.0.\u003c/p\u003e\", \"base64\": false}, {\"type\": \"text/markdown\", \"value\": \"Generation of Error Message Containing Sensitive Information vulnerability in ash-project ash_typescript allows an unauthenticated attacker to read internal application data from an HTTP 500 response body.\\n\\nWhen a typed-controller route handler returns anything other than a `%Plug.Conn{}`, `dispatch/3` in `lib/ash_typescript/typed_controller/request_handler.ex` passes the value to `unexpected_return/2`, which interpolates `inspect(value, limit: 50)` directly into the response message. The `limit` option bounds elements per collection rather than the term as a whole, so a handler falling through with a term such as `{:error, %User{}}` or a changeset serialises its full field set, including hashed passwords, tokens, and tenant identifiers, into the JSON error returned to the caller.\\n\\nThis contradicts the module\u0027s own posture elsewhere: the `rescue` clause gates `Exception.message/1` behind `AshTypescript.typed_controller_show_raised_errors?/0` and otherwise returns a generic message, while this path is ungated and always echoes.\\n\\nThis issue affects ash_typescript: from 0.15.0 before 0.18.0.\", \"base64\": false}]}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-209\", \"description\": \"CWE-209 Generation of Error Message Containing Sensitive Information\"}]}], \"configurations\": [{\"lang\": \"en\", \"value\": \"The application exposes an AshTypescript typed controller over HTTP with a route handler that can return a non-Plug.Conn term carrying sensitive data.\", \"supportingMedia\": [{\"type\": \"text/html\", \"value\": \"\u003cp\u003eThe application exposes an AshTypescript typed controller over HTTP with a route handler that can return a non-\u003ccode\u003ePlug.Conn\u003c/code\u003e term carrying sensitive data.\u003c/p\u003e\", \"base64\": false}, {\"type\": \"text/markdown\", \"value\": \"The application exposes an AshTypescript typed controller over HTTP with a route handler that can return a non-`Plug.Conn` term carrying sensitive data.\", \"base64\": false}]}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:a:ash-project:ash_typescript:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"0.18.0\", \"versionStartIncluding\": \"0.15.0\"}], \"operator\": \"OR\"}], \"operator\": \"AND\"}], \"providerMetadata\": {\"orgId\": \"6b3ad84c-e1a6-4bf7-a703-f496b71e49db\", \"shortName\": \"EEF\", \"dateUpdated\": \"2026-09-01T02:09:22.784Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2026-82733\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-09-01T15:12:07.507Z\", \"dateReserved\": \"2026-08-31T00:59:10.001Z\", \"assignerOrgId\": \"6b3ad84c-e1a6-4bf7-a703-f496b71e49db\", \"datePublished\": \"2026-09-01T02:09:22.784Z\", \"assignerShortName\": \"EEF\"}",
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…