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.

2946 vulnerabilities reference this CWE, most recent first.

CVE-2026-88003 (GCVE-0-2026-88003)

Vulnerability from cvelistv5 – Published: 2026-09-25 21:20 – Updated: 2026-09-28 13:04
VLAI
Title
InvoicePlane: Failure to Revoke Administrative Privileges After Role Downgrade
Summary
InvoicePlane is a self-hosted open source application for managing invoices, clients, and payments. Prior to 1.7.2, InvoicePlane fails to revoke administrative privileges after a role downgrade because Admin_Controller trusts the user_type snapshot stored in an existing session instead of revalidating ip_users.user_type. When one administrator downgrades another account, the target's active session continues to authorize administrative requests. The downgraded user can use Users::form() to set user_type back to 1, restoring the database role and making the privilege escalation persistent. This vulnerability is fixed in 1.7.2.
SSVC
Exploitation: poc Automatable: no Technical Impact: total
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-09-28 13:04 UTC
CWE
  • CWE-863 - Incorrect Authorization
Assigner
GitHub_M CNA
Impacted products
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-88003",
                "options": [
                  {
                    "Exploitation": "poc"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "total"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-09-28T13:04:11.170771Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-09-28T13:04:37.691Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "references": [
          {
            "tags": [
              "exploit"
            ],
            "url": "https://github.com/InvoicePlane/InvoicePlane/security/advisories/GHSA-25xj-pj36-wpp8"
          }
        ],
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "product": "InvoicePlane",
          "vendor": "InvoicePlane",
          "versions": [
            {
              "status": "affected",
              "version": "\u003c 1.7.2"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "InvoicePlane is a self-hosted open source application for managing invoices, clients, and payments. Prior to 1.7.2, InvoicePlane fails to revoke administrative privileges after a role downgrade because Admin_Controller trusts the user_type snapshot stored in an existing session instead of revalidating ip_users.user_type. When one administrator downgrades another account, the target\u0027s active session continues to authorize administrative requests. The downgraded user can use Users::form() to set user_type back to 1, restoring the database role and making the privilege escalation persistent. This vulnerability is fixed in 1.7.2."
        }
      ],
      "metrics": [
        {
          "cvssV4_0": {
            "attackComplexity": "LOW",
            "attackRequirements": "PRESENT",
            "attackVector": "NETWORK",
            "baseScore": 7.5,
            "baseSeverity": "HIGH",
            "privilegesRequired": "HIGH",
            "subAvailabilityImpact": "NONE",
            "subConfidentialityImpact": "NONE",
            "subIntegrityImpact": "NONE",
            "userInteraction": "NONE",
            "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:H/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N",
            "version": "4.0",
            "vulnAvailabilityImpact": "HIGH",
            "vulnConfidentialityImpact": "HIGH",
            "vulnIntegrityImpact": "HIGH"
          }
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-863",
              "description": "CWE-863: Incorrect Authorization",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-25T21:20:13.236Z",
        "orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
        "shortName": "GitHub_M"
      },
      "references": [
        {
          "name": "https://github.com/InvoicePlane/InvoicePlane/security/advisories/GHSA-25xj-pj36-wpp8",
          "tags": [
            "x_refsource_CONFIRM"
          ],
          "url": "https://github.com/InvoicePlane/InvoicePlane/security/advisories/GHSA-25xj-pj36-wpp8"
        },
        {
          "name": "https://github.com/InvoicePlane/InvoicePlane/commit/904847f4e87b66fd6743cf9cc6f88b66c7fc3b81",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/InvoicePlane/InvoicePlane/commit/904847f4e87b66fd6743cf9cc6f88b66c7fc3b81"
        },
        {
          "name": "https://github.com/InvoicePlane/InvoicePlane/commit/daa49ce3a50e0c93e01459b69c0d61bfc23d23eb",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/InvoicePlane/InvoicePlane/commit/daa49ce3a50e0c93e01459b69c0d61bfc23d23eb"
        },
        {
          "name": "https://github.com/InvoicePlane/InvoicePlane/releases/tag/v1.7.2",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/InvoicePlane/InvoicePlane/releases/tag/v1.7.2"
        }
      ],
      "source": {
        "advisory": "GHSA-25xj-pj36-wpp8",
        "discovery": "UNKNOWN"
      },
      "title": "InvoicePlane: Failure to Revoke Administrative Privileges  After Role Downgrade"
    }
  },
  "cveMetadata": {
    "assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
    "assignerShortName": "GitHub_M",
    "cveId": "CVE-2026-88003",
    "datePublished": "2026-09-25T21:20:13.236Z",
    "dateReserved": "2026-09-09T19:19:27.406Z",
    "dateUpdated": "2026-09-28T13:04:37.691Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

CVE-2026-87998 (GCVE-0-2026-87998)

Vulnerability from cvelistv5 – Published: 2026-09-09 21:31 – Updated: 2026-09-10 17:48
VLAI
Title
Open WebUI: Non-admin users can delete admin-owned external knowledge connections via knowledge base deletion
Summary
Open WebUI is an extensible, feature-rich, and user-friendly self-hosted AI platform. From 0.10.0 until 0.11.1, DELETE /api/v1/knowledge/{id}/delete in backend/open_webui/routers/knowledge.py authorized deletion against the knowledge base but then removed its administrator-owned external connection without a separate administrator check or a check for other dependent knowledge bases. A non-administrator with write access to one external knowledge base could delete shared instance configuration and make every other knowledge base using that connection unavailable. This issue is fixed in version 0.11.1.
SSVC
Exploitation: none Automatable: no Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-09-10 17:28 UTC
CWE
  • CWE-269 - Improper Privilege Management
  • CWE-863 - Incorrect Authorization
Assigner
GitHub_M CNA
Impacted products
Vendor Product Version
open-webui open-webui Affected: >= 0.10.0, < 0.11.1
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-87998",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-09-10T17:28:53.671513Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-09-10T17:48:07.956Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "product": "open-webui",
          "vendor": "open-webui",
          "versions": [
            {
              "status": "affected",
              "version": "\u003e= 0.10.0, \u003c 0.11.1"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "Open WebUI is an extensible, feature-rich, and user-friendly self-hosted AI platform. From 0.10.0 until 0.11.1, DELETE /api/v1/knowledge/{id}/delete in backend/open_webui/routers/knowledge.py authorized deletion against the knowledge base but then removed its administrator-owned external connection without a separate administrator check or a check for other dependent knowledge bases. A non-administrator with write access to one external knowledge base could delete shared instance configuration and make every other knowledge base using that connection unavailable. This issue is fixed in version 0.11.1."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "attackComplexity": "LOW",
            "attackVector": "NETWORK",
            "availabilityImpact": "LOW",
            "baseScore": 7.1,
            "baseSeverity": "HIGH",
            "confidentialityImpact": "NONE",
            "integrityImpact": "HIGH",
            "privilegesRequired": "LOW",
            "scope": "UNCHANGED",
            "userInteraction": "NONE",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L",
            "version": "3.1"
          }
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-269",
              "description": "CWE-269: Improper Privilege Management",
              "lang": "en",
              "type": "CWE"
            }
          ]
        },
        {
          "descriptions": [
            {
              "cweId": "CWE-863",
              "description": "CWE-863: Incorrect Authorization",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-09T21:31:48.454Z",
        "orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
        "shortName": "GitHub_M"
      },
      "references": [
        {
          "name": "https://github.com/open-webui/open-webui/security/advisories/GHSA-2724-6cpj-gf3v",
          "tags": [
            "x_refsource_CONFIRM"
          ],
          "url": "https://github.com/open-webui/open-webui/security/advisories/GHSA-2724-6cpj-gf3v"
        },
        {
          "name": "https://github.com/open-webui/open-webui/pull/28113",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/open-webui/open-webui/pull/28113"
        },
        {
          "name": "https://github.com/open-webui/open-webui/commit/dc03e7e595d61be97b25a1dd7bb99ad264f73199",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/open-webui/open-webui/commit/dc03e7e595d61be97b25a1dd7bb99ad264f73199"
        },
        {
          "name": "https://github.com/open-webui/open-webui/releases/tag/v0.11.1",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/open-webui/open-webui/releases/tag/v0.11.1"
        }
      ],
      "source": {
        "advisory": "GHSA-2724-6cpj-gf3v",
        "discovery": "UNKNOWN"
      },
      "title": "Open WebUI: Non-admin users can delete admin-owned external knowledge connections via knowledge base deletion"
    }
  },
  "cveMetadata": {
    "assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
    "assignerShortName": "GitHub_M",
    "cveId": "CVE-2026-87998",
    "datePublished": "2026-09-09T21:31:48.454Z",
    "dateReserved": "2026-09-09T19:19:27.405Z",
    "dateUpdated": "2026-09-10T17:48:07.956Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

CVE-2026-87857 (GCVE-0-2026-87857)

Vulnerability from cvelistv5 – Published: 2026-11-09 19:45 – Updated: 2026-11-09 19:45
VLAI
Title
Temporal Server workflow-history pagination token is not bound to the requested namespace and workflow
Summary
Temporal Server does not bind a workflow-history pagination token to the namespace and workflow named in the request that presents it. GetWorkflowExecutionHistory and GetWorkflowExecutionHistoryReverse authorize the caller against the namespace in the request, then select history from the branch recorded inside the caller-supplied next_page_token. The normal history continuation carries a run identifier, event bounds, a persistence cursor, and a branch token, but no namespace or workflow identity, and it is serialized as unauthenticated protobuf bytes. An authenticated caller holding read permission on one namespace, together with a genuine non-final continuation issued earlier for a workflow in a second namespace, can submit that continuation with a request naming the first namespace and receive the second namespace's workflow history, provided the supplied workflow identifier selects the same History shard as the continuation's branch. No workflow with the supplied identifier needs to exist. Because the token is unauthenticated, a holder can also advance its event range and clear its persistence cursor, which returns history events created after that caller's current credential no longer granted access to the continuation's namespace. Determining exposure is a version question rather than a configuration question: every release listed as affected omits the binding check on the forward history path, and on the reverse history path in releases from 1.16.0, which introduced GetWorkflowExecutionHistoryReverse; no setting in an affected release restores it, and affected releases emit no metric or log for the condition, so their telemetry provides no detection. Fixed releases add the check and, when a page token's branch token is not the requested execution's current branch token, record the counter pagination_token_branch_mismatch tagged with namespace and reason and write a History-service warning log reading "Pagination branch token is not the execution's current branch token" with the fields wf-namespace, wf-id, wf-run-id, reason, wf-branch-token, and wf-request-branch-token. Search History warning logs for that message, or for reason=foreign_branch, which denotes a branch token the requested execution never recorded and is not expected in normal operation; reason=non_current_branch denotes a retained but superseded branch of the same execution and can occur legitimately after conflict resolution or failover. A foreign_branch record does not by itself prove the read was refused, because the counter and log are emitted before the enforcement decision and therefore appear both when the check rejects the request and when history.enablePaginationTokenBranchValidationShadowMode is enabled and the read is served; confirm refusal from the gRPC response, which is InvalidArgument carrying a CurrentBranchChangedFailure detail. The metric and log are tagged with the requesting namespace, not the namespace whose history the token selects, so a foreign_branch alert does not name the exposed namespace. The issue does not provide unauthenticated access, construction of a usable continuation from public workflow identifiers, enumeration of workflows for which the caller holds no continuation, or any modification of workflow state.
CWE
  • CWE-639 - Authorization Bypass Through User-Controlled Key
  • CWE-863 - Incorrect Authorization
Assigner
Temporal CNA
Impacted products
Vendor Product Version
Temporal Technologies, Inc. Temporal Server Unknown: 0.0.0 , < 1.0.0 (semver)
Affected: 1.0.0 , ≤ 1.29.7 (semver)
Affected: 1.30.0 , < 1.30.7 (semver)
Affected: 1.31.0 , < 1.31.3 (semver)
    cpe:2.3:a:temporal:temporal:*:*:*:*:*:*:*:*
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "collectionURL": "https://pkg.go.dev",
          "cpes": [
            "cpe:2.3:a:temporal:temporal:*:*:*:*:*:*:*:*"
          ],
          "defaultStatus": "unaffected",
          "modules": [
            "Frontend",
            "History"
          ],
          "packageName": "go.temporal.io/server",
          "product": "Temporal Server",
          "programFiles": [
            "proto/internal/temporal/server/api/token/v1/message.proto",
            "service/history/api/token.go",
            "service/history/api/get_history_util.go",
            "service/history/api/getworkflowexecutionhistory/api.go",
            "service/history/api/getworkflowexecutionhistoryreverse/api.go"
          ],
          "programRoutines": [
            {
              "name": "getworkflowexecutionhistory.Invoke"
            },
            {
              "name": "getworkflowexecutionhistoryreverse.Invoke"
            },
            {
              "name": "api.DeserializeHistoryToken"
            },
            {
              "name": "api.GetHistory"
            },
            {
              "name": "api.GetHistoryReverse"
            }
          ],
          "repo": "https://github.com/temporalio/temporal",
          "vendor": "Temporal Technologies, Inc.",
          "versions": [
            {
              "lessThan": "1.0.0",
              "status": "unknown",
              "version": "0.0.0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "1.29.7",
              "status": "affected",
              "version": "1.0.0",
              "versionType": "semver"
            },
            {
              "lessThan": "1.30.7",
              "status": "affected",
              "version": "1.30.0",
              "versionType": "semver"
            },
            {
              "lessThan": "1.31.3",
              "status": "affected",
              "version": "1.31.0",
              "versionType": "semver"
            }
          ]
        }
      ],
      "configurations": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eExploitation requires a genuine non-final history continuation previously issued for a workflow in the target namespace, obtained through the caller\u0027s own earlier authorized access or through another disclosure of that token. A continuation cannot be constructed from a namespace, workflow, and run identifier alone, because the branch token carries randomly assigned persisted tree and branch identity. Aligning the request\u0027s workflow identifier with the continuation\u0027s History shard is caller-controlled and can be retried until it succeeds, and no workflow with that identifier need exist, so shard alignment is not an attack requirement.\u003c/p\u003e"
            }
          ],
          "value": "Exploitation requires a genuine non-final history continuation previously issued for a workflow in the target namespace, obtained through the caller\u0027s own earlier authorized access or through another disclosure of that token. A continuation cannot be constructed from a namespace, workflow, and run identifier alone, because the branch token carries randomly assigned persisted tree and branch identity. Aligning the request\u0027s workflow identifier with the continuation\u0027s History shard is caller-controlled and can be retried until it succeeds, and no workflow with that identifier need exist, so shard alignment is not an attack requirement."
        },
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eThe CVSS Base score describes a deployment that configures authentication and authorization, which is the supported secure self-hosted posture. In self-hosted Temporal Server these are operator-configured rather than enabled by default; a deployment that configures no Authorizer already permits every namespace read, and this is not the boundary that fails there. The privileges-required assessment reflects a caller holding read permission on one namespace under a configured Authorizer. Namespaces are an isolation boundary in single-organization deployments as well as multi-organization ones, commonly separating environments such as production from staging or one team\u0027s workloads from another\u0027s, and the Base score reflects the loss of that boundary without assuming multiple tenants.\u003c/p\u003e"
            }
          ],
          "value": "The CVSS Base score describes a deployment that configures authentication and authorization, which is the supported secure self-hosted posture. In self-hosted Temporal Server these are operator-configured rather than enabled by default; a deployment that configures no Authorizer already permits every namespace read, and this is not the boundary that fails there. The privileges-required assessment reflects a caller holding read permission on one namespace under a configured Authorizer. Namespaces are an isolation boundary in single-organization deployments as well as multi-organization ones, commonly separating environments such as production from staging or one team\u0027s workloads from another\u0027s, and the Base score reflects the loss of that boundary without assuming multiple tenants."
        },
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eThe confidentiality assessment reflects a bounded loss rather than a total one. A caller reaches only those workflows for which they hold a genuine non-final continuation, and cannot enumerate other workflows in the disclosed namespace. Within a reachable workflow the disclosure is not bounded to the page already seen, because the token\u0027s event range can be advanced. Whether the disclosed history is itself gravely sensitive depends on the application: without a Payload Codec, workflow arguments, signal payloads, and results may be readable in full, and where a Codec is correctly deployed the covered payload bodies remain ciphertext while history metadata such as event types and timing, workflow and signal type names, task queues, retry and timeout configuration, identities, search attributes, and default failure messages and stack traces are still disclosed. Deployments should apply Environmental metrics, in particular a Confidentiality Requirement, to reflect the sensitivity of the workflow data they run.\u003c/p\u003e"
            }
          ],
          "value": "The confidentiality assessment reflects a bounded loss rather than a total one. A caller reaches only those workflows for which they hold a genuine non-final continuation, and cannot enumerate other workflows in the disclosed namespace. Within a reachable workflow the disclosure is not bounded to the page already seen, because the token\u0027s event range can be advanced. Whether the disclosed history is itself gravely sensitive depends on the application: without a Payload Codec, workflow arguments, signal payloads, and results may be readable in full, and where a Codec is correctly deployed the covered payload bodies remain ciphertext while history metadata such as event types and timing, workflow and signal type names, task queues, retry and timeout configuration, identities, search attributes, and default failure messages and stack traces are still disclosed. Deployments should apply Environmental metrics, in particular a Confidentiality Requirement, to reflect the sensitivity of the workflow data they run."
        },
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eFixed releases gate the check on two dynamic configuration settings. history.enablePaginationTokenBranchValidation defaults to true and history.enablePaginationTokenBranchValidationShadowMode defaults to false, so a fixed release enforces the check without operator action. Two operator changes restore the vulnerable behavior, by different routes: setting history.enablePaginationTokenBranchValidationShadowMode to true keeps the check running and keeps recording the mismatch, but serves the read anyway, while setting history.enablePaginationTokenBranchValidation to false skips the check entirely and records nothing. Rejection of a page token that carries no branch token at all is not gated by shadow mode. Enforcement rejects a page token whose branch token is a retained but non-current branch of the requested execution, reported as reason=non_current_branch, which can interrupt legitimate in-flight pagination after conflict resolution or failover; operators who encounter that condition should treat the settings as a temporary measure and accept the disclosure risk for its duration.\u003c/p\u003e"
            }
          ],
          "value": "Fixed releases gate the check on two dynamic configuration settings. history.enablePaginationTokenBranchValidation defaults to true and history.enablePaginationTokenBranchValidationShadowMode defaults to false, so a fixed release enforces the check without operator action. Two operator changes restore the vulnerable behavior, by different routes: setting history.enablePaginationTokenBranchValidationShadowMode to true keeps the check running and keeps recording the mismatch, but serves the read anyway, while setting history.enablePaginationTokenBranchValidation to false skips the check entirely and records nothing. Rejection of a page token that carries no branch token at all is not gated by shadow mode. Enforcement rejects a page token whose branch token is a retained but non-current branch of the requested execution, reported as reason=non_current_branch, which can interrupt legitimate in-flight pagination after conflict resolution or failover; operators who encounter that condition should treat the settings as a temporary measure and accept the disclosure risk for its duration."
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "finder",
          "value": "Reported internally at Temporal Technologies, Inc."
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eTemporal Server does not bind a workflow-history pagination token to the namespace and workflow named in the request that presents it. GetWorkflowExecutionHistory and GetWorkflowExecutionHistoryReverse authorize the caller against the namespace in the request, then select history from the branch recorded inside the caller-supplied next_page_token. The normal history continuation carries a run identifier, event bounds, a persistence cursor, and a branch token, but no namespace or workflow identity, and it is serialized as unauthenticated protobuf bytes. An authenticated caller holding read permission on one namespace, together with a genuine non-final continuation issued earlier for a workflow in a second namespace, can submit that continuation with a request naming the first namespace and receive the second namespace\u0027s workflow history, provided the supplied workflow identifier selects the same History shard as the continuation\u0027s branch. No workflow with the supplied identifier needs to exist. Because the token is unauthenticated, a holder can also advance its event range and clear its persistence cursor, which returns history events created after that caller\u0027s current credential no longer granted access to the continuation\u0027s namespace. Determining exposure is a version question rather than a configuration question: every release listed as affected omits the binding check on the forward history path, and on the reverse history path in releases from 1.16.0, which introduced GetWorkflowExecutionHistoryReverse; no setting in an affected release restores it, and affected releases emit no metric or log for the condition, so their telemetry provides no detection. Fixed releases add the check and, when a page token\u0027s branch token is not the requested execution\u0027s current branch token, record the counter pagination_token_branch_mismatch tagged with namespace and reason and write a History-service warning log reading \"Pagination branch token is not the execution\u0027s current branch token\" with the fields wf-namespace, wf-id, wf-run-id, reason, wf-branch-token, and wf-request-branch-token. Search History warning logs for that message, or for reason=foreign_branch, which denotes a branch token the requested execution never recorded and is not expected in normal operation; reason=non_current_branch denotes a retained but superseded branch of the same execution and can occur legitimately after conflict resolution or failover. A foreign_branch record does not by itself prove the read was refused, because the counter and log are emitted before the enforcement decision and therefore appear both when the check rejects the request and when history.enablePaginationTokenBranchValidationShadowMode is enabled and the read is served; confirm refusal from the gRPC response, which is InvalidArgument carrying a CurrentBranchChangedFailure detail. The metric and log are tagged with the requesting namespace, not the namespace whose history the token selects, so a foreign_branch alert does not name the exposed namespace. The issue does not provide unauthenticated access, construction of a usable continuation from public workflow identifiers, enumeration of workflows for which the caller holds no continuation, or any modification of workflow state.\u003c/p\u003e"
            }
          ],
          "value": "Temporal Server does not bind a workflow-history pagination token to the namespace and workflow named in the request that presents it. GetWorkflowExecutionHistory and GetWorkflowExecutionHistoryReverse authorize the caller against the namespace in the request, then select history from the branch recorded inside the caller-supplied next_page_token. The normal history continuation carries a run identifier, event bounds, a persistence cursor, and a branch token, but no namespace or workflow identity, and it is serialized as unauthenticated protobuf bytes. An authenticated caller holding read permission on one namespace, together with a genuine non-final continuation issued earlier for a workflow in a second namespace, can submit that continuation with a request naming the first namespace and receive the second namespace\u0027s workflow history, provided the supplied workflow identifier selects the same History shard as the continuation\u0027s branch. No workflow with the supplied identifier needs to exist. Because the token is unauthenticated, a holder can also advance its event range and clear its persistence cursor, which returns history events created after that caller\u0027s current credential no longer granted access to the continuation\u0027s namespace. Determining exposure is a version question rather than a configuration question: every release listed as affected omits the binding check on the forward history path, and on the reverse history path in releases from 1.16.0, which introduced GetWorkflowExecutionHistoryReverse; no setting in an affected release restores it, and affected releases emit no metric or log for the condition, so their telemetry provides no detection. Fixed releases add the check and, when a page token\u0027s branch token is not the requested execution\u0027s current branch token, record the counter pagination_token_branch_mismatch tagged with namespace and reason and write a History-service warning log reading \"Pagination branch token is not the execution\u0027s current branch token\" with the fields wf-namespace, wf-id, wf-run-id, reason, wf-branch-token, and wf-request-branch-token. Search History warning logs for that message, or for reason=foreign_branch, which denotes a branch token the requested execution never recorded and is not expected in normal operation; reason=non_current_branch denotes a retained but superseded branch of the same execution and can occur legitimately after conflict resolution or failover. A foreign_branch record does not by itself prove the read was refused, because the counter and log are emitted before the enforcement decision and therefore appear both when the check rejects the request and when history.enablePaginationTokenBranchValidationShadowMode is enabled and the read is served; confirm refusal from the gRPC response, which is InvalidArgument carrying a CurrentBranchChangedFailure detail. The metric and log are tagged with the requesting namespace, not the namespace whose history the token selects, so a foreign_branch alert does not name the exposed namespace. The issue does not provide unauthenticated access, construction of a usable continuation from public workflow identifiers, enumeration of workflows for which the caller holds no continuation, or any modification of workflow state."
        }
      ],
      "impacts": [
        {
          "descriptions": [
            {
              "lang": "en",
              "value": "Disclosure of workflow history across the namespace authorization boundary. The disclosure persists after the caller\u0027s credential stops granting access to that namespace and covers history events created after that point, so revoking the caller\u0027s access does not end it. No integrity or availability impact was identified."
            }
          ]
        }
      ],
      "metrics": [
        {
          "cvssV4_0": {
            "Automatable": "NOT_DEFINED",
            "Recovery": "NOT_DEFINED",
            "Safety": "NOT_DEFINED",
            "attackComplexity": "LOW",
            "attackRequirements": "NONE",
            "attackVector": "NETWORK",
            "baseScore": 5.3,
            "baseSeverity": "MEDIUM",
            "exploitMaturity": "NOT_DEFINED",
            "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: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-639",
              "description": "CWE-639: Authorization Bypass Through User-Controlled Key",
              "lang": "en",
              "type": "CWE"
            },
            {
              "cweId": "CWE-863",
              "description": "CWE-863: Incorrect Authorization",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-11-09T19:45:14.927Z",
        "orgId": "61241ed8-fa44-4f23-92db-b8c443751968",
        "shortName": "Temporal"
      },
      "references": [
        {
          "name": "Earliest source-confirmed affected release",
          "tags": [
            "product"
          ],
          "url": "https://github.com/temporalio/temporal/blob/v1.0.0/service/frontend/workflowHandler.go#L602-L740"
        },
        {
          "name": "Fix pull request",
          "tags": [
            "patch"
          ],
          "url": "https://github.com/temporalio/temporal/pull/11723"
        },
        {
          "name": "Fix commit",
          "tags": [
            "patch"
          ],
          "url": "https://github.com/temporalio/temporal/commit/ceb1cc1071b1fd37f8a2cd8ef5ed3e4333245cc2"
        },
        {
          "name": "Backport pull request for the 1.32 release line",
          "tags": [
            "patch"
          ],
          "url": "https://github.com/temporalio/temporal/pull/11919"
        },
        {
          "name": "Backport commit on release/v1.32.x",
          "tags": [
            "patch"
          ],
          "url": "https://github.com/temporalio/temporal/commit/4b02728735450dd60eaff9a5d0dc8e11fc8a4b13"
        },
        {
          "name": "Backport pull request for the 1.31 release line",
          "tags": [
            "patch"
          ],
          "url": "https://github.com/temporalio/temporal/pull/12039"
        },
        {
          "name": "Backport commit on release/v1.31.x",
          "tags": [
            "patch"
          ],
          "url": "https://github.com/temporalio/temporal/commit/c82a2d228e7287b1d283a55477f40a1a48481010"
        },
        {
          "name": "Backport pull request for the 1.30 release line",
          "tags": [
            "patch"
          ],
          "url": "https://github.com/temporalio/temporal/pull/12040"
        },
        {
          "name": "Backport commit on release/v1.30.x",
          "tags": [
            "patch"
          ],
          "url": "https://github.com/temporalio/temporal/commit/690b53103e11982de5f9187f722a0e0d3780028d"
        },
        {
          "name": "Temporal Server 1.30.7",
          "tags": [
            "release-notes"
          ],
          "url": "https://github.com/temporalio/temporal/releases/tag/v1.30.7"
        },
        {
          "name": "Temporal Server 1.31.3",
          "tags": [
            "release-notes"
          ],
          "url": "https://github.com/temporalio/temporal/releases/tag/v1.31.3"
        },
        {
          "name": "Temporal Server 1.32.0",
          "tags": [
            "release-notes"
          ],
          "url": "https://github.com/temporalio/temporal/releases/tag/v1.32.0"
        }
      ],
      "solutions": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eUpgrade to Temporal Server 1.30.7, 1.31.3, or 1.32.0, as appropriate for the deployed minor release line, and leave history.enablePaginationTokenBranchValidation at its default of true and history.enablePaginationTokenBranchValidationShadowMode at its default of false. The fix loads mutable state for the namespace and workflow named in the authorized request together with the run identifier from the page token, requires the token\u0027s branch token to equal that execution\u0027s current branch token, and rejects the request before any history persistence read. It covers the forward decoded, forward raw, and reverse history paths; the forward long-poll refresh path independently replaces the caller\u0027s branch token with the authorized execution\u0027s current branch token before reading history. Temporal Server releases up to and including 1.29.7 are outside the supported window and receive no fix; operators on those releases should upgrade to a supported line.\u003c/p\u003e"
            }
          ],
          "value": "Upgrade to Temporal Server 1.30.7, 1.31.3, or 1.32.0, as appropriate for the deployed minor release line, and leave history.enablePaginationTokenBranchValidation at its default of true and history.enablePaginationTokenBranchValidationShadowMode at its default of false. The fix loads mutable state for the namespace and workflow named in the authorized request together with the run identifier from the page token, requires the token\u0027s branch token to equal that execution\u0027s current branch token, and rejects the request before any history persistence read. It covers the forward decoded, forward raw, and reverse history paths; the forward long-poll refresh path independently replaces the caller\u0027s branch token with the authorized execution\u0027s current branch token before reading history. Temporal Server releases up to and including 1.29.7 are outside the supported window and receive no fix; operators on those releases should upgrade to a supported line."
        }
      ],
      "source": {
        "discovery": "INTERNAL"
      },
      "title": "Temporal Server workflow-history pagination token is not bound to the requested namespace and workflow",
      "workarounds": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eNo setting in an affected release closes this issue, because the binding check does not exist there. Until upgrading, limit exposure by granting namespace read permission only to principals trusted with every namespace they can reach, revoking and reissuing credentials through a mechanism that does not leave prior pagination state usable, treating history page tokens as sensitive and keeping them out of application logs, traces, error reports, and shared storage, and reducing namespace retention so that a referenced history branch becomes unavailable sooner after a workflow closes. A Payload Codec reduces the sensitivity of disclosed payload bodies but does not prevent the unauthorized read or protect history metadata. A long-running open workflow can outlive its namespace\u0027s closed-execution retention duration, because that duration is measured from workflow closure.\u003c/p\u003e"
            }
          ],
          "value": "No setting in an affected release closes this issue, because the binding check does not exist there. Until upgrading, limit exposure by granting namespace read permission only to principals trusted with every namespace they can reach, revoking and reissuing credentials through a mechanism that does not leave prior pagination state usable, treating history page tokens as sensitive and keeping them out of application logs, traces, error reports, and shared storage, and reducing namespace retention so that a referenced history branch becomes unavailable sooner after a workflow closes. A Payload Codec reduces the sensitivity of disclosed payload bodies but does not prevent the unauthorized read or protect history metadata. A long-running open workflow can outlive its namespace\u0027s closed-execution retention duration, because that duration is measured from workflow closure."
        }
      ]
    }
  },
  "cveMetadata": {
    "assignerOrgId": "61241ed8-fa44-4f23-92db-b8c443751968",
    "assignerShortName": "Temporal",
    "cveId": "CVE-2026-87857",
    "datePublished": "2026-11-09T19:45:14.927Z",
    "dateReserved": "2026-09-09T13:05:41.629Z",
    "dateUpdated": "2026-11-09T19:45:14.927Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

CVE-2026-87720 (GCVE-0-2026-87720)

Vulnerability from cvelistv5 – Published: 2026-09-24 21:59 – Updated: 2026-09-25 16:55
VLAI
Title
Incorrect Authorization via Stale ProjectCache Eviction and Repeated .git Suffixes in Gerrit Code Review
Summary
Incorrect Authorization (CWE-863) in project name normalization (ProjectUtil.stripGitSuffix) and ProjectCache eviction logic (ProjectCacheImpl) in Gerrit Code Review versions 2.16.0 through 3.12.9, 3.13.0 through 3.13.8, and 3.14.0 through 3.14.2 allows an authenticated user (or an unauthenticated user if the repository was previously public) to cause unauthorized disclosure of private repository content and durable restoration of revoked project-owner administrative privileges via crafted requests using repeated .git suffixes (such as project.git.git) across REST APIs, Gitiles, or SSH Git commands. Because Gerrit strips only a single terminal .git suffix when constructing the logical ProjectCache key while JGit (FileKey.lenient) resolves the suffixed alias to the same canonical bare repository on disk, revoking read access or removing owner rules on the canonical project name fails to evict the cached alias ProjectState during the cache validity window, enabling reads of newly created private commits or writes to refs/meta/config. This issue is fixed in Gerrit Code Review versions 3.12.10, 3.13.9, and 3.14.3.
SSVC
Exploitation: poc Automatable: no Technical Impact: total
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-09-25 16:51 UTC
CWE
  • CWE-863 - Incorrect Authorization
  • CWE-613 - Insufficient Session Expiration
  • CWE-706 - Use of Incorrectly-Resolved Name or Reference
Assigner
Google CNA
Impacted products
Vendor Product Version
Gerrit Gerrit Affected: 2.16.0 , < 3.12.10 (semver)
Affected: 3.13.0 , < 3.13.9 (semver)
Affected: 3.14.0 , < 3.14.3 (semver)
Create a notification for this product.
Date Public
2026-09-22 00:00
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-87720",
                "options": [
                  {
                    "Exploitation": "poc"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "total"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-09-25T16:51:27.457102Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-09-25T16:55:03.232Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "references": [
          {
            "tags": [
              "exploit"
            ],
            "url": "https://issues.gerritcodereview.com/issues/538883789"
          }
        ],
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Gerrit",
          "vendor": "Gerrit",
          "versions": [
            {
              "lessThan": "3.12.10",
              "status": "affected",
              "version": "2.16.0",
              "versionType": "semver"
            },
            {
              "lessThan": "3.13.9",
              "status": "affected",
              "version": "3.13.0",
              "versionType": "semver"
            },
            {
              "lessThan": "3.14.3",
              "status": "affected",
              "version": "3.14.0",
              "versionType": "semver"
            }
          ]
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "finder",
          "value": "Jaime Cavero"
        }
      ],
      "datePublic": "2026-09-22T00:00:00.000Z",
      "descriptions": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "Incorrect Authorization (CWE-863) in project name normalization (ProjectUtil.stripGitSuffix) and ProjectCache eviction logic (ProjectCacheImpl) in Gerrit Code Review versions 2.16.0 through 3.12.9, 3.13.0 through 3.13.8, and 3.14.0 through 3.14.2 allows an authenticated user (or an unauthenticated user if the repository was previously public) to cause unauthorized disclosure of private repository content and durable restoration of revoked project-owner administrative privileges via crafted requests using repeated .git suffixes (such as project.git.git) across REST APIs, Gitiles, or SSH Git commands. Because Gerrit strips only a single terminal .git suffix when constructing the logical ProjectCache key while JGit (FileKey.lenient) resolves the suffixed alias to the same canonical bare repository on disk, revoking read access or removing owner rules on the canonical project name fails to evict the cached alias ProjectState during the cache validity window, enabling reads of newly created private commits or writes to refs/meta/config. This issue is fixed in Gerrit Code Review versions 3.12.10, 3.13.9, and 3.14.3."
            }
          ],
          "value": "Incorrect Authorization (CWE-863) in project name normalization (ProjectUtil.stripGitSuffix) and ProjectCache eviction logic (ProjectCacheImpl) in Gerrit Code Review versions 2.16.0 through 3.12.9, 3.13.0 through 3.13.8, and 3.14.0 through 3.14.2 allows an authenticated user (or an unauthenticated user if the repository was previously public) to cause unauthorized disclosure of private repository content and durable restoration of revoked project-owner administrative privileges via crafted requests using repeated .git suffixes (such as project.git.git) across REST APIs, Gitiles, or SSH Git commands. Because Gerrit strips only a single terminal .git suffix when constructing the logical ProjectCache key while JGit (FileKey.lenient) resolves the suffixed alias to the same canonical bare repository on disk, revoking read access or removing owner rules on the canonical project name fails to evict the cached alias ProjectState during the cache validity window, enabling reads of newly created private commits or writes to refs/meta/config. This issue is fixed in Gerrit Code Review versions 3.12.10, 3.13.9, and 3.14.3."
        }
      ],
      "impacts": [
        {
          "capecId": "CAPEC-180",
          "descriptions": [
            {
              "lang": "en",
              "value": "CAPEC-180 Exploiting Incorrectly Configured Access Control Security Levels"
            }
          ]
        },
        {
          "capecId": "CAPEC-233",
          "descriptions": [
            {
              "lang": "en",
              "value": "CAPEC-233 Privilege Escalation"
            }
          ]
        }
      ],
      "metrics": [
        {
          "cvssV4_0": {
            "Automatable": "NOT_DEFINED",
            "Recovery": "NOT_DEFINED",
            "Safety": "NOT_DEFINED",
            "attackComplexity": "LOW",
            "attackRequirements": "PRESENT",
            "attackVector": "NETWORK",
            "baseScore": 7.6,
            "baseSeverity": "HIGH",
            "exploitMaturity": "NOT_DEFINED",
            "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:H/VI:H/VA:N/SC:N/SI:N/SA:N",
            "version": "4.0",
            "vulnAvailabilityImpact": "NONE",
            "vulnConfidentialityImpact": "HIGH",
            "vulnIntegrityImpact": "HIGH",
            "vulnerabilityResponseEffort": "NOT_DEFINED"
          },
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-863",
              "description": "CWE-863 Incorrect Authorization",
              "lang": "en",
              "type": "CWE"
            }
          ]
        },
        {
          "descriptions": [
            {
              "cweId": "CWE-613",
              "description": "CWE-613 Insufficient Session Expiration",
              "lang": "en",
              "type": "CWE"
            }
          ]
        },
        {
          "descriptions": [
            {
              "cweId": "CWE-706",
              "description": "CWE-706 Use of Incorrectly-Resolved Name or Reference",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-24T21:59:06.994Z",
        "orgId": "14ed7db2-1595-443d-9d34-6215bf890778",
        "shortName": "Google"
      },
      "references": [
        {
          "url": "https://issues.gerritcodereview.com/issues/538883789"
        }
      ],
      "source": {
        "discovery": "EXTERNAL"
      },
      "title": "Incorrect Authorization via Stale ProjectCache Eviction and Repeated .git Suffixes in Gerrit Code Review",
      "x_generator": {
        "engine": "Vulnogram 1.0.2"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "14ed7db2-1595-443d-9d34-6215bf890778",
    "assignerShortName": "Google",
    "cveId": "CVE-2026-87720",
    "datePublished": "2026-09-24T21:59:06.994Z",
    "dateReserved": "2026-09-09T01:03:15.231Z",
    "dateUpdated": "2026-09-25T16:55:03.232Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

CVE-2026-87107 (GCVE-0-2026-87107)

Vulnerability from cvelistv5 – Published: 2026-09-10 18:57 – Updated: 2026-09-10 19:22
VLAI
Title
Consul vulnerable to an authorization bypass in the catalog deregistration path
Summary
Consul and Consul Enterprise are vulnerable to an authorization bypass in the catalog deregistration path that may allow a local ACL token to delete peer-imported catalog objects. A caller with {{service:write}} or {{node:write}} permission may exploit this issue to remove services, checks, or nodes imported from a peered cluster without holding authority over the peer origin. This vulnerability (CVE-2026-87107) is fixed in Consul 2.0.4 and Consul Enterprise 1.21.18, 1.22.12 and 2.0.4.
SSVC
Exploitation: none Automatable: no Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-09-10 19:21 UTC
CWE
  • CWE-863 - Incorrect Authorization
Assigner
HashiCorp CNA
Impacted products
Vendor Product Version
HashiCorp Consul Affected: 1.21.0 , < 2.0.4 (semver)
Create a notification for this product.
HashiCorp Consul Enterprise Affected: 1.21.0 , < 2.0.4 (semver)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-87107",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-09-10T19:21:57.382969Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-09-10T19:22:09.223Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "platforms": [
            "64 bit",
            "32 bit",
            "x86",
            "ARM",
            "MacOS",
            "Windows",
            "Linux"
          ],
          "product": "Consul",
          "repo": "https://github.com/hashicorp/consul",
          "vendor": "HashiCorp",
          "versions": [
            {
              "lessThan": "2.0.4",
              "status": "affected",
              "version": "1.21.0",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "unaffected",
          "platforms": [
            "64 bit",
            "32 bit",
            "x86",
            "ARM",
            "MacOS",
            "Windows",
            "Linux"
          ],
          "product": "Consul Enterprise",
          "repo": "https://github.com/hashicorp/consul",
          "vendor": "HashiCorp",
          "versions": [
            {
              "changes": [
                {
                  "at": "1.21.18",
                  "status": "unaffected"
                },
                {
                  "at": "1.22.12",
                  "status": "unaffected"
                }
              ],
              "lessThan": "2.0.4",
              "status": "affected",
              "version": "1.21.0",
              "versionType": "semver"
            }
          ]
        }
      ],
      "credits": [
        {
          "lang": "en",
          "value": "This issue was reported to HashiCorp by Yazdan Soltani."
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eConsul and Consul Enterprise are vulnerable to an authorization bypass in the catalog deregistration path that may allow a local ACL token to delete peer-imported catalog objects. A caller with {{service:write}} or {{node:write}} permission may exploit this issue to remove services, checks, or nodes imported from a peered cluster without holding authority over the peer origin. This vulnerability (CVE-2026-87107) is fixed in Consul 2.0.4 and Consul Enterprise 1.21.18, 1.22.12 and 2.0.4.\u003c/p\u003e\u003cbr/\u003e"
            }
          ],
          "value": "Consul and Consul Enterprise are vulnerable to an authorization bypass in the catalog deregistration path that may allow a local ACL token to delete peer-imported catalog objects. A caller with {{service:write}} or {{node:write}} permission may exploit this issue to remove services, checks, or nodes imported from a peered cluster without holding authority over the peer origin. This vulnerability (CVE-2026-87107) is fixed in Consul 2.0.4 and Consul Enterprise 1.21.18, 1.22.12 and 2.0.4."
        }
      ],
      "impacts": [
        {
          "capecId": "CAPEC-1",
          "descriptions": [
            {
              "lang": "en",
              "value": "CAPEC-1: Accessing Functionality Not Properly Constrained by ACLs"
            }
          ]
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 5.4,
            "baseSeverity": "MEDIUM",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L",
            "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-10T18:57:35.812Z",
        "orgId": "67fedba0-ff2e-4543-ba5b-aa93e87718cc",
        "shortName": "HashiCorp"
      },
      "references": [
        {
          "url": "https://discuss.hashicorp.com/t/hcsec-2026-36-consul-vulnerable-to-an-authorization-bypass-in-the-catalog-deregistration-path/77738"
        }
      ],
      "source": {
        "advisory": "HCSEC-2026-36",
        "discovery": "EXTERNAL"
      },
      "title": "Consul vulnerable to an authorization bypass in the catalog deregistration path"
    }
  },
  "cveMetadata": {
    "assignerOrgId": "67fedba0-ff2e-4543-ba5b-aa93e87718cc",
    "assignerShortName": "HashiCorp",
    "cveId": "CVE-2026-87107",
    "datePublished": "2026-09-10T18:57:35.812Z",
    "dateReserved": "2026-09-08T20:24:18.555Z",
    "dateUpdated": "2026-09-10T19:22:09.223Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

CVE-2026-87096 (GCVE-0-2026-87096)

Vulnerability from cvelistv5 – Published: 2026-10-21 10:14 – Updated: 2026-10-30 17:18
VLAI
Summary
Sensitive information disclosure and manipulation due to improper authorization checks. The following products are affected: Acronis Cyber Infrastructure (ACI) before build 6.0.1-112, Acronis Cyber Infrastructure (ACI) before build 6.1.1-64, Acronis Cyber Infrastructure (ACI) before build 6.2.1-71.
SSVC
Exploitation: none Automatable: no Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-10-30 16:23 UTC
CWE
Assigner
Acronis CNA
References
Impacted products
Vendor Product Version
Acronis Acronis Cyber Infrastructure Affected: unspecified , < 6.0.1-112 (semver)
Create a notification for this product.
Acronis Acronis Cyber Infrastructure Affected: unspecified , < 6.1.1-64 (semver)
Create a notification for this product.
Acronis Acronis Cyber Infrastructure Affected: unspecified , < 6.2.1-71 (semver)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-87096",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-10-30T16:23:55.332793Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-10-30T17:18:23.880Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "platforms": [
            "ACI"
          ],
          "product": "Acronis Cyber Infrastructure",
          "vendor": "Acronis",
          "versions": [
            {
              "lessThan": "6.0.1-112",
              "status": "affected",
              "version": "unspecified",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "unaffected",
          "platforms": [
            "ACI"
          ],
          "product": "Acronis Cyber Infrastructure",
          "vendor": "Acronis",
          "versions": [
            {
              "lessThan": "6.1.1-64",
              "status": "affected",
              "version": "unspecified",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "unaffected",
          "platforms": [
            "ACI"
          ],
          "product": "Acronis Cyber Infrastructure",
          "vendor": "Acronis",
          "versions": [
            {
              "lessThan": "6.2.1-71",
              "status": "affected",
              "version": "unspecified",
              "versionType": "semver"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "Sensitive information disclosure and manipulation due to improper authorization checks. The following products are affected: Acronis Cyber Infrastructure (ACI) before build 6.0.1-112, Acronis Cyber Infrastructure (ACI) before build 6.1.1-64, Acronis Cyber Infrastructure (ACI) before build 6.2.1-71."
        }
      ],
      "metrics": [
        {
          "cvssV3_0": {
            "baseScore": 3.3,
            "baseSeverity": "LOW",
            "vectorString": "CVSS:3.0/AV:N/AC:H/PR:H/UI:N/S:U/C:L/I:L/A:N",
            "version": "3.0"
          },
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-863",
              "description": "CWE-863",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-21T10:14:44.298Z",
        "orgId": "73dc0fef-1c66-4a72-9d2d-0a0f4012c175",
        "shortName": "Acronis"
      },
      "references": [
        {
          "name": "SEC-8129",
          "tags": [
            "vendor-advisory"
          ],
          "url": "https://security-advisory.acronis.com/advisories/SEC-8129"
        }
      ],
      "x_generator": {
        "engine": "cvelib 1.8.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "73dc0fef-1c66-4a72-9d2d-0a0f4012c175",
    "assignerShortName": "Acronis",
    "cveId": "CVE-2026-87096",
    "datePublished": "2026-10-21T10:14:44.298Z",
    "dateReserved": "2026-09-08T20:12:11.794Z",
    "dateUpdated": "2026-10-30T17:18:23.880Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

CVE-2026-87095 (GCVE-0-2026-87095)

Vulnerability from cvelistv5 – Published: 2026-10-21 10:14 – Updated: 2026-10-30 16:41
VLAI
Summary
Sensitive information disclosure and manipulation due to improper authorization checks. The following products are affected: Acronis Cyber Infrastructure (ACI) before build 6.0.1-112, Acronis Cyber Infrastructure (ACI) before build 6.1.1-64, Acronis Cyber Infrastructure (ACI) before build 6.2.1-71.
SSVC
Exploitation: none Automatable: yes Technical Impact: total
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-10-30 16:36 UTC
CWE
Assigner
Acronis CNA
References
Impacted products
Vendor Product Version
Acronis Acronis Cyber Infrastructure Affected: unspecified , < 6.0.1-112 (semver)
Create a notification for this product.
Acronis Acronis Cyber Infrastructure Affected: unspecified , < 6.1.1-64 (semver)
Create a notification for this product.
Acronis Acronis Cyber Infrastructure Affected: unspecified , < 6.2.1-71 (semver)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-87095",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "yes"
                  },
                  {
                    "Technical Impact": "total"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-10-30T16:36:43.550768Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-10-30T16:41:25.736Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "platforms": [
            "ACI"
          ],
          "product": "Acronis Cyber Infrastructure",
          "vendor": "Acronis",
          "versions": [
            {
              "lessThan": "6.0.1-112",
              "status": "affected",
              "version": "unspecified",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "unaffected",
          "platforms": [
            "ACI"
          ],
          "product": "Acronis Cyber Infrastructure",
          "vendor": "Acronis",
          "versions": [
            {
              "lessThan": "6.1.1-64",
              "status": "affected",
              "version": "unspecified",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "unaffected",
          "platforms": [
            "ACI"
          ],
          "product": "Acronis Cyber Infrastructure",
          "vendor": "Acronis",
          "versions": [
            {
              "lessThan": "6.2.1-71",
              "status": "affected",
              "version": "unspecified",
              "versionType": "semver"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "Sensitive information disclosure and manipulation due to improper authorization checks. The following products are affected: Acronis Cyber Infrastructure (ACI) before build 6.0.1-112, Acronis Cyber Infrastructure (ACI) before build 6.1.1-64, Acronis Cyber Infrastructure (ACI) before build 6.2.1-71."
        }
      ],
      "metrics": [
        {
          "cvssV3_0": {
            "baseScore": 9.1,
            "baseSeverity": "CRITICAL",
            "vectorString": "CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N",
            "version": "3.0"
          },
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-863",
              "description": "CWE-863",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-21T10:14:03.375Z",
        "orgId": "73dc0fef-1c66-4a72-9d2d-0a0f4012c175",
        "shortName": "Acronis"
      },
      "references": [
        {
          "name": "SEC-8128",
          "tags": [
            "vendor-advisory"
          ],
          "url": "https://security-advisory.acronis.com/advisories/SEC-8128"
        }
      ],
      "x_generator": {
        "engine": "cvelib 1.8.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "73dc0fef-1c66-4a72-9d2d-0a0f4012c175",
    "assignerShortName": "Acronis",
    "cveId": "CVE-2026-87095",
    "datePublished": "2026-10-21T10:14:03.375Z",
    "dateReserved": "2026-09-08T20:12:11.794Z",
    "dateUpdated": "2026-10-30T16:41:25.736Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

CVE-2026-87090 (GCVE-0-2026-87090)

Vulnerability from cvelistv5 – Published: 2026-09-10 18:54 – Updated: 2026-09-10 19:02
VLAI
Title
Consul vulnerable to an authorization bypass in the catalog node-write path
Summary
Consul and Consul Enterprise are vulnerable to an authorization bypass in the catalog node-write path that may allow an authenticated attacker to delete another node's catalog registration and take over its node identity. An attacker with a token granting node-write permission on any single node name may exploit this issue if they can obtain the node ID of a node they do not control. This vulnerability (CVE-2026-87090) is fixed in Consul 2.0.4 and Consul Enterprise 1.21.18, 1.22.12 and 2.0.4.
SSVC
Exploitation: none Automatable: no Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-09-10 19:02 UTC
CWE
  • CWE-863 - Incorrect Authorization
Assigner
HashiCorp CNA
Impacted products
Vendor Product Version
HashiCorp Consul Affected: 0.1.0 , < 2.0.4 (semver)
Create a notification for this product.
HashiCorp Consul Enterprise Affected: 0.1.0 , < 2.0.4 (semver)
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-87090",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-09-10T19:02:38.060194Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-09-10T19:02:58.403Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "platforms": [
            "64 bit",
            "32 bit",
            "x86",
            "ARM",
            "MacOS",
            "Windows",
            "Linux"
          ],
          "product": "Consul",
          "repo": "https://github.com/hashicorp/consul",
          "vendor": "HashiCorp",
          "versions": [
            {
              "lessThan": "2.0.4",
              "status": "affected",
              "version": "0.1.0",
              "versionType": "semver"
            }
          ]
        },
        {
          "defaultStatus": "unaffected",
          "platforms": [
            "64 bit",
            "32 bit",
            "x86",
            "ARM",
            "MacOS",
            "Windows",
            "Linux"
          ],
          "product": "Consul Enterprise",
          "repo": "https://github.com/hashicorp/consul",
          "vendor": "HashiCorp",
          "versions": [
            {
              "changes": [
                {
                  "at": "1.21.18",
                  "status": "unaffected"
                },
                {
                  "at": "1.22.12",
                  "status": "unaffected"
                }
              ],
              "lessThan": "2.0.4",
              "status": "affected",
              "version": "0.1.0",
              "versionType": "semver"
            }
          ]
        }
      ],
      "credits": [
        {
          "lang": "en",
          "value": "This issue was reported to HashiCorp by Raphael Zanarelli."
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "value": "\u003cp\u003eConsul and Consul Enterprise are vulnerable to an authorization bypass in the catalog node-write path that may allow an authenticated attacker to delete another node\u0027s catalog registration and take over its node identity. An attacker with a token granting node-write permission on any single node name may exploit this issue if they can obtain the node ID of a node they do not control. This vulnerability (CVE-2026-87090) is fixed in Consul 2.0.4 and Consul Enterprise 1.21.18, 1.22.12 and 2.0.4.\u003c/p\u003e\u003cbr/\u003e"
            }
          ],
          "value": "Consul and Consul Enterprise are vulnerable to an authorization bypass in the catalog node-write path that may allow an authenticated attacker to delete another node\u0027s catalog registration and take over its node identity. An attacker with a token granting node-write permission on any single node name may exploit this issue if they can obtain the node ID of a node they do not control. This vulnerability (CVE-2026-87090) is fixed in Consul 2.0.4 and Consul Enterprise 1.21.18, 1.22.12 and 2.0.4."
        }
      ],
      "impacts": [
        {
          "capecId": "CAPEC-1",
          "descriptions": [
            {
              "lang": "en",
              "value": "CAPEC-1: Accessing Functionality Not Properly Constrained by ACLs"
            }
          ]
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 8.3,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:H",
            "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-10T18:54:45.711Z",
        "orgId": "67fedba0-ff2e-4543-ba5b-aa93e87718cc",
        "shortName": "HashiCorp"
      },
      "references": [
        {
          "url": "https://discuss.hashicorp.com/t/hcsec-2026-34-consul-vulnerable-to-an-authorization-bypass-in-the-catalog-node-write-path/77736"
        }
      ],
      "source": {
        "advisory": "HCSEC-2026-34",
        "discovery": "EXTERNAL"
      },
      "title": "Consul vulnerable to an authorization bypass in the catalog node-write path"
    }
  },
  "cveMetadata": {
    "assignerOrgId": "67fedba0-ff2e-4543-ba5b-aa93e87718cc",
    "assignerShortName": "HashiCorp",
    "cveId": "CVE-2026-87090",
    "datePublished": "2026-09-10T18:54:45.711Z",
    "dateReserved": "2026-09-08T19:58:12.912Z",
    "dateUpdated": "2026-09-10T19:02:58.403Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

CVE-2026-87075 (GCVE-0-2026-87075)

Vulnerability from cvelistv5 – Published: 2026-09-09 02:06 – Updated: 2026-09-09 16:10
VLAI
Title
Tanium addressed an improper access controls vulnerability in Comply.
Summary
Tanium addressed an improper access controls vulnerability in Comply.
SSVC
Exploitation: none Automatable: no Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-09-09 16:01 UTC
CWE
  • CWE-863 - Incorrect Authorization
Assigner
Tanium CNA
References
Impacted products
Vendor Product Version
Tanium Comply Affected: 2.32 , < 2.32.252 (custom)
Affected: 2.35 , < 2.35.306 (custom)
Affected: 2.37 , < 2.37.308 (custom)
Create a notification for this product.
Date Public
2026-09-09 02:04
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-87075",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-09-09T16:01:17.174682Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-09-09T16:10:31.547Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "product": "Comply",
          "vendor": "Tanium",
          "versions": [
            {
              "lessThan": "2.32.252",
              "status": "affected",
              "version": "2.32",
              "versionType": "custom"
            },
            {
              "lessThan": "2.35.306",
              "status": "affected",
              "version": "2.35",
              "versionType": "custom"
            },
            {
              "lessThan": "2.37.308",
              "status": "affected",
              "version": "2.37",
              "versionType": "custom"
            }
          ]
        }
      ],
      "dateAssigned": "2026-09-08T19:06:30.163Z",
      "datePublic": "2026-09-09T02:04:26.051Z",
      "descriptions": [
        {
          "lang": "en",
          "value": "Tanium addressed an improper access controls vulnerability in Comply."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 8.1,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H",
            "version": "3.1"
          }
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-863",
              "description": "Incorrect Authorization",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-09T02:06:57.134Z",
        "orgId": "3938794e-25f5-4123-a1ba-5cbd7f104512",
        "shortName": "Tanium"
      },
      "references": [
        {
          "name": "TAN-2026-037",
          "url": "https://security.tanium.com/TAN-2026-037"
        }
      ],
      "title": "Tanium addressed an improper access controls vulnerability in Comply."
    }
  },
  "cveMetadata": {
    "assignerOrgId": "3938794e-25f5-4123-a1ba-5cbd7f104512",
    "assignerShortName": "Tanium",
    "cveId": "CVE-2026-87075",
    "datePublished": "2026-09-09T02:06:57.134Z",
    "dateReserved": "2026-09-08T19:06:30.349Z",
    "dateUpdated": "2026-09-09T16:10:31.547Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}

CVE-2026-87046 (GCVE-0-2026-87046)

Vulnerability from cvelistv5 – Published: 2026-09-09 02:07 – Updated: 2026-09-09 16:10
VLAI
Title
Tanium addressed an improper access controls vulnerability in Comply.
Summary
Tanium addressed an improper access controls vulnerability in Comply.
SSVC
Exploitation: none Automatable: no Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-09-09 16:00 UTC
CWE
  • CWE-863 - Incorrect Authorization
Assigner
Tanium CNA
References
Impacted products
Vendor Product Version
Tanium Comply Affected: 2.32 , < 2.32.252 (custom)
Affected: 2.35 , < 2.35.306 (custom)
Affected: 2.37 , < 2.37.308 (custom)
Create a notification for this product.
Date Public
2026-09-09 02:04
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-87046",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-09-09T16:00:07.506997Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-09-09T16:10:31.260Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "product": "Comply",
          "vendor": "Tanium",
          "versions": [
            {
              "lessThan": "2.32.252",
              "status": "affected",
              "version": "2.32",
              "versionType": "custom"
            },
            {
              "lessThan": "2.35.306",
              "status": "affected",
              "version": "2.35",
              "versionType": "custom"
            },
            {
              "lessThan": "2.37.308",
              "status": "affected",
              "version": "2.37",
              "versionType": "custom"
            }
          ]
        }
      ],
      "dateAssigned": "2026-09-08T18:41:22.263Z",
      "datePublic": "2026-09-09T02:04:21.681Z",
      "descriptions": [
        {
          "lang": "en",
          "value": "Tanium addressed an improper access controls vulnerability in Comply."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 4.3,
            "baseSeverity": "MEDIUM",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N",
            "version": "3.1"
          }
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-863",
              "description": "Incorrect Authorization",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-09T02:07:25.372Z",
        "orgId": "3938794e-25f5-4123-a1ba-5cbd7f104512",
        "shortName": "Tanium"
      },
      "references": [
        {
          "name": "TAN-2026-026",
          "url": "https://security.tanium.com/TAN-2026-026"
        }
      ],
      "title": "Tanium addressed an improper access controls vulnerability in Comply."
    }
  },
  "cveMetadata": {
    "assignerOrgId": "3938794e-25f5-4123-a1ba-5cbd7f104512",
    "assignerShortName": "Tanium",
    "cveId": "CVE-2026-87046",
    "datePublished": "2026-09-09T02:07:25.372Z",
    "dateReserved": "2026-09-08T18:41:22.751Z",
    "dateUpdated": "2026-09-09T16:10:31.260Z",
    "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.