Common Weakness Enumeration

CWE-863

Allowed-with-Review

Incorrect Authorization

Abstraction: Class · Status: Incomplete

The product performs an authorization check when an actor attempts to access a resource or perform an action, but it does not correctly perform the check.

6744 vulnerabilities reference this CWE, most recent first.

CVE-2026-81643 (GCVE-0-2026-81643)

Vulnerability from cvelistv5 – Published: 2026-08-30 18:20 – Updated: 2026-08-31 15:01
VLAI
Title
Broken access control in AshGraphql subscription batcher applies authorization suppression to only the first notification
Summary
Incorrect Authorization vulnerability in ash-project ash_graphql delivers GraphQL subscription payloads for records a subscriber is not authorized to see. In AshGraphql.Subscription.Batcher, do_send/5 resolves the first notification of a batch and filters it with should_send?/1, which drops results whose errors are coded forbidden or not_found or carry no code, precisely so that unauthorized results are not disclosed. The remaining notifications in the batch are read from the process dictionary, re-run through the pipeline, and appended to the outgoing results without that filter. They reach pubsub.publish_subscription/2, and the not is_nil(record) guard drops only nil records, not error-carrying results. Any two qualifying notifications arriving within the default one-second batch interval suffice, and batching is the default path. The fix applies should_send?/1 to the whole batch. This issue affects ash_graphql: from 1.4.0 before 1.11.0.
SSVC
Exploitation: poc Automatable: no Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-08-31 15:00 UTC
CWE
  • CWE-863 - Incorrect Authorization
Assigner
Impacted products
Vendor Product Version
ash-project ash_graphql Affected: 1.4.0 , < 1.11.0 (semver)
    cpe:2.3:a:ash-project:ash_graphql:*:*:*:*:*:*:*:*
Create a notification for this product.
ash-project ash_graphql Affected: 3cb2c9870d050c7c4bba6c211aaed97d732f7e81 , < e8e67f39add2ce0771e6db5f086afe68ba212c57 (git)
    cpe:2.3:a:ash-project:ash_graphql:*:*:*:*:*:*:*:*
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-81643",
                "options": [
                  {
                    "Exploitation": "poc"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-08-31T15:00:43.822398Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-08-31T15:01:05.884Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "references": [
          {
            "tags": [
              "exploit"
            ],
            "url": "https://github.com/ash-project/ash_graphql/security/advisories/GHSA-j684-hch4-q888"
          }
        ],
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "collectionURL": "https://repo.hex.pm",
          "cpes": [
            "cpe:2.3:a:ash-project:ash_graphql:*:*:*:*:*:*:*:*"
          ],
          "defaultStatus": "unaffected",
          "modules": [
            "\u0027Elixir.AshGraphql.Subscription.Batcher\u0027"
          ],
          "packageName": "ash_graphql",
          "packageURL": "pkg:hex/ash_graphql",
          "product": "ash_graphql",
          "programFiles": [
            "lib/subscription/batcher.ex"
          ],
          "programRoutines": [
            {
              "name": "\u0027Elixir.AshGraphql.Subscription.Batcher\u0027:do_send/5"
            }
          ],
          "repo": "https://github.com/ash-project/ash_graphql",
          "vendor": "ash-project",
          "versions": [
            {
              "lessThan": "1.11.0",
              "status": "affected",
              "version": "1.4.0",
              "versionType": "semver"
            }
          ]
        },
        {
          "collectionURL": "https://github.com",
          "cpes": [
            "cpe:2.3:a:ash-project:ash_graphql:*:*:*:*:*:*:*:*"
          ],
          "defaultStatus": "unaffected",
          "modules": [
            "\u0027Elixir.AshGraphql.Subscription.Batcher\u0027"
          ],
          "packageName": "ash-project/ash_graphql",
          "packageURL": "pkg:github/ash-project/ash_graphql",
          "product": "ash_graphql",
          "programFiles": [
            "lib/subscription/batcher.ex"
          ],
          "programRoutines": [
            {
              "name": "\u0027Elixir.AshGraphql.Subscription.Batcher\u0027:do_send/5"
            }
          ],
          "repo": "https://github.com/ash-project/ash_graphql",
          "vendor": "ash-project",
          "versions": [
            {
              "lessThan": "e8e67f39add2ce0771e6db5f086afe68ba212c57",
              "status": "affected",
              "version": "3cb2c9870d050c7c4bba6c211aaed97d732f7e81",
              "versionType": "git"
            }
          ]
        }
      ],
      "configurations": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eThe application exposes \u003ccode\u003eash_graphql\u003c/code\u003e subscriptions with Ash authorization enabled, and two or more notifications are batched together within the batch interval (the default path).\u003c/p\u003e"
            },
            {
              "base64": false,
              "type": "text/markdown",
              "value": "The application exposes `ash_graphql` subscriptions with Ash authorization enabled, and two or more notifications are batched together within the batch interval (the default path)."
            }
          ],
          "value": "The application exposes ash_graphql subscriptions with Ash authorization enabled, and two or more notifications are batched together within the batch interval (the default path)."
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:a:ash-project:ash_graphql:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "1.11.0",
                  "versionStartIncluding": "1.4.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": "Zach Daniel / Ash Project"
        },
        {
          "lang": "en",
          "type": "coordinator",
          "value": "Jonatan M\u00e4nnchen / EEF"
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eIncorrect Authorization vulnerability in ash-project ash_graphql delivers GraphQL subscription payloads for records a subscriber is not authorized to see.\u003c/p\u003e\n\u003cp\u003eIn \u003ccode\u003eAshGraphql.Subscription.Batcher\u003c/code\u003e, \u003ccode\u003edo_send/5\u003c/code\u003e resolves the first notification of a batch and filters it with \u003ccode\u003eshould_send?/1\u003c/code\u003e, which drops results whose errors are coded \u003ccode\u003eforbidden\u003c/code\u003e or \u003ccode\u003enot_found\u003c/code\u003e or carry no code, precisely so that unauthorized results are not disclosed. The remaining notifications in the batch are read from the process dictionary, re-run through the pipeline, and appended to the outgoing results without that filter. They reach \u003ccode\u003epubsub.publish_subscription/2\u003c/code\u003e, and the \u003ccode\u003enot is_nil(record)\u003c/code\u003e guard drops only nil records, not error-carrying results. Any two qualifying notifications arriving within the default one-second batch interval suffice, and batching is the default path. The fix applies \u003ccode\u003eshould_send?/1\u003c/code\u003e to the whole batch.\u003c/p\u003e\n\u003cp\u003eThis issue affects ash_graphql: from 1.4.0 before 1.11.0.\u003c/p\u003e"
            },
            {
              "base64": false,
              "type": "text/markdown",
              "value": "Incorrect Authorization vulnerability in ash-project ash_graphql delivers GraphQL subscription payloads for records a subscriber is not authorized to see.\n\nIn `AshGraphql.Subscription.Batcher`, `do_send/5` resolves the first notification of a batch and filters it with `should_send?/1`, which drops results whose errors are coded `forbidden` or `not_found` or carry no code, precisely so that unauthorized results are not disclosed. The remaining notifications in the batch are read from the process dictionary, re-run through the pipeline, and appended to the outgoing results without that filter. They reach `pubsub.publish_subscription/2`, and the `not is_nil(record)` guard drops only nil records, not error-carrying results. Any two qualifying notifications arriving within the default one-second batch interval suffice, and batching is the default path. The fix applies `should_send?/1` to the whole batch.\n\nThis issue affects ash_graphql: from 1.4.0 before 1.11.0."
            }
          ],
          "value": "Incorrect Authorization vulnerability in ash-project ash_graphql delivers GraphQL subscription payloads for records a subscriber is not authorized to see.\n\nIn AshGraphql.Subscription.Batcher, do_send/5 resolves the first notification of a batch and filters it with should_send?/1, which drops results whose errors are coded forbidden or not_found or carry no code, precisely so that unauthorized results are not disclosed. The remaining notifications in the batch are read from the process dictionary, re-run through the pipeline, and appended to the outgoing results without that filter. They reach pubsub.publish_subscription/2, and the not is_nil(record) guard drops only nil records, not error-carrying results. Any two qualifying notifications arriving within the default one-second batch interval suffice, and batching is the default path. The fix applies should_send?/1 to the whole batch.\n\nThis issue affects ash_graphql: from 1.4.0 before 1.11.0."
        }
      ],
      "impacts": [
        {
          "capecId": "CAPEC-1",
          "descriptions": [
            {
              "lang": "en",
              "value": "CAPEC-1 Accessing Functionality Not Properly Constrained by ACLs"
            }
          ]
        }
      ],
      "metrics": [
        {
          "cvssV4_0": {
            "Automatable": "NOT_DEFINED",
            "Recovery": "NOT_DEFINED",
            "Safety": "NOT_DEFINED",
            "attackComplexity": "LOW",
            "attackRequirements": "PRESENT",
            "attackVector": "NETWORK",
            "baseScore": 2.3,
            "baseSeverity": "LOW",
            "privilegesRequired": "LOW",
            "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:L/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-863",
              "description": "CWE-863 Incorrect Authorization",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-30T18:20:35.564Z",
        "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "shortName": "EEF"
      },
      "references": [
        {
          "tags": [
            "vendor-advisory",
            "related"
          ],
          "url": "https://github.com/ash-project/ash_graphql/security/advisories/GHSA-j684-hch4-q888"
        },
        {
          "tags": [
            "related"
          ],
          "url": "https://cna.erlef.org/cves/CVE-2026-81643.html"
        },
        {
          "tags": [
            "related"
          ],
          "url": "https://osv.dev/vulnerability/EEF-CVE-2026-81643"
        },
        {
          "tags": [
            "patch"
          ],
          "url": "https://github.com/ash-project/ash_graphql/commit/e8e67f39add2ce0771e6db5f086afe68ba212c57"
        }
      ],
      "source": {
        "discovery": "EXTERNAL"
      },
      "title": "Broken access control in AshGraphql subscription batcher applies authorization suppression to only the first notification"
    }
  },
  "cveMetadata": {
    "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
    "assignerShortName": "EEF",
    "cveId": "CVE-2026-81643",
    "datePublished": "2026-08-30T18:20:35.564Z",
    "dateReserved": "2026-08-30T04:45:01.564Z",
    "dateUpdated": "2026-08-31T15:01:05.884Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

CVE-2026-81439 (GCVE-0-2026-81439)

Vulnerability from cvelistv5 – Published: 2026-09-17 10:55 – Updated: 2026-09-17 14:28
VLAI
Summary
Dell OpenManage Server Administrator, versions prior to 11.1.0.3, contains an Incorrect Authorization vulnerability. A low privileged attacker with remote access could potentially exploit this vulnerability, leading to Protection mechanism bypass.
SSVC
Exploitation: none Automatable: no Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-09-17 14:27 UTC
CWE
  • CWE-863 - Incorrect Authorization
References
Date Public
2026-09-08 06:30
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-81439",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-09-17T14:27:35.234530Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-09-17T14:28:20.636Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "OpenManage Server Administrator Managed Node (Patch) for Windows",
          "vendor": "Dell",
          "versions": [
            {
              "lessThan": "11.1.0.3",
              "status": "affected",
              "version": "0",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "unaffected",
          "product": "OpenManage Server Administrator Managed Node for RHEL 8.10",
          "vendor": "Dell",
          "versions": [
            {
              "lessThan": "11.1.0.3",
              "status": "affected",
              "version": "0",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "unaffected",
          "product": "OpenManage Server Administrator Managed Node for RHEL 9.4",
          "vendor": "Dell",
          "versions": [
            {
              "lessThan": "11.1.0.3",
              "status": "affected",
              "version": "0",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "unaffected",
          "product": "OpenManage Server Administrator Managed Node for SLES 15",
          "vendor": "Dell",
          "versions": [
            {
              "lessThan": "11.1.0.3",
              "status": "affected",
              "version": "0",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "unaffected",
          "product": "OpenManage Server Administrator Managed Node for Ubuntu 22.04",
          "vendor": "Dell",
          "versions": [
            {
              "lessThan": "11.1.0.3",
              "status": "affected",
              "version": "0",
              "versionType": "semver"
            }
          ]
        }
      ],
      "datePublic": "2026-09-08T06:30:00.000Z",
      "descriptions": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "Dell OpenManage Server Administrator, versions prior to 11.1.0.3, contains an Incorrect Authorization vulnerability. A low privileged attacker with remote access could potentially exploit this vulnerability, leading to Protection mechanism bypass."
            }
          ],
          "value": "Dell OpenManage Server Administrator, versions prior to 11.1.0.3, contains an Incorrect Authorization vulnerability. A low privileged attacker with remote access could potentially exploit this vulnerability, leading to Protection mechanism bypass."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "attackComplexity": "HIGH",
            "attackVector": "NETWORK",
            "availabilityImpact": "NONE",
            "baseScore": 3.7,
            "baseSeverity": "LOW",
            "confidentialityImpact": "LOW",
            "integrityImpact": "LOW",
            "privilegesRequired": "LOW",
            "scope": "UNCHANGED",
            "userInteraction": "REQUIRED",
            "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:U/C:L/I:L/A:N",
            "version": "3.1"
          },
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-863",
              "description": "CWE-863: Incorrect Authorization",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-17T10:55:55.774Z",
        "orgId": "c550e75a-17ff-4988-97f0-544cde3820fe",
        "shortName": "dell"
      },
      "references": [
        {
          "tags": [
            "vendor-advisory"
          ],
          "url": "https://www.dell.com/support/kbdoc/en-us/000506586/dsa-2026-403-security-update-for-dell-openmanage-server-administrator-omsa-network-access-vulnerabilitiesv"
        }
      ],
      "source": {
        "discovery": "UNKNOWN"
      },
      "x_generator": {
        "engine": "Vulnogram 1.0.5"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "c550e75a-17ff-4988-97f0-544cde3820fe",
    "assignerShortName": "dell",
    "cveId": "CVE-2026-81439",
    "datePublished": "2026-09-17T10:55:55.774Z",
    "dateReserved": "2026-08-26T20:04:54.730Z",
    "dateUpdated": "2026-09-17T14:28:20.636Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

CVE-2026-81318 (GCVE-0-2026-81318)

Vulnerability from cvelistv5 – Published: 2026-08-30 11:56 – Updated: 2026-08-31 16:59
VLAI
Title
Distinct-query aggregate drops the tenant schema prefix, leaking across tenants in AshSql
Summary
Incorrect Authorization vulnerability in ash-project ash_sql allows a caller in a schema-based multitenant application to receive aggregate values computed from another tenant's rows. When an aggregate is computed over a distinct query, AshSql.AggregateQuery.add_single_aggs/5 rebuilds the outer query from query.from.source alone, which is only the {table, schema} tuple and does not carry query.prefix or query.from.prefix. For strategy(:context) multitenancy those hold the tenant schema, so the rebuilt outer query reads the repo's default schema while the inner correlated subquery still reads the tenant schema, and the two are joined only on primary key. The aggregate, and any relationship join added off the prefix-less binding, is then computed against the wrong tenant's rows. The neighbouring limit and exists branches instead wrap the query with subquery/1, which preserves the prefix. This issue affects ash_sql: from 0.1.0 before 0.7.1.
SSVC
Exploitation: poc Automatable: no Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-08-31 16:59 UTC
CWE
  • CWE-863 - Incorrect Authorization
Assigner
Impacted products
Vendor Product Version
ash-project ash_sql Affected: 0.1.0 , < 0.7.1 (semver)
    cpe:2.3:a:ash-project:ash_sql:*:*:*:*:*:*:*:*
Create a notification for this product.
ash-project ash_sql Affected: dd092ed273dec7bd2194352f24a39229fc8ae68b , < 3d95478cc9e1d5bfaf6144fe9b9793f29e5ab889 (git)
    cpe:2.3:a:ash-project:ash_sql:*:*:*:*:*:*:*:*
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-81318",
                "options": [
                  {
                    "Exploitation": "poc"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-08-31T16:59:17.533248Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-08-31T16:59:41.443Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "references": [
          {
            "tags": [
              "exploit"
            ],
            "url": "https://github.com/ash-project/ash_sql/security/advisories/GHSA-ww8j-58rc-f8h3"
          }
        ],
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "collectionURL": "https://repo.hex.pm",
          "cpes": [
            "cpe:2.3:a:ash-project:ash_sql:*:*:*:*:*:*:*:*"
          ],
          "defaultStatus": "unaffected",
          "modules": [
            "\u0027Elixir.AshSql.AggregateQuery\u0027"
          ],
          "packageName": "ash_sql",
          "packageURL": "pkg:hex/ash_sql",
          "product": "ash_sql",
          "programFiles": [
            "lib/aggregate_query.ex"
          ],
          "programRoutines": [
            {
              "name": "\u0027Elixir.AshSql.AggregateQuery\u0027:add_single_aggs/5"
            }
          ],
          "repo": "https://github.com/ash-project/ash_sql",
          "vendor": "ash-project",
          "versions": [
            {
              "lessThan": "0.7.1",
              "status": "affected",
              "version": "0.1.0",
              "versionType": "semver"
            }
          ]
        },
        {
          "collectionURL": "https://github.com",
          "cpes": [
            "cpe:2.3:a:ash-project:ash_sql:*:*:*:*:*:*:*:*"
          ],
          "defaultStatus": "unaffected",
          "modules": [
            "\u0027Elixir.AshSql.AggregateQuery\u0027"
          ],
          "packageName": "ash-project/ash_sql",
          "packageURL": "pkg:github/ash-project/ash_sql",
          "product": "ash_sql",
          "programFiles": [
            "lib/aggregate_query.ex"
          ],
          "programRoutines": [
            {
              "name": "\u0027Elixir.AshSql.AggregateQuery\u0027:add_single_aggs/5"
            }
          ],
          "repo": "https://github.com/ash-project/ash_sql",
          "vendor": "ash-project",
          "versions": [
            {
              "lessThan": "3d95478cc9e1d5bfaf6144fe9b9793f29e5ab889",
              "status": "affected",
              "version": "dd092ed273dec7bd2194352f24a39229fc8ae68b",
              "versionType": "git"
            }
          ]
        }
      ],
      "configurations": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eAn application must use AshPostgres schema-based (\u003ccode\u003estrategy(:context)\u003c/code\u003e) multitenancy and compute an aggregate over a \u003ccode\u003edistinct\u003c/code\u003e query (for example an aggregate whose query filters across a to-many relationship).\u003c/p\u003e"
            },
            {
              "base64": false,
              "type": "text/markdown",
              "value": "An application must use AshPostgres schema-based (`strategy(:context)`) multitenancy and compute an aggregate over a `distinct` query (for example an aggregate whose query filters across a to-many relationship)."
            }
          ],
          "value": "An application must use AshPostgres schema-based (strategy(:context)) multitenancy and compute an aggregate over a distinct query (for example an aggregate whose query filters across a to-many relationship)."
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:a:ash-project:ash_sql:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "0.7.1",
                  "versionStartIncluding": "0.1.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": "Zach Daniel / Ash Project"
        },
        {
          "lang": "en",
          "type": "coordinator",
          "value": "Jonatan M\u00e4nnchen / EEF"
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eIncorrect Authorization vulnerability in ash-project ash_sql allows a caller in a schema-based multitenant application to receive aggregate values computed from another tenant\u0027s rows.\u003c/p\u003e\n\u003cp\u003eWhen an aggregate is computed over a \u003ccode\u003edistinct\u003c/code\u003e query, \u003ccode\u003eAshSql.AggregateQuery.add_single_aggs/5\u003c/code\u003e rebuilds the outer query from \u003ccode\u003equery.from.source\u003c/code\u003e alone, which is only the \u003ccode\u003e{table, schema}\u003c/code\u003e tuple and does not carry \u003ccode\u003equery.prefix\u003c/code\u003e or \u003ccode\u003equery.from.prefix\u003c/code\u003e. For \u003ccode\u003estrategy(:context)\u003c/code\u003e multitenancy those hold the tenant schema, so the rebuilt outer query reads the repo\u0027s default schema while the inner correlated subquery still reads the tenant schema, and the two are joined only on primary key. The aggregate, and any relationship join added off the prefix-less binding, is then computed against the wrong tenant\u0027s rows. The neighbouring limit and exists branches instead wrap the query with \u003ccode\u003esubquery/1\u003c/code\u003e, which preserves the prefix.\u003c/p\u003e\n\u003cp\u003eThis issue affects ash_sql: from 0.1.0 before 0.7.1.\u003c/p\u003e"
            },
            {
              "base64": false,
              "type": "text/markdown",
              "value": "Incorrect Authorization vulnerability in ash-project ash_sql allows a caller in a schema-based multitenant application to receive aggregate values computed from another tenant\u0027s rows.\n\nWhen an aggregate is computed over a `distinct` query, `AshSql.AggregateQuery.add_single_aggs/5` rebuilds the outer query from `query.from.source` alone, which is only the `{table, schema}` tuple and does not carry `query.prefix` or `query.from.prefix`. For `strategy(:context)` multitenancy those hold the tenant schema, so the rebuilt outer query reads the repo\u0027s default schema while the inner correlated subquery still reads the tenant schema, and the two are joined only on primary key. The aggregate, and any relationship join added off the prefix-less binding, is then computed against the wrong tenant\u0027s rows. The neighbouring limit and exists branches instead wrap the query with `subquery/1`, which preserves the prefix.\n\nThis issue affects ash_sql: from 0.1.0 before 0.7.1."
            }
          ],
          "value": "Incorrect Authorization vulnerability in ash-project ash_sql allows a caller in a schema-based multitenant application to receive aggregate values computed from another tenant\u0027s rows.\n\nWhen an aggregate is computed over a distinct query, AshSql.AggregateQuery.add_single_aggs/5 rebuilds the outer query from query.from.source alone, which is only the {table, schema} tuple and does not carry query.prefix or query.from.prefix. For strategy(:context) multitenancy those hold the tenant schema, so the rebuilt outer query reads the repo\u0027s default schema while the inner correlated subquery still reads the tenant schema, and the two are joined only on primary key. The aggregate, and any relationship join added off the prefix-less binding, is then computed against the wrong tenant\u0027s rows. The neighbouring limit and exists branches instead wrap the query with subquery/1, which preserves the prefix.\n\nThis issue affects ash_sql: from 0.1.0 before 0.7.1."
        }
      ],
      "impacts": [
        {
          "capecId": "CAPEC-1",
          "descriptions": [
            {
              "lang": "en",
              "value": "CAPEC-1 Accessing Functionality Not Properly Constrained by ACLs"
            }
          ]
        }
      ],
      "metrics": [
        {
          "cvssV4_0": {
            "Automatable": "NOT_DEFINED",
            "Recovery": "NOT_DEFINED",
            "Safety": "NOT_DEFINED",
            "attackComplexity": "LOW",
            "attackRequirements": "PRESENT",
            "attackVector": "LOCAL",
            "baseScore": 2.1,
            "baseSeverity": "LOW",
            "privilegesRequired": "NONE",
            "providerUrgency": "NOT_DEFINED",
            "subAvailabilityImpact": "NONE",
            "subConfidentialityImpact": "NONE",
            "subIntegrityImpact": "NONE",
            "userInteraction": "NONE",
            "valueDensity": "NOT_DEFINED",
            "vectorString": "CVSS:4.0/AV:L/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-863",
              "description": "CWE-863 Incorrect Authorization",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-30T11:56:52.921Z",
        "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "shortName": "EEF"
      },
      "references": [
        {
          "tags": [
            "vendor-advisory",
            "related"
          ],
          "url": "https://github.com/ash-project/ash_sql/security/advisories/GHSA-ww8j-58rc-f8h3"
        },
        {
          "tags": [
            "related"
          ],
          "url": "https://cna.erlef.org/cves/CVE-2026-81318.html"
        },
        {
          "tags": [
            "related"
          ],
          "url": "https://osv.dev/vulnerability/EEF-CVE-2026-81318"
        },
        {
          "tags": [
            "patch"
          ],
          "url": "https://github.com/ash-project/ash_sql/commit/3d95478cc9e1d5bfaf6144fe9b9793f29e5ab889"
        }
      ],
      "source": {
        "discovery": "EXTERNAL"
      },
      "title": "Distinct-query aggregate drops the tenant schema prefix, leaking across tenants in AshSql"
    }
  },
  "cveMetadata": {
    "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
    "assignerShortName": "EEF",
    "cveId": "CVE-2026-81318",
    "datePublished": "2026-08-30T11:56:52.921Z",
    "dateReserved": "2026-08-30T02:30:02.111Z",
    "dateUpdated": "2026-08-31T16:59:41.443Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

CVE-2026-81316 (GCVE-0-2026-81316)

Vulnerability from cvelistv5 – Published: 2026-08-30 11:59 – Updated: 2026-08-31 14:59
VLAI
Title
Same-named aggregates with differing filters are conflated in AshSql
Summary
Incorrect Authorization vulnerability in ash-project ash_sql allows a caller to receive an aggregate value computed over rows a more restrictive filter should have excluded, disclosing counts, sums, or lists across an authorization or tenancy boundary. AshSql.Aggregate.different_queries?/2 reports two aggregate queries as different only when their filter and their sort both differ. Aggregate queries rarely carry a sort, so two aggregates that share a name but carry entirely different filters compare as identical. The colliding aggregate keeps its name and is treated as already computed, and select_aggregates returns the first-registered variant's value. The same name reaches the builder twice with different filters when actor or tenant context is stamped into each aggregate's query, so a narrowly filtered aggregate can be served the value of a previously registered broad one. This issue affects ash_sql: from 0.1.0 before 0.7.1.
SSVC
Exploitation: poc Automatable: no Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-08-31 14:58 UTC
CWE
  • CWE-863 - Incorrect Authorization
Assigner
Impacted products
Vendor Product Version
ash-project ash_sql Affected: 0.1.0 , < 0.7.1 (semver)
    cpe:2.3:a:ash-project:ash_sql:*:*:*:*:*:*:*:*
Create a notification for this product.
ash-project ash_sql Affected: dd092ed273dec7bd2194352f24a39229fc8ae68b , < 4b95468e5434a3526571414219719c9518be6694 (git)
    cpe:2.3:a:ash-project:ash_sql:*:*:*:*:*:*:*:*
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-81316",
                "options": [
                  {
                    "Exploitation": "poc"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-08-31T14:58:05.625889Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-08-31T14:59:22.223Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "references": [
          {
            "tags": [
              "exploit"
            ],
            "url": "https://github.com/ash-project/ash_sql/security/advisories/GHSA-v7pf-wjxc-7j5m"
          }
        ],
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "collectionURL": "https://repo.hex.pm",
          "cpes": [
            "cpe:2.3:a:ash-project:ash_sql:*:*:*:*:*:*:*:*"
          ],
          "defaultStatus": "unaffected",
          "modules": [
            "\u0027Elixir.AshSql.Aggregate\u0027"
          ],
          "packageName": "ash_sql",
          "packageURL": "pkg:hex/ash_sql",
          "product": "ash_sql",
          "programFiles": [
            "lib/aggregate.ex"
          ],
          "programRoutines": [
            {
              "name": "\u0027Elixir.AshSql.Aggregate\u0027:different_queries?/2"
            },
            {
              "name": "\u0027Elixir.AshSql.Aggregate\u0027:add_aggregates/6"
            }
          ],
          "repo": "https://github.com/ash-project/ash_sql",
          "vendor": "ash-project",
          "versions": [
            {
              "lessThan": "0.7.1",
              "status": "affected",
              "version": "0.1.0",
              "versionType": "semver"
            }
          ]
        },
        {
          "collectionURL": "https://github.com",
          "cpes": [
            "cpe:2.3:a:ash-project:ash_sql:*:*:*:*:*:*:*:*"
          ],
          "defaultStatus": "unaffected",
          "modules": [
            "\u0027Elixir.AshSql.Aggregate\u0027"
          ],
          "packageName": "ash-project/ash_sql",
          "packageURL": "pkg:github/ash-project/ash_sql",
          "product": "ash_sql",
          "programFiles": [
            "lib/aggregate.ex"
          ],
          "programRoutines": [
            {
              "name": "\u0027Elixir.AshSql.Aggregate\u0027:different_queries?/2"
            },
            {
              "name": "\u0027Elixir.AshSql.Aggregate\u0027:add_aggregates/6"
            }
          ],
          "repo": "https://github.com/ash-project/ash_sql",
          "vendor": "ash-project",
          "versions": [
            {
              "lessThan": "4b95468e5434a3526571414219719c9518be6694",
              "status": "affected",
              "version": "dd092ed273dec7bd2194352f24a39229fc8ae68b",
              "versionType": "git"
            }
          ]
        }
      ],
      "configurations": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eAn application must compute an aggregate whose name also reaches the query builder under a second, differently filtered context (for example the same aggregate used both as a filter dependency and loaded, where actor or tenant scoping stamps distinct filters onto each).\u003c/p\u003e"
            },
            {
              "base64": false,
              "type": "text/markdown",
              "value": "An application must compute an aggregate whose name also reaches the query builder under a second, differently filtered context (for example the same aggregate used both as a filter dependency and loaded, where actor or tenant scoping stamps distinct filters onto each)."
            }
          ],
          "value": "An application must compute an aggregate whose name also reaches the query builder under a second, differently filtered context (for example the same aggregate used both as a filter dependency and loaded, where actor or tenant scoping stamps distinct filters onto each)."
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:a:ash-project:ash_sql:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "0.7.1",
                  "versionStartIncluding": "0.1.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": "Zach Daniel / Ash Project"
        },
        {
          "lang": "en",
          "type": "coordinator",
          "value": "Jonatan M\u00e4nnchen / EEF"
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eIncorrect Authorization vulnerability in ash-project ash_sql allows a caller to receive an aggregate value computed over rows a more restrictive filter should have excluded, disclosing counts, sums, or lists across an authorization or tenancy boundary.\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003eAshSql.Aggregate.different_queries?/2\u003c/code\u003e reports two aggregate queries as different only when their filter and their sort both differ. Aggregate queries rarely carry a sort, so two aggregates that share a name but carry entirely different filters compare as identical. The colliding aggregate keeps its name and is treated as already computed, and \u003ccode\u003eselect_aggregates\u003c/code\u003e returns the first-registered variant\u0027s value. The same name reaches the builder twice with different filters when actor or tenant context is stamped into each aggregate\u0027s query, so a narrowly filtered aggregate can be served the value of a previously registered broad one.\u003c/p\u003e\n\u003cp\u003eThis issue affects ash_sql: from 0.1.0 before 0.7.1.\u003c/p\u003e"
            },
            {
              "base64": false,
              "type": "text/markdown",
              "value": "Incorrect Authorization vulnerability in ash-project ash_sql allows a caller to receive an aggregate value computed over rows a more restrictive filter should have excluded, disclosing counts, sums, or lists across an authorization or tenancy boundary.\n\n`AshSql.Aggregate.different_queries?/2` reports two aggregate queries as different only when their filter and their sort both differ. Aggregate queries rarely carry a sort, so two aggregates that share a name but carry entirely different filters compare as identical. The colliding aggregate keeps its name and is treated as already computed, and `select_aggregates` returns the first-registered variant\u0027s value. The same name reaches the builder twice with different filters when actor or tenant context is stamped into each aggregate\u0027s query, so a narrowly filtered aggregate can be served the value of a previously registered broad one.\n\nThis issue affects ash_sql: from 0.1.0 before 0.7.1."
            }
          ],
          "value": "Incorrect Authorization vulnerability in ash-project ash_sql allows a caller to receive an aggregate value computed over rows a more restrictive filter should have excluded, disclosing counts, sums, or lists across an authorization or tenancy boundary.\n\nAshSql.Aggregate.different_queries?/2 reports two aggregate queries as different only when their filter and their sort both differ. Aggregate queries rarely carry a sort, so two aggregates that share a name but carry entirely different filters compare as identical. The colliding aggregate keeps its name and is treated as already computed, and select_aggregates returns the first-registered variant\u0027s value. The same name reaches the builder twice with different filters when actor or tenant context is stamped into each aggregate\u0027s query, so a narrowly filtered aggregate can be served the value of a previously registered broad one.\n\nThis issue affects ash_sql: from 0.1.0 before 0.7.1."
        }
      ],
      "impacts": [
        {
          "capecId": "CAPEC-1",
          "descriptions": [
            {
              "lang": "en",
              "value": "CAPEC-1 Accessing Functionality Not Properly Constrained by ACLs"
            }
          ]
        }
      ],
      "metrics": [
        {
          "cvssV4_0": {
            "Automatable": "NOT_DEFINED",
            "Recovery": "NOT_DEFINED",
            "Safety": "NOT_DEFINED",
            "attackComplexity": "LOW",
            "attackRequirements": "PRESENT",
            "attackVector": "LOCAL",
            "baseScore": 2.1,
            "baseSeverity": "LOW",
            "privilegesRequired": "NONE",
            "providerUrgency": "NOT_DEFINED",
            "subAvailabilityImpact": "NONE",
            "subConfidentialityImpact": "NONE",
            "subIntegrityImpact": "NONE",
            "userInteraction": "NONE",
            "valueDensity": "NOT_DEFINED",
            "vectorString": "CVSS:4.0/AV:L/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-863",
              "description": "CWE-863 Incorrect Authorization",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-30T11:59:41.945Z",
        "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "shortName": "EEF"
      },
      "references": [
        {
          "tags": [
            "vendor-advisory",
            "related"
          ],
          "url": "https://github.com/ash-project/ash_sql/security/advisories/GHSA-v7pf-wjxc-7j5m"
        },
        {
          "tags": [
            "related"
          ],
          "url": "https://cna.erlef.org/cves/CVE-2026-81316.html"
        },
        {
          "tags": [
            "related"
          ],
          "url": "https://osv.dev/vulnerability/EEF-CVE-2026-81316"
        },
        {
          "tags": [
            "patch"
          ],
          "url": "https://github.com/ash-project/ash_sql/commit/4b95468e5434a3526571414219719c9518be6694"
        }
      ],
      "source": {
        "discovery": "EXTERNAL"
      },
      "title": "Same-named aggregates with differing filters are conflated in AshSql"
    }
  },
  "cveMetadata": {
    "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
    "assignerShortName": "EEF",
    "cveId": "CVE-2026-81316",
    "datePublished": "2026-08-30T11:59:41.945Z",
    "dateReserved": "2026-08-29T23:30:01.223Z",
    "dateUpdated": "2026-08-31T14:59:22.223Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

CVE-2026-81178 (GCVE-0-2026-81178)

Vulnerability from cvelistv5 – Published: 2026-09-18 17:44 – Updated: 2026-09-18 18:03
VLAI
Title
SysReptor: Anonymous note-share link discloses project member identities and non-shared note activity
Summary
SysReptor is a fully customizable pentest reporting platform. Prior to 2026.55, an unauthenticated holder of a public note share link receives project-wide collaborative editing metadata because the public share consumer joins the same collaboration group as authenticated project members and forwards client information, connection, awareness, and deletion events without consistently restricting them to the shared note subtree. The disclosed metadata can identify project members through usernames and names and reveal the identifiers and live editing activity of notes that were not shared. The content of non-shared notes remains protected, and the issue does not grant write access. This issue is fixed in version 2026.55.
SSVC
Exploitation: none Automatable: no Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-09-18 18:03 UTC
CWE
  • CWE-863 - Incorrect Authorization
Impacted products
Vendor Product Version
Syslifters sysreptor Affected: < 2026.55
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-81178",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-09-18T18:03:32.395858Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-09-18T18:03:40.523Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "product": "sysreptor",
          "vendor": "Syslifters",
          "versions": [
            {
              "status": "affected",
              "version": "\u003c 2026.55"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "SysReptor is a fully customizable pentest reporting platform. Prior to 2026.55, an unauthenticated holder of a public note share link receives project-wide collaborative editing metadata because the public share consumer joins the same collaboration group as authenticated project members and forwards client information, connection, awareness, and deletion events without consistently restricting them to the shared note subtree. The disclosed metadata can identify project members through usernames and names and reveal the identifiers and live editing activity of notes that were not shared. The content of non-shared notes remains protected, and the issue does not grant write access. This issue is fixed in version 2026.55."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "attackComplexity": "LOW",
            "attackVector": "NETWORK",
            "availabilityImpact": "NONE",
            "baseScore": 3.5,
            "baseSeverity": "LOW",
            "confidentialityImpact": "LOW",
            "integrityImpact": "NONE",
            "privilegesRequired": "LOW",
            "scope": "UNCHANGED",
            "userInteraction": "REQUIRED",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:L/I:N/A:N",
            "version": "3.1"
          }
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-863",
              "description": "CWE-863: Incorrect Authorization",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-18T17:44:42.562Z",
        "orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
        "shortName": "GitHub_M"
      },
      "references": [
        {
          "name": "https://github.com/Syslifters/sysreptor/security/advisories/GHSA-926c-j47w-8f9c",
          "tags": [
            "x_refsource_CONFIRM"
          ],
          "url": "https://github.com/Syslifters/sysreptor/security/advisories/GHSA-926c-j47w-8f9c"
        },
        {
          "name": "https://github.com/Syslifters/sysreptor/commit/1e52e5058b0c7f420dc45c87ad72e7a4585477b1",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/Syslifters/sysreptor/commit/1e52e5058b0c7f420dc45c87ad72e7a4585477b1"
        },
        {
          "name": "https://github.com/Syslifters/sysreptor/releases/tag/2026.55",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/Syslifters/sysreptor/releases/tag/2026.55"
        }
      ],
      "source": {
        "advisory": "GHSA-926c-j47w-8f9c",
        "discovery": "UNKNOWN"
      },
      "title": "SysReptor: Anonymous note-share link discloses project member identities and non-shared note activity"
    }
  },
  "cveMetadata": {
    "assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
    "assignerShortName": "GitHub_M",
    "cveId": "CVE-2026-81178",
    "datePublished": "2026-09-18T17:44:42.562Z",
    "dateReserved": "2026-08-26T16:26:08.967Z",
    "dateUpdated": "2026-09-18T18:03:40.523Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

CVE-2026-81165 (GCVE-0-2026-81165)

Vulnerability from cvelistv5 – Published: 2026-09-02 12:32 – Updated: 2026-09-02 18:57
VLAI
Title
Blazy - Less critical - Access bypass - SA-CONTRIB-2026-104
Summary
Incorrect Authorization vulnerability in Drupal Blazy allows Forceful Browsing. This issue affects Blazy versions: from 0.0.0 to 3.0.18.
SSVC
Exploitation: none Automatable: no Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-09-02 18:57 UTC
CWE
  • CWE-863 - Incorrect Authorization
References
Impacted products
Vendor Product Version
Drupal Blazy Affected: 0.0.0 , < 3.0.18 (semver)
Create a notification for this product.
Date Public
2026-08-26 17:33
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "cvssV3_1": {
              "attackComplexity": "LOW",
              "attackVector": "NETWORK",
              "availabilityImpact": "NONE",
              "baseScore": 5.3,
              "baseSeverity": "MEDIUM",
              "confidentialityImpact": "LOW",
              "integrityImpact": "NONE",
              "privilegesRequired": "NONE",
              "scope": "UNCHANGED",
              "userInteraction": "NONE",
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N",
              "version": "3.1"
            }
          },
          {
            "other": {
              "content": {
                "id": "CVE-2026-81165",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-09-02T18:57:00.570895Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-09-02T18:57:47.511Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "collectionURL": "https://www.drupal.org/project/blazy",
          "product": "Blazy",
          "repo": "https://git.drupalcode.org/project/blazy",
          "vendor": "Drupal",
          "versions": [
            {
              "lessThan": "3.0.18",
              "status": "affected",
              "version": "0.0.0",
              "versionType": "semver"
            }
          ]
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "finder",
          "value": "Drew Webber (mcdruid)"
        },
        {
          "lang": "en",
          "type": "remediation developer",
          "value": "Gaus Surahman (gausarts)"
        },
        {
          "lang": "en",
          "type": "remediation developer",
          "value": "Drew Webber (mcdruid)"
        },
        {
          "lang": "en",
          "type": "coordinator",
          "value": "Swan Kalata (akalata)"
        },
        {
          "lang": "en",
          "type": "coordinator",
          "value": "Greg Knaddison (greggles)"
        },
        {
          "lang": "en",
          "type": "coordinator",
          "value": "Jess  (xjm)"
        }
      ],
      "datePublic": "2026-08-26T17:33:51.000Z",
      "descriptions": [
        {
          "lang": "en",
          "value": "Incorrect Authorization vulnerability in Drupal Blazy allows Forceful Browsing. This issue affects Blazy versions: from 0.0.0 to 3.0.18."
        }
      ],
      "impacts": [
        {
          "capecId": "CAPEC-87",
          "descriptions": [
            {
              "lang": "en",
              "value": "CAPEC-87 Forceful Browsing"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-863",
              "description": "CWE-863 Incorrect Authorization",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-02T12:32:14.458Z",
        "orgId": "2c85b837-eb8b-40ed-9d74-228c62987387",
        "shortName": "drupal"
      },
      "references": [
        {
          "url": "https://www.drupal.org/sa-contrib-2026-104"
        }
      ],
      "title": "Blazy - Less critical - Access bypass - SA-CONTRIB-2026-104"
    }
  },
  "cveMetadata": {
    "assignerOrgId": "2c85b837-eb8b-40ed-9d74-228c62987387",
    "assignerShortName": "drupal",
    "cveId": "CVE-2026-81165",
    "datePublished": "2026-09-02T12:32:14.458Z",
    "dateReserved": "2026-08-26T16:19:46.916Z",
    "dateUpdated": "2026-09-02T18:57:47.511Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

CVE-2026-81158 (GCVE-0-2026-81158)

Vulnerability from cvelistv5 – Published: 2026-09-02 12:31 – Updated: 2026-09-02 19:08
VLAI
Title
Entity API - Moderately critical - Information disclosure - SA-CONTRIB-2026-113
Summary
Incorrect Authorization vulnerability in Drupal Entity API allows Forceful Browsing. This issue affects Entity API versions: from 0.0.0 to 1.8.0.
SSVC
Exploitation: none Automatable: yes Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-09-02 19:07 UTC
CWE
  • CWE-863 - Incorrect Authorization
References
Impacted products
Vendor Product Version
Drupal Entity API Affected: 0.0.0 , < 1.8.0 (semver)
Create a notification for this product.
Date Public
2026-08-26 17:41
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "cvssV3_1": {
              "attackComplexity": "LOW",
              "attackVector": "NETWORK",
              "availabilityImpact": "NONE",
              "baseScore": 5.3,
              "baseSeverity": "MEDIUM",
              "confidentialityImpact": "LOW",
              "integrityImpact": "NONE",
              "privilegesRequired": "NONE",
              "scope": "UNCHANGED",
              "userInteraction": "NONE",
              "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N",
              "version": "3.1"
            }
          },
          {
            "other": {
              "content": {
                "id": "CVE-2026-81158",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "yes"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-09-02T19:07:57.275513Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-09-02T19:08:00.395Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "collectionURL": "https://www.drupal.org/project/entity",
          "product": "Entity API",
          "repo": "https://git.drupalcode.org/project/entity",
          "vendor": "Drupal",
          "versions": [
            {
              "lessThan": "1.8.0",
              "status": "affected",
              "version": "0.0.0",
              "versionType": "semver"
            }
          ]
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "finder",
          "value": "Douglas Groene (dgroene)"
        },
        {
          "lang": "en",
          "type": "finder",
          "value": "Matt Glaman (mglaman)"
        },
        {
          "lang": "en",
          "type": "remediation developer",
          "value": "Sascha Grossenbacher (berdir)"
        },
        {
          "lang": "en",
          "type": "remediation developer",
          "value": "Klaus Purer (klausi)"
        },
        {
          "lang": "en",
          "type": "remediation developer",
          "value": "Kristiaan Van den Eynde (kristiaanvandeneynde)"
        },
        {
          "lang": "en",
          "type": "remediation developer",
          "value": "Matt Glaman (mglaman)"
        },
        {
          "lang": "en",
          "type": "coordinator",
          "value": "Swan Kalata (akalata)"
        },
        {
          "lang": "en",
          "type": "coordinator",
          "value": "Greg Knaddison (greggles)"
        },
        {
          "lang": "en",
          "type": "coordinator",
          "value": "Lee Rowlands (larowlan)"
        },
        {
          "lang": "en",
          "type": "coordinator",
          "value": "Juraj Nemec (poker10)"
        },
        {
          "lang": "en",
          "type": "coordinator",
          "value": "Jess  (xjm)"
        }
      ],
      "datePublic": "2026-08-26T17:41:31.000Z",
      "descriptions": [
        {
          "lang": "en",
          "value": "Incorrect Authorization vulnerability in Drupal Entity API allows Forceful Browsing. This issue affects Entity API versions: from 0.0.0 to 1.8.0."
        }
      ],
      "impacts": [
        {
          "capecId": "CAPEC-87",
          "descriptions": [
            {
              "lang": "en",
              "value": "CAPEC-87 Forceful Browsing"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-863",
              "description": "CWE-863 Incorrect Authorization",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-02T12:31:49.237Z",
        "orgId": "2c85b837-eb8b-40ed-9d74-228c62987387",
        "shortName": "drupal"
      },
      "references": [
        {
          "url": "https://www.drupal.org/sa-contrib-2026-113"
        }
      ],
      "title": "Entity API - Moderately critical - Information disclosure - SA-CONTRIB-2026-113"
    }
  },
  "cveMetadata": {
    "assignerOrgId": "2c85b837-eb8b-40ed-9d74-228c62987387",
    "assignerShortName": "drupal",
    "cveId": "CVE-2026-81158",
    "datePublished": "2026-09-02T12:31:49.237Z",
    "dateReserved": "2026-08-26T16:19:40.737Z",
    "dateUpdated": "2026-09-02T19:08:00.395Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

CVE-2026-80515 (GCVE-0-2026-80515)

Vulnerability from cvelistv5 – Published: 2026-09-03 13:41 – Updated: 2026-09-03 13:49
VLAI
Summary
In Eclipse Arrowhead versions from 5.0.0 to 5.2.1 the management-authorization gate that protects every /…/mgmt/… REST endpoint decides whether to apply its check by calling request.getRequestURL().toString().contains("/mgmt/"). Tomcat returns getRequestURL() un-decoded, while Spring MVC's DispatcherServlet routes on the decoded path. Requesting /serviceregistry/%6Dgmt/systems (%6D == m) therefore fails the substring check — the filter falls through without authorising — yet is decoded to /serviceregistry/mgmt/systems and dispatched to the management controller. Spring Security's StrictHttpFirewall (active via spring-boot-starter-security in arrowhead-common) only rejects encoded / \ . % ; and null bytes, so percent-encoded ASCII letters pass through. Any authenticated system — regardless of privilege — can reach every management operation, including POST /authentication/mgmt/identities which creates new sysop accounts, yielding full administrative takeover of the local cloud.
SSVC
Exploitation: none Automatable: no Technical Impact: total
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-09-03 13:49 UTC
CWE
  • CWE-647 - Use of Non-Canonical URL paths for authorization decisions
  • CWE-863 - Incorrect Authorization
Impacted products
Vendor Product Version
Eclipse Foundation Eclipse Arrowhead Affected: 5.0.0 , ≤ 5.2.1 (semver)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-80515",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "total"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-09-03T13:49:38.746560Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-09-03T13:49:45.714Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Eclipse Arrowhead",
          "vendor": "Eclipse Foundation",
          "versions": [
            {
              "lessThanOrEqual": "5.2.1",
              "status": "affected",
              "version": "5.0.0",
              "versionType": "semver"
            }
          ]
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "finder",
          "value": "Eclipse Foundation Security Team"
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "In Eclipse Arrowhead versions from 5.0.0 to 5.2.1 the management-authorization gate that protects every \u003ccode\u003e/\u2026/mgmt/\u2026\u003c/code\u003e REST endpoint decides whether to apply its check by calling \u003ccode\u003erequest.getRequestURL().toString().contains(\"/mgmt/\")\u003c/code\u003e. Tomcat returns \u003ccode\u003egetRequestURL()\u003c/code\u003e \u003cstrong\u003eun-decoded\u003c/strong\u003e, while Spring MVC\u0027s \u003ccode\u003eDispatcherServlet\u003c/code\u003e routes on the \u003cstrong\u003edecoded\u003c/strong\u003e path. Requesting \u003ccode\u003e/serviceregistry/%6Dgmt/systems\u003c/code\u003e (\u003ccode\u003e%6D\u003c/code\u003e == \u003ccode\u003em\u003c/code\u003e) therefore fails the substring check \u2014 the filter falls through without authorising \u2014 yet is decoded to \u003ccode\u003e/serviceregistry/mgmt/systems\u003c/code\u003e and dispatched to the management controller. Spring Security\u0027s \u003ccode\u003eStrictHttpFirewall\u003c/code\u003e (active via \u003ccode\u003espring-boot-starter-security\u003c/code\u003e in \u003ccode\u003earrowhead-common\u003c/code\u003e) only rejects encoded \u003ccode\u003e/ \\ . % ;\u003c/code\u003e and null bytes, so percent-encoded ASCII letters pass through. Any authenticated system \u2014 regardless of privilege \u2014 can reach every management operation, including \u003ccode\u003ePOST /authentication/mgmt/identities\u003c/code\u003e which creates new sysop accounts, yielding full administrative takeover of the local cloud."
            }
          ],
          "value": "In Eclipse Arrowhead versions from 5.0.0 to 5.2.1 the management-authorization gate that protects every /\u2026/mgmt/\u2026 REST endpoint decides whether to apply its check by calling request.getRequestURL().toString().contains(\"/mgmt/\"). Tomcat returns getRequestURL() un-decoded, while Spring MVC\u0027s DispatcherServlet routes on the decoded path. Requesting /serviceregistry/%6Dgmt/systems (%6D == m) therefore fails the substring check \u2014 the filter falls through without authorising \u2014 yet is decoded to /serviceregistry/mgmt/systems and dispatched to the management controller. Spring Security\u0027s StrictHttpFirewall (active via spring-boot-starter-security in arrowhead-common) only rejects encoded / \\ . % ; and null bytes, so percent-encoded ASCII letters pass through. Any authenticated system \u2014 regardless of privilege \u2014 can reach every management operation, including POST /authentication/mgmt/identities which creates new sysop accounts, yielding full administrative takeover of the local cloud."
        }
      ],
      "metrics": [
        {
          "cvssV4_0": {
            "Automatable": "NOT_DEFINED",
            "Recovery": "NOT_DEFINED",
            "Safety": "NOT_DEFINED",
            "attackComplexity": "LOW",
            "attackRequirements": "PRESENT",
            "attackVector": "NETWORK",
            "baseScore": 8.9,
            "baseSeverity": "HIGH",
            "exploitMaturity": "NOT_DEFINED",
            "privilegesRequired": "LOW",
            "providerUrgency": "NOT_DEFINED",
            "subAvailabilityImpact": "HIGH",
            "subConfidentialityImpact": "HIGH",
            "subIntegrityImpact": "HIGH",
            "userInteraction": "NONE",
            "valueDensity": "NOT_DEFINED",
            "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:H",
            "version": "4.0",
            "vulnAvailabilityImpact": "NONE",
            "vulnConfidentialityImpact": "HIGH",
            "vulnIntegrityImpact": "HIGH",
            "vulnerabilityResponseEffort": "NOT_DEFINED"
          },
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-647",
              "description": "CWE-647 Use of Non-Canonical URL paths for authorization decisions",
              "lang": "en",
              "type": "CWE"
            }
          ]
        },
        {
          "descriptions": [
            {
              "cweId": "CWE-863",
              "description": "CWE-863 Incorrect Authorization",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-03T13:41:00.347Z",
        "orgId": "e51fbebd-6053-4e49-959f-1b94eeb69a2c",
        "shortName": "eclipse"
      },
      "references": [
        {
          "url": "https://gitlab.eclipse.org/security/vulnerability-reports/-/work_items/752"
        }
      ],
      "source": {
        "discovery": "UNKNOWN"
      },
      "x_generator": {
        "engine": "Vulnogram 1.0.5"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "e51fbebd-6053-4e49-959f-1b94eeb69a2c",
    "assignerShortName": "eclipse",
    "cveId": "CVE-2026-80515",
    "datePublished": "2026-09-03T13:41:00.347Z",
    "dateReserved": "2026-08-26T14:21:43.506Z",
    "dateUpdated": "2026-09-03T13:49:45.714Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

CVE-2026-80223 (GCVE-0-2026-80223)

Vulnerability from cvelistv5 – Published: 2026-08-30 18:27 – Updated: 2026-08-31 15:58
VLAI
Title
Cross-tenant subscription disclosure in AshGraphql authorizes notifications in memory without a tenant-scoped read
Summary
Incorrect Authorization vulnerability in ash-project ash_graphql allows an authenticated subscriber in one tenant to receive another tenant's records over GraphQL subscriptions. The subscription resolver in AshGraphql.Graphql.Resolver authorizes each notification payload in memory: its fast path calls Ash.can/3 with run_queries?: false, which evaluates the read policy filter against the in-memory record via Ash.Expr.eval/2 and never issues a query. Ash applies multitenancy at query-build and data-layer-prefix time, not inside query.filter, so the evaluated policy carries no tenant condition and a tenant-B notification routed to a tenant-A subscriber is emitted whenever the policy filter is true. The single-notification clause has no tenant guard at all, and the batched clause checks only the head of the notification list, so non-head entries authorize purely in memory. A tenant-scoped read is reached only when filter evaluation fails. This issue affects ash_graphql: from 1.4.0 before 1.11.0.
SSVC
Exploitation: poc Automatable: no Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-08-31 15:57 UTC
CWE
  • CWE-863 - Incorrect Authorization
Assigner
Impacted products
Vendor Product Version
ash-project ash_graphql Affected: 1.4.0 , < 1.11.0 (semver)
    cpe:2.3:a:ash-project:ash_graphql:*:*:*:*:*:*:*:*
Create a notification for this product.
ash-project ash_graphql Affected: 4c377e541a2adb6befc651f3dccc6a797bc58ba9 , < 6e30b8b5a04bdeaed5d7514caa6b2d056d8d993e (git)
    cpe:2.3:a:ash-project:ash_graphql:*:*:*:*:*:*:*:*
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-80223",
                "options": [
                  {
                    "Exploitation": "poc"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-08-31T15:57:36.488596Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-08-31T15:58:00.640Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "references": [
          {
            "tags": [
              "exploit"
            ],
            "url": "https://github.com/ash-project/ash_graphql/security/advisories/GHSA-rcqc-59g2-gjg2"
          }
        ],
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "collectionURL": "https://repo.hex.pm",
          "cpes": [
            "cpe:2.3:a:ash-project:ash_graphql:*:*:*:*:*:*:*:*"
          ],
          "defaultStatus": "unaffected",
          "modules": [
            "\u0027Elixir.AshGraphql.Graphql.Resolver\u0027"
          ],
          "packageName": "ash_graphql",
          "packageURL": "pkg:hex/ash_graphql",
          "product": "ash_graphql",
          "programFiles": [
            "lib/graphql/resolver.ex"
          ],
          "programRoutines": [
            {
              "name": "\u0027Elixir.AshGraphql.Graphql.Resolver\u0027:resolve/2"
            }
          ],
          "repo": "https://github.com/ash-project/ash_graphql",
          "vendor": "ash-project",
          "versions": [
            {
              "lessThan": "1.11.0",
              "status": "affected",
              "version": "1.4.0",
              "versionType": "semver"
            }
          ]
        },
        {
          "collectionURL": "https://github.com",
          "cpes": [
            "cpe:2.3:a:ash-project:ash_graphql:*:*:*:*:*:*:*:*"
          ],
          "defaultStatus": "unaffected",
          "modules": [
            "\u0027Elixir.AshGraphql.Graphql.Resolver\u0027"
          ],
          "packageName": "ash-project/ash_graphql",
          "packageURL": "pkg:github/ash-project/ash_graphql",
          "product": "ash_graphql",
          "programFiles": [
            "lib/graphql/resolver.ex"
          ],
          "programRoutines": [
            {
              "name": "\u0027Elixir.AshGraphql.Graphql.Resolver\u0027:resolve/2"
            }
          ],
          "repo": "https://github.com/ash-project/ash_graphql",
          "vendor": "ash-project",
          "versions": [
            {
              "lessThan": "6e30b8b5a04bdeaed5d7514caa6b2d056d8d993e",
              "status": "affected",
              "version": "4c377e541a2adb6befc651f3dccc6a797bc58ba9",
              "versionType": "git"
            }
          ]
        }
      ],
      "configurations": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eThe application exposes \u003ccode\u003eash_graphql\u003c/code\u003e subscriptions on a multitenant resource whose read policy passes on in-memory filter evaluation alone, and where a notification created in one tenant can reach a subscriber scoped to another tenant.\u003c/p\u003e"
            },
            {
              "base64": false,
              "type": "text/markdown",
              "value": "The application exposes `ash_graphql` subscriptions on a multitenant resource whose read policy passes on in-memory filter evaluation alone, and where a notification created in one tenant can reach a subscriber scoped to another tenant."
            }
          ],
          "value": "The application exposes ash_graphql subscriptions on a multitenant resource whose read policy passes on in-memory filter evaluation alone, and where a notification created in one tenant can reach a subscriber scoped to another tenant."
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:a:ash-project:ash_graphql:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "1.11.0",
                  "versionStartIncluding": "1.4.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": "Zach Daniel / Ash Project"
        },
        {
          "lang": "en",
          "type": "coordinator",
          "value": "Jonatan M\u00e4nnchen / EEF"
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eIncorrect Authorization vulnerability in ash-project ash_graphql allows an authenticated subscriber in one tenant to receive another tenant\u0027s records over GraphQL subscriptions.\u003c/p\u003e\n\u003cp\u003eThe subscription resolver in \u003ccode\u003eAshGraphql.Graphql.Resolver\u003c/code\u003e authorizes each notification payload in memory: its fast path calls \u003ccode\u003eAsh.can/3\u003c/code\u003e with \u003ccode\u003erun_queries?: false\u003c/code\u003e, which evaluates the read policy filter against the in-memory record via \u003ccode\u003eAsh.Expr.eval/2\u003c/code\u003e and never issues a query. Ash applies multitenancy at query-build and data-layer-prefix time, not inside \u003ccode\u003equery.filter\u003c/code\u003e, so the evaluated policy carries no tenant condition and a tenant-B notification routed to a tenant-A subscriber is emitted whenever the policy filter is true. The single-notification clause has no tenant guard at all, and the batched clause checks only the head of the notification list, so non-head entries authorize purely in memory. A tenant-scoped read is reached only when filter evaluation fails.\u003c/p\u003e\n\u003cp\u003eThis issue affects ash_graphql: from 1.4.0 before 1.11.0.\u003c/p\u003e"
            },
            {
              "base64": false,
              "type": "text/markdown",
              "value": "Incorrect Authorization vulnerability in ash-project ash_graphql allows an authenticated subscriber in one tenant to receive another tenant\u0027s records over GraphQL subscriptions.\n\nThe subscription resolver in `AshGraphql.Graphql.Resolver` authorizes each notification payload in memory: its fast path calls `Ash.can/3` with `run_queries?: false`, which evaluates the read policy filter against the in-memory record via `Ash.Expr.eval/2` and never issues a query. Ash applies multitenancy at query-build and data-layer-prefix time, not inside `query.filter`, so the evaluated policy carries no tenant condition and a tenant-B notification routed to a tenant-A subscriber is emitted whenever the policy filter is true. The single-notification clause has no tenant guard at all, and the batched clause checks only the head of the notification list, so non-head entries authorize purely in memory. A tenant-scoped read is reached only when filter evaluation fails.\n\nThis issue affects ash_graphql: from 1.4.0 before 1.11.0."
            }
          ],
          "value": "Incorrect Authorization vulnerability in ash-project ash_graphql allows an authenticated subscriber in one tenant to receive another tenant\u0027s records over GraphQL subscriptions.\n\nThe subscription resolver in AshGraphql.Graphql.Resolver authorizes each notification payload in memory: its fast path calls Ash.can/3 with run_queries?: false, which evaluates the read policy filter against the in-memory record via Ash.Expr.eval/2 and never issues a query. Ash applies multitenancy at query-build and data-layer-prefix time, not inside query.filter, so the evaluated policy carries no tenant condition and a tenant-B notification routed to a tenant-A subscriber is emitted whenever the policy filter is true. The single-notification clause has no tenant guard at all, and the batched clause checks only the head of the notification list, so non-head entries authorize purely in memory. A tenant-scoped read is reached only when filter evaluation fails.\n\nThis issue affects ash_graphql: from 1.4.0 before 1.11.0."
        }
      ],
      "impacts": [
        {
          "capecId": "CAPEC-1",
          "descriptions": [
            {
              "lang": "en",
              "value": "CAPEC-1 Accessing Functionality Not Properly Constrained by ACLs"
            }
          ]
        }
      ],
      "metrics": [
        {
          "cvssV4_0": {
            "Automatable": "NOT_DEFINED",
            "Recovery": "NOT_DEFINED",
            "Safety": "NOT_DEFINED",
            "attackComplexity": "LOW",
            "attackRequirements": "NONE",
            "attackVector": "NETWORK",
            "baseScore": 7.1,
            "baseSeverity": "HIGH",
            "privilegesRequired": "LOW",
            "providerUrgency": "NOT_DEFINED",
            "subAvailabilityImpact": "NONE",
            "subConfidentialityImpact": "NONE",
            "subIntegrityImpact": "NONE",
            "userInteraction": "NONE",
            "valueDensity": "NOT_DEFINED",
            "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N",
            "version": "4.0",
            "vulnAvailabilityImpact": "NONE",
            "vulnConfidentialityImpact": "HIGH",
            "vulnIntegrityImpact": "NONE",
            "vulnerabilityResponseEffort": "NOT_DEFINED"
          },
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-863",
              "description": "CWE-863 Incorrect Authorization",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-30T18:27:09.440Z",
        "orgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
        "shortName": "EEF"
      },
      "references": [
        {
          "tags": [
            "vendor-advisory",
            "related"
          ],
          "url": "https://github.com/ash-project/ash_graphql/security/advisories/GHSA-rcqc-59g2-gjg2"
        },
        {
          "tags": [
            "related"
          ],
          "url": "https://cna.erlef.org/cves/CVE-2026-80223.html"
        },
        {
          "tags": [
            "related"
          ],
          "url": "https://osv.dev/vulnerability/EEF-CVE-2026-80223"
        },
        {
          "tags": [
            "patch"
          ],
          "url": "https://github.com/ash-project/ash_graphql/commit/6e30b8b5a04bdeaed5d7514caa6b2d056d8d993e"
        }
      ],
      "source": {
        "discovery": "EXTERNAL"
      },
      "title": "Cross-tenant subscription disclosure in AshGraphql authorizes notifications in memory without a tenant-scoped read"
    }
  },
  "cveMetadata": {
    "assignerOrgId": "6b3ad84c-e1a6-4bf7-a703-f496b71e49db",
    "assignerShortName": "EEF",
    "cveId": "CVE-2026-80223",
    "datePublished": "2026-08-30T18:27:09.440Z",
    "dateReserved": "2026-08-30T15:30:02.097Z",
    "dateUpdated": "2026-08-31T15:58:00.640Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

CVE-2026-80209 (GCVE-0-2026-80209)

Vulnerability from cvelistv5 – Published: 2026-08-27 14:50 – Updated: 2026-08-27 18:50
VLAI
Title
Fonoster through 0.22.7 Incorrect Authorization in the Identity UpdateWorkspace Handler
Summary
The updateWorkspace handler in mods/identity/src/workspaces/createUpdateWorkspace.ts in Fonoster through 0.22.7 invokes the gRPC callback with PERMISSION_DENIED when createIsWorkspaceMember reports that the caller is not a member of the target workspace, but it does not return. Execution continues into prisma.workspace.update, which is scoped by the workspace reference alone, so the rename commits before the second callback is issued and the caller receives a permission error for a write that already succeeded. The gRPC interceptor in mods/common/src/identity/createAuthInterceptor.ts binds the workspace accessKeyId to the caller's token only for paths in workspaceResourceAccess or workspaceResourceOwnerOrAdminAccess, and Identity/UpdateWorkspace is listed in fullIdentityAccess, which the base USER role holds. Any authenticated user can therefore rename an arbitrary workspace in the deployment.
SSVC
Exploitation: poc Automatable: no Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-08-27 18:50 UTC
CWE
  • CWE-863 - Incorrect Authorization
Impacted products
Vendor Product Version
fonoster fonoster Affected: 0 , ≤ 0.22.7 (semver)
Create a notification for this product.
Date Public
2026-07-01 00:00
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-80209",
                "options": [
                  {
                    "Exploitation": "poc"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-08-27T18:50:30.774662Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-08-27T18:50:51.403Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "references": [
          {
            "tags": [
              "exploit"
            ],
            "url": "https://github.com/fonoster/fonoster/issues/861"
          }
        ],
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "fonoster",
          "vendor": "fonoster",
          "versions": [
            {
              "lessThanOrEqual": "0.22.7",
              "status": "affected",
              "version": "0",
              "versionType": "semver"
            }
          ]
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "reporter",
          "value": "George Chen"
        }
      ],
      "datePublic": "2026-07-01T00:00:00.000Z",
      "descriptions": [
        {
          "lang": "en",
          "value": "The updateWorkspace handler in mods/identity/src/workspaces/createUpdateWorkspace.ts in Fonoster through 0.22.7 invokes the gRPC callback with PERMISSION_DENIED when createIsWorkspaceMember reports that the caller is not a member of the target workspace, but it does not return. Execution continues into prisma.workspace.update, which is scoped by the workspace reference alone, so the rename commits before the second callback is issued and the caller receives a permission error for a write that already succeeded. The gRPC interceptor in mods/common/src/identity/createAuthInterceptor.ts binds the workspace accessKeyId to the caller\u0027s token only for paths in workspaceResourceAccess or workspaceResourceOwnerOrAdminAccess, and Identity/UpdateWorkspace is listed in fullIdentityAccess, which the base USER role holds. Any authenticated user can therefore rename an arbitrary workspace in the deployment."
        }
      ],
      "metrics": [
        {
          "cvssV4_0": {
            "attackComplexity": "LOW",
            "attackRequirements": "NONE",
            "attackVector": "NETWORK",
            "baseScore": 5.3,
            "baseSeverity": "MEDIUM",
            "privilegesRequired": "LOW",
            "subAvailabilityImpact": "NONE",
            "subConfidentialityImpact": "NONE",
            "subIntegrityImpact": "NONE",
            "userInteraction": "NONE",
            "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N",
            "version": "4.0",
            "vulnAvailabilityImpact": "NONE",
            "vulnConfidentialityImpact": "NONE",
            "vulnIntegrityImpact": "LOW"
          },
          "format": "CVSS"
        },
        {
          "cvssV3_1": {
            "attackComplexity": "LOW",
            "attackVector": "NETWORK",
            "availabilityImpact": "NONE",
            "baseScore": 4.3,
            "baseSeverity": "MEDIUM",
            "confidentialityImpact": "NONE",
            "integrityImpact": "LOW",
            "privilegesRequired": "LOW",
            "scope": "UNCHANGED",
            "userInteraction": "NONE",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N",
            "version": "3.1"
          },
          "format": "CVSS"
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-863",
              "description": "Incorrect Authorization",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-27T14:50:30.339Z",
        "orgId": "83251b91-4cc7-4094-a5c7-464a1b83ea10",
        "shortName": "VulnCheck"
      },
      "references": [
        {
          "name": "GitHub Issue #861",
          "tags": [
            "issue-tracking"
          ],
          "url": "https://github.com/fonoster/fonoster/issues/861"
        },
        {
          "tags": [
            "product"
          ],
          "url": "https://github.com/fonoster/fonoster"
        },
        {
          "tags": [
            "technical-description"
          ],
          "url": "https://github.com/fonoster/fonoster/blob/v0.22.7/mods/identity/src/workspaces/createUpdateWorkspace.ts#L47"
        },
        {
          "name": "VulnCheck Advisory: Fonoster through 0.22.7 Incorrect Authorization in the Identity UpdateWorkspace Handler",
          "tags": [
            "third-party-advisory"
          ],
          "url": "https://www.vulncheck.com/advisories/fonoster-through-0.22.7-incorrect-authorization-in-the-identity-updateworkspace-handler"
        }
      ],
      "title": "Fonoster through 0.22.7 Incorrect Authorization in the Identity UpdateWorkspace Handler",
      "x_generator": {
        "engine": "vulncheck-endgame"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "83251b91-4cc7-4094-a5c7-464a1b83ea10",
    "assignerShortName": "VulnCheck",
    "cveId": "CVE-2026-80209",
    "datePublished": "2026-08-27T14:50:30.339Z",
    "dateReserved": "2026-08-25T23:15:39.156Z",
    "dateUpdated": "2026-08-27T18:50:51.403Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

Mitigation
Architecture and Design
  • Divide the product into anonymous, normal, privileged, and administrative areas. Reduce the attack surface by carefully mapping roles with data and functionality. Use role-based access control (RBAC) [REF-229] to enforce the roles at the appropriate boundaries.
  • Note that this approach may not protect against horizontal authorization, i.e., it will not protect a user from attacking others with the same role.
Mitigation
Architecture and Design

Ensure that access control checks are performed related to the business logic. These checks may be different than the access control checks that are applied to more generic resources such as files, connections, processes, memory, and database records. For example, a database may restrict access for medical records to a specific database user, but each record might only be intended to be accessible to the patient and the patient's doctor [REF-7].

Mitigation MIT-4.4
Architecture and Design

Strategy: Libraries or Frameworks

  • Use a vetted library or framework that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid.
  • For example, consider using authorization frameworks such as the JAAS Authorization Framework [REF-233] and the OWASP ESAPI Access Control feature [REF-45].
Mitigation
Architecture and Design
  • For web applications, make sure that the access control mechanism is enforced correctly at the server side on every page. Users should not be able to access any unauthorized functionality or information by simply requesting direct access to that page.
  • One way to do this is to ensure that all pages containing sensitive information are not cached, and that all such pages restrict access to requests that are accompanied by an active and authenticated session token associated with a user who has the required permissions to access that page.
Mitigation
System Configuration Installation

Use the access control capabilities of your operating system and server environment and define your access control lists accordingly. Use a "default deny" policy when defining these ACLs.

No CAPEC attack patterns related to this CWE.