{
  "affected": [
    {
      "ranges": [
        {
          "database_specific": {
            "extracted_events": [
              {
                "introduced": "0.8.0"
              },
              {
                "fixed": "1.0.0"
              }
            ],
            "source": [
              "DESCRIPTION",
              "REFERENCES"
            ]
          },
          "events": [
            {
              "introduced": "9dc782541629a80df5f13876b40c78ab882214a1"
            },
            {
              "fixed": "f72b14744996e71df6d73480d617d963f340597b"
            },
            {
              "fixed": "28af68d73134df0b8fb3aa6ab03e8fd795b07c21"
            }
          ],
          "repo": "https://github.com/ash-project/ash_ai",
          "type": "GIT"
        }
      ]
    }
  ],
  "aliases": [
    "GHSA-c92r-f3rr-q49h"
  ],
  "database_specific": {
    "cna_assigner": "EEF",
    "cwe_ids": [
      "CWE-346"
    ],
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/81xxx/CVE-2026-81315.json",
    "unresolved_ranges": [
      {
        "extracted_events": [
          {
            "introduced": "c94f0b17fbe252f68755ba512678586164ba6139"
          },
          {
            "fixed": "28af68d73134df0b8fb3aa6ab03e8fd795b07c21"
          }
        ],
        "source": "AFFECTED_FIELD"
      }
    ]
  },
  "details": "Origin Validation Error vulnerability in ash-project ash_ai allows a malicious web page to bypass the MCP server's DNS-rebinding protection and issue cross-site requests to a user's local MCP server with that user's actor.\n\nIn AshAi.Mcp.Server, with the default allowed_origins: nil, origin_allowed?/3 accepts an origin when uri.host == conn.host and the forwarded scheme is https. Both values are attacker-controlled: conn.host comes from the Host header and the scheme is read from the raw x-forwarded-proto header with no trusted-proxy check. Under DNS rebinding the browser sends the attacker's origin and a matching host, and page JavaScript may set X-Forwarded-Proto: https, so the check passes with no TLS or proxy involved. The fix trusts only localhost origins by default; other origins require an explicit allowed_origins allowlist.\n\nThis issue affects ash_ai: from 0.8.0 before 1.0.0.",
  "id": "CVE-2026-81315",
  "modified": "2026-09-02T03:30:47.636175266Z",
  "published": "2026-08-31T00:57:55.910Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://cna.erlef.org/cves/CVE-2026-81315.html"
    },
    {
      "type": "WEB",
      "url": "https://github.com"
    },
    {
      "type": "WEB",
      "url": "https://osv.dev/vulnerability/EEF-CVE-2026-81315"
    },
    {
      "type": "WEB",
      "url": "https://repo.hex.pm"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/81xxx/CVE-2026-81315.json"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/ash-project/ash_ai/security/advisories/GHSA-c92r-f3rr-q49h"
    },
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-81315"
    },
    {
      "type": "FIX",
      "url": "https://github.com/ash-project/ash_ai/commit/28af68d73134df0b8fb3aa6ab03e8fd795b07c21"
    },
    {
      "type": "PACKAGE",
      "url": "https://github.com/ash-project/ash_ai"
    }
  ],
  "schema_version": "1.9.0",
  "severity": [
    {
      "score": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N",
      "type": "CVSS_V4"
    }
  ],
  "summary": "MCP DNS-rebinding origin check in AshAi is bypassed by a spoofed X-Forwarded-Proto header"
}