CWE-863
Allowed-with-ReviewIncorrect 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.
5699 vulnerabilities reference this CWE, most recent first.
GHSA-H3PJ-V2J4-MG82
Vulnerability from github – Published: 2022-05-24 17:44 – Updated: 2022-07-13 00:01Improper access control vulnerability in Workflow of Cybozu Office 10.0.0 to 10.8.4 allows authenticated attackers to bypass access restriction and alter the data of Workflow via unspecified vectors.
{
"affected": [],
"aliases": [
"CVE-2021-20626"
],
"database_specific": {
"cwe_ids": [
"CWE-863"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2021-03-18T01:15:00Z",
"severity": "MODERATE"
},
"details": "Improper access control vulnerability in Workflow of Cybozu Office 10.0.0 to 10.8.4 allows authenticated attackers to bypass access restriction and alter the data of Workflow via unspecified vectors.",
"id": "GHSA-h3pj-v2j4-mg82",
"modified": "2022-07-13T00:01:05Z",
"published": "2022-05-24T17:44:43Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2021-20626"
},
{
"type": "WEB",
"url": "https://jvn.jp/en/jp/JVN45797538/index.html"
},
{
"type": "WEB",
"url": "https://kb.cybozu.support/article/36864"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N",
"type": "CVSS_V3"
}
]
}
GHSA-H3R9-RG3Q-7F5F
Vulnerability from github – Published: 2023-09-01 12:30 – Updated: 2024-04-04 07:21An issue has been discovered in GitLab affecting all versions starting from 10.0 before 16.1.5, all versions starting from 16.2 before 16.2.5, all versions starting from 16.3 before 16.3.1. Due to improper permission validation it was possible to edit labels description by an unauthorised user.
{
"affected": [],
"aliases": [
"CVE-2023-0120"
],
"database_specific": {
"cwe_ids": [
"CWE-284",
"CWE-863"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2023-09-01T11:15:40Z",
"severity": "MODERATE"
},
"details": "An issue has been discovered in GitLab affecting all versions starting from 10.0 before 16.1.5, all versions starting from 16.2 before 16.2.5, all versions starting from 16.3 before 16.3.1. Due to improper permission validation it was possible to edit labels description by an unauthorised user.",
"id": "GHSA-h3r9-rg3q-7f5f",
"modified": "2024-04-04T07:21:08Z",
"published": "2023-09-01T12:30:44Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2023-0120"
},
{
"type": "WEB",
"url": "https://hackerone.com/reports/1818425"
},
{
"type": "WEB",
"url": "https://gitlab.com/gitlab-org/gitlab/-/issues/387531"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:N",
"type": "CVSS_V3"
}
]
}
GHSA-H3RM-78G3-J7CP
Vulnerability from github – Published: 2026-07-24 15:43 – Updated: 2026-07-24 15:43Am I affected?
You are affected if all of these are true:
- You use
@better-auth/stripefrom version 1.4.11 up to a patched version below. This covers the stable line through 1.6.20 and every 1.7.0 beta through 1.7.0-beta.9. - The Stripe plugin has subscriptions turned on (
subscription.enabled: true). - Organization subscriptions are turned on (
organization.enabled: true) and you have set anauthorizeReferencecallback. - A user can join more than one org. So a user can be a member of an org whose billing they should not manage.
You are not affected if you only use user subscriptions. You are also not affected if org subscriptions are turned off.
Summary
An org subscription action can run against the wrong org. The actions are cancel, change plan, restore, and open the billing portal. The plugin checks permission against the org id in the request query string. It then runs the action against the caller's active org from their session. When these two ids differ, a member can act on billing for an org they may not manage. The target is always an org the caller belongs to.
Details
The plugin runs two steps for each org subscription action. First, a middleware decides if the caller may use the requested org. It reads the org id from the request body or the query string. It then passes that id to your authorizeReference callback. Second, the route handler runs the action. The handler reads the org id from the request body only. It falls back to the active org in the session when the body has no id.
The gap is the query string. A caller puts an org they may manage in the query string. The middleware approves that org. The handler ignores the query string. It finds no id in the body, so it acts on the caller's active org instead. The check and the action no longer agree.
Patches
Upgrade to one of these patched versions:
- Stable:
@better-auth/stripe@1.6.21or later. - Beta:
@better-auth/stripe@1.7.0-beta.10or later.
The fix resolves the org id once in the middleware. It passes that single value to the handler. The approved org and the acted-on org are now always the same.
Workarounds
If you cannot upgrade, make authorizeReference approve only the caller's active org. Return false when the requested id is not the active org id. Keep your existing role check too:
if (referenceId !== session.activeOrganizationId) {
return false;
}
This forces the approved org and the active org to be the same value.
Impact
- A signed-in member can make a subscription action run against the wrong org. The action can be cancel, change plan, restore, or billing portal. The target is limited to orgs the member belongs to.
- Through the billing portal, a member can reach another org's billing details. This includes payment methods, invoices, and subscription state.
Credit
Reported and fixed by Taesu (@bytaesu).
{
"affected": [
{
"package": {
"ecosystem": "npm",
"name": "@better-auth/stripe"
},
"ranges": [
{
"events": [
{
"introduced": "1.4.11"
},
{
"fixed": "1.6.21"
}
],
"type": "ECOSYSTEM"
}
]
},
{
"package": {
"ecosystem": "npm",
"name": "@better-auth/stripe"
},
"ranges": [
{
"events": [
{
"introduced": "1.7.0-beta.0"
},
{
"fixed": "1.7.0-beta.10"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [],
"database_specific": {
"cwe_ids": [
"CWE-639",
"CWE-863"
],
"github_reviewed": true,
"github_reviewed_at": "2026-07-24T15:43:22Z",
"nvd_published_at": null,
"severity": "HIGH"
},
"details": "### Am I affected?\n\nYou are affected if all of these are true:\n\n- You use `@better-auth/stripe` from version 1.4.11 up to a patched version below. This covers the stable line through 1.6.20 and every 1.7.0 beta through 1.7.0-beta.9.\n- The Stripe plugin has subscriptions turned on (`subscription.enabled: true`).\n- Organization subscriptions are turned on (`organization.enabled: true`) and you have set an `authorizeReference` callback.\n- A user can join more than one org. So a user can be a member of an org whose billing they should not manage.\n\nYou are not affected if you only use user subscriptions. You are also not affected if org subscriptions are turned off.\n\n### Summary\n\nAn org subscription action can run against the wrong org. The actions are cancel, change plan, restore, and open the billing portal. The plugin checks permission against the org id in the request query string. It then runs the action against the caller\u0027s active org from their session. When these two ids differ, a member can act on billing for an org they may not manage. The target is always an org the caller belongs to.\n\n### Details\n\nThe plugin runs two steps for each org subscription action. First, a middleware decides if the caller may use the requested org. It reads the org id from the request body or the query string. It then passes that id to your `authorizeReference` callback. Second, the route handler runs the action. The handler reads the org id from the request body only. It falls back to the active org in the session when the body has no id.\n\nThe gap is the query string. A caller puts an org they may manage in the query string. The middleware approves that org. The handler ignores the query string. It finds no id in the body, so it acts on the caller\u0027s active org instead. The check and the action no longer agree.\n\n### Patches\n\nUpgrade to one of these patched versions:\n\n- Stable: `@better-auth/stripe@1.6.21` or later.\n- Beta: `@better-auth/stripe@1.7.0-beta.10` or later.\n\nThe fix resolves the org id once in the middleware. It passes that single value to the handler. The approved org and the acted-on org are now always the same.\n\n### Workarounds\n\nIf you cannot upgrade, make `authorizeReference` approve only the caller\u0027s active org. Return `false` when the requested id is not the active org id. Keep your existing role check too:\n\n```ts\nif (referenceId !== session.activeOrganizationId) {\n return false;\n}\n```\n\nThis forces the approved org and the active org to be the same value.\n\n### Impact\n\n- A signed-in member can make a subscription action run against the wrong org. The action can be cancel, change plan, restore, or billing portal. The target is limited to orgs the member belongs to.\n- Through the billing portal, a member can reach another org\u0027s billing details. This includes payment methods, invoices, and subscription state.\n\n### Credit\n\nReported and fixed by Taesu ([@bytaesu](https://github.com/bytaesu)).",
"id": "GHSA-h3rm-78g3-j7cp",
"modified": "2026-07-24T15:43:22Z",
"published": "2026-07-24T15:43:22Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/better-auth/better-auth/security/advisories/GHSA-h3rm-78g3-j7cp"
},
{
"type": "WEB",
"url": "https://github.com/better-auth/better-auth/commit/29fbcb573261242d8a05b131a9d39c9ae4352b06"
},
{
"type": "PACKAGE",
"url": "https://github.com/better-auth/better-auth"
},
{
"type": "WEB",
"url": "https://github.com/better-auth/better-auth/releases/tag/v1.6.21"
},
{
"type": "WEB",
"url": "https://github.com/better-auth/better-auth/releases/tag/v1.7.0-beta.10"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:N",
"type": "CVSS_V3"
}
],
"summary": "@better-auth/stripe: cross-organization billing tampering in organization subscription actions"
}
GHSA-H3V7-CVF6-7JHW
Vulnerability from github – Published: 2022-05-24 17:36 – Updated: 2022-05-24 17:36The AWV component of Mitel MiCollab before 9.2 could allow an attacker to gain access to a web conference due to insufficient access control for conference codes.
{
"affected": [],
"aliases": [
"CVE-2020-25610"
],
"database_specific": {
"cwe_ids": [
"CWE-863"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2020-12-18T08:15:00Z",
"severity": "MODERATE"
},
"details": "The AWV component of Mitel MiCollab before 9.2 could allow an attacker to gain access to a web conference due to insufficient access control for conference codes.",
"id": "GHSA-h3v7-cvf6-7jhw",
"modified": "2022-05-24T17:36:53Z",
"published": "2022-05-24T17:36:53Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2020-25610"
},
{
"type": "WEB",
"url": "https://www.mitel.com/support/security-advisories"
}
],
"schema_version": "1.4.0",
"severity": []
}
GHSA-H3XM-W5HM-V36M
Vulnerability from github – Published: 2026-01-28 06:30 – Updated: 2026-01-28 06:30Official Document Management System developed by 2100 Technology has a Incorrect Authorization vulnerability, allowing authenticated remote attackers to modify front-end code to read all official documents.
{
"affected": [],
"aliases": [
"CVE-2026-1514"
],
"database_specific": {
"cwe_ids": [
"CWE-863"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-01-28T04:15:59Z",
"severity": "HIGH"
},
"details": "Official Document Management System developed by 2100 Technology has a Incorrect Authorization vulnerability, allowing authenticated remote attackers to modify front-end code to read all official documents.",
"id": "GHSA-h3xm-w5hm-v36m",
"modified": "2026-01-28T06:30:30Z",
"published": "2026-01-28T06:30:30Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-1514"
},
{
"type": "WEB",
"url": "https://www.twcert.org.tw/en/cp-139-10659-264cd-2.html"
},
{
"type": "WEB",
"url": "https://www.twcert.org.tw/tw/cp-132-10658-c5a07-1.html"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N",
"type": "CVSS_V3"
},
{
"score": "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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
"type": "CVSS_V4"
}
]
}
GHSA-H3XV-65M3-MQ7C
Vulnerability from github – Published: 2022-05-24 17:44 – Updated: 2022-05-24 17:44M-System DL8 series (type A (DL8-A) versions prior to Ver3.0, type B (DL8-B) versions prior to Ver3.0, type C (DL8-C) versions prior to Ver3.0, type D (DL8-D) versions prior to Ver3.0, and type E (DL8-E) versions prior to Ver3.0) allows remote authenticated attackers to bypass access restriction and conduct prohibited operations via unspecified vectors.
{
"affected": [],
"aliases": [
"CVE-2021-20676"
],
"database_specific": {
"cwe_ids": [
"CWE-863"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2021-03-18T01:15:00Z",
"severity": "MODERATE"
},
"details": "M-System DL8 series (type A (DL8-A) versions prior to Ver3.0, type B (DL8-B) versions prior to Ver3.0, type C (DL8-C) versions prior to Ver3.0, type D (DL8-D) versions prior to Ver3.0, and type E (DL8-E) versions prior to Ver3.0) allows remote authenticated attackers to bypass access restriction and conduct prohibited operations via unspecified vectors.",
"id": "GHSA-h3xv-65m3-mq7c",
"modified": "2022-05-24T17:44:45Z",
"published": "2022-05-24T17:44:45Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2021-20676"
},
{
"type": "WEB",
"url": "https://jvn.jp/en/jp/JVN47497535/index.html"
},
{
"type": "WEB",
"url": "https://www.m-system.co.jp/download_w/dl_dl8updaterE.html"
}
],
"schema_version": "1.4.0",
"severity": []
}
GHSA-H42Q-JJCQ-2FF4
Vulnerability from github – Published: 2022-04-15 00:00 – Updated: 2022-04-22 00:00An Improper Access Control vulnerability in the Juniper Networks Paragon Active Assurance Control Center allows an unauthenticated attacker to leverage a crafted URL to generate PDF reports, potentially containing sensitive configuration information. A feature was introduced in version 3.1 of the Paragon Active Assurance Control Center which allows users to selective share account data using a unique identifier. Knowing the proper format of the URL and the identifier of an existing object in an application it is possible to get access to that object without being logged in, even if the object is not shared, resulting in the opportunity for malicious exfiltration of user data. Note that the Paragon Active Assurance Control Center SaaS offering is not affected by this issue. This issue affects Juniper Networks Paragon Active Assurance version 3.1.0.
{
"affected": [],
"aliases": [
"CVE-2022-22190"
],
"database_specific": {
"cwe_ids": [
"CWE-284",
"CWE-639",
"CWE-863"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2022-04-14T16:15:00Z",
"severity": "HIGH"
},
"details": "An Improper Access Control vulnerability in the Juniper Networks Paragon Active Assurance Control Center allows an unauthenticated attacker to leverage a crafted URL to generate PDF reports, potentially containing sensitive configuration information. A feature was introduced in version 3.1 of the Paragon Active Assurance Control Center which allows users to selective share account data using a unique identifier. Knowing the proper format of the URL and the identifier of an existing object in an application it is possible to get access to that object without being logged in, even if the object is not shared, resulting in the opportunity for malicious exfiltration of user data. Note that the Paragon Active Assurance Control Center SaaS offering is not affected by this issue. This issue affects Juniper Networks Paragon Active Assurance version 3.1.0.",
"id": "GHSA-h42q-jjcq-2ff4",
"modified": "2022-04-22T00:00:55Z",
"published": "2022-04-15T00:00:41Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2022-22190"
},
{
"type": "WEB",
"url": "https://kb.juniper.net/JSA69500"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N",
"type": "CVSS_V3"
}
]
}
GHSA-H43R-9PQ6-RJ78
Vulnerability from github – Published: 2022-08-02 00:00 – Updated: 2022-08-05 00:00IBM Datapower Gateway 10.0.2.0 through 10.0.4.0, 10.0.1.0 through 10.0.1.5, and 2018.4.1.0 through 2018.4.1.18 could allow unauthorized viewing of logs and files due to insufficient authorization checks. IBM X-Force ID: 218856.
{
"affected": [],
"aliases": [
"CVE-2022-22326"
],
"database_specific": {
"cwe_ids": [
"CWE-863"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2022-08-01T11:15:00Z",
"severity": "LOW"
},
"details": "IBM Datapower Gateway 10.0.2.0 through 10.0.4.0, 10.0.1.0 through 10.0.1.5, and 2018.4.1.0 through 2018.4.1.18 could allow unauthorized viewing of logs and files due to insufficient authorization checks. IBM X-Force ID: 218856.",
"id": "GHSA-h43r-9pq6-rj78",
"modified": "2022-08-05T00:00:25Z",
"published": "2022-08-02T00:00:33Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2022-22326"
},
{
"type": "WEB",
"url": "https://exchange.xforce.ibmcloud.com/vulnerabilities/218856"
},
{
"type": "WEB",
"url": "https://www.ibm.com/support/pages/node/6560048"
},
{
"type": "WEB",
"url": "https://www.ibm.com/support/pages/node/6608598"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N",
"type": "CVSS_V3"
}
]
}
GHSA-H447-H989-M72H
Vulnerability from github – Published: 2025-10-25 06:30 – Updated: 2025-10-25 06:30The ShopEngine Elementor WooCommerce Builder Addon – All in One WooCommerce Solution plugin for WordPress is vulnerable to unauthorized modification of data due to an insufficient capability check on the post_deactive() function and post_activate() function in all versions up to, and including, 4.8.4. This makes it possible for authenticated attackers, with Editor-level access and above, to activate and deactivate licenses.
{
"affected": [],
"aliases": [
"CVE-2025-11888"
],
"database_specific": {
"cwe_ids": [
"CWE-863"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2025-10-25T06:15:35Z",
"severity": "LOW"
},
"details": "The ShopEngine Elementor WooCommerce Builder Addon \u2013 All in One WooCommerce Solution plugin for WordPress is vulnerable to unauthorized modification of data due to an insufficient capability check on the post_deactive() function and post_activate() function in all versions up to, and including, 4.8.4. This makes it possible for authenticated attackers, with Editor-level access and above, to activate and deactivate licenses.",
"id": "GHSA-h447-h989-m72h",
"modified": "2025-10-25T06:30:15Z",
"published": "2025-10-25T06:30:15Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2025-11888"
},
{
"type": "WEB",
"url": "https://plugins.trac.wordpress.org/changeset/3381211/shopengine/tags/4.8.5/libs/license/license-route.php"
},
{
"type": "WEB",
"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/7bdadc84-0cfb-4bec-aeb9-f59f205d269b?source=cve"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:L/A:N",
"type": "CVSS_V3"
}
]
}
GHSA-H457-956R-2PR8
Vulnerability from github – Published: 2026-05-13 18:30 – Updated: 2026-06-30 21:31Incorrect authorization in the "submitted together" feature in Gerrit versions 2.12 and later allows an authenticated attacker with force push permissions on a secondary branch to bypass code review and forcefully submit code to restricted branches via a crafted submission matching the "topic" tag of an unapproved change.
{
"affected": [],
"aliases": [
"CVE-2026-2725"
],
"database_specific": {
"cwe_ids": [
"CWE-863"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-05-13T06:16:14Z",
"severity": "MODERATE"
},
"details": "Incorrect authorization in the \"submitted together\" feature in Gerrit versions 2.12 and later allows an authenticated attacker with force push permissions on a secondary branch to bypass code review and forcefully submit code to restricted branches via a crafted submission matching the \"topic\" tag of an unapproved change.",
"id": "GHSA-h457-956r-2pr8",
"modified": "2026-06-30T21:31:35Z",
"published": "2026-05-13T18:30:52Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-2725"
},
{
"type": "WEB",
"url": "https://issues.gerritcodereview.com/issues/486131256"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:N/I:H/A:N",
"type": "CVSS_V3"
},
{
"score": "CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
"type": "CVSS_V4"
}
]
}
Mitigation
- 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
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
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
- 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
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.