CWE-862
Weakness Allowed-with-ReviewMissing Authorization
Abstraction: Class · Status: Incomplete
The product does not perform an authorization check when an actor attempts to access a resource or perform an action.
Dimensions
- Behavior-Property: Missing
- Behavior-Type: Authorization
Mapping guidance
This CWE entry is a Class and might have Base-level children that would be more appropriate
Examine children of this entry to see if there is a better fit
Relationships and members
Modes of introduction
OMISSION: This weakness is caused by missing a security tactic during the architecture and design phase.
Authorization weaknesses may arise when a single-user application is ported to a multi-user environment.
A developer may introduce authorization weaknesses because of a lack of understanding about the underlying technologies. For example, a developer may assume that attackers cannot modify certain inputs such as headers or cookies.
Detection methods
Automated Static Analysis
Automated static analysis is useful for detecting commonly-used idioms for authorization. A tool may be able to analyze related configuration files, such as .htaccess in Apache web servers, or detect the usage of commonly-used authorization libraries.
Generally, automated static analysis tools have difficulty detecting custom authorization schemes. In addition, the software's design may include some functionality that is accessible to any user and does not require an authorization check; an automated technique that detects the absence of authorization may report false positives.
Effectiveness: Limited
Automated Dynamic Analysis
Automated dynamic analysis may find many or all possible interfaces that do not require authorization, but manual analysis is required to determine if the lack of authorization violates business logic.
Manual Analysis
This weakness can be detected using tools and techniques that require manual (human) analysis, such as penetration testing, threat modeling, and interactive tools that allow the tester to record and modify an active session.
Specifically, manual static analysis is useful for evaluating the correctness of custom authorization mechanisms.
Effectiveness: Moderate
These may be more effective than strictly automated techniques. This is especially the case with weaknesses that are related to design and business rules. However, manual efforts might not achieve desired code coverage within limited time constraints.
Manual Static Analysis - Binary or Bytecode
According to SOAR [REF-1479], the following detection techniques may be useful:
Cost effective for partial coverage:
Binary / Bytecode disassembler - then use manual analysis for vulnerabilities & anomalies
Effectiveness: SOAR Partial
Dynamic Analysis with Automated Results Interpretation
According to SOAR [REF-1479], the following detection techniques may be useful:
Cost effective for partial coverage:
Web Application Scanner
Web Services Scanner
Database Scanners
Effectiveness: SOAR Partial
Dynamic Analysis with Manual Results Interpretation
According to SOAR [REF-1479], the following detection techniques may be useful:
Cost effective for partial coverage:
Host Application Interface Scanner
Fuzz Tester
Framework-based Fuzzer
Effectiveness: SOAR Partial
Manual Static Analysis - Source Code
According to SOAR [REF-1479], the following detection techniques may be useful:
Cost effective for partial coverage:
Focused Manual Spotcheck - Focused manual analysis of source
Manual Source Code Review (not inspections)
Effectiveness: SOAR Partial
Automated Static Analysis - Source Code
According to SOAR [REF-1479], the following detection techniques may be useful:
Cost effective for partial coverage:
Source code Weakness Analyzer
Context-configured Source Code Weakness Analyzer
Effectiveness: SOAR Partial
Architecture or Design Review
According to SOAR [REF-1479], the following detection techniques may be useful:
Highly cost effective:
Inspection (IEEE 1028 standard) (can apply to requirements, design, source code, etc.)
Formal Methods / Correct-By-Construction
Effectiveness: High
Notes
Terminology
Assuming a user with a given identity, authorization is the process of determining whether that user can access a given resource, based on the user's privileges and any permissions or other access-control specifications that apply to the resource.
Content history
Suggested mappings to ISA/IEC 62443.
Provided diagram to improve CWE usability
updated Demonstrative_Examples, Related_Attack_Patterns, Relationships
updated Potential_Mitigations, References, Relationships
updated Demonstrative_Examples, Observed_Examples, References, Relationships
updated Potential_Mitigations
updated Relationships
updated Detection_Factors
updated Relationships
updated Applicable_Platforms, Modes_of_Introduction, References, Relationships
updated References
updated Relationships
updated Relationships
updated Relationships
updated Relationships
updated Alternate_Terms, Observed_Examples
updated Observed_Examples, Related_Attack_Patterns, Relationships
updated Relationships
updated Relationships
updated Observed_Examples
updated Description, Potential_Mitigations
updated References, Relationships, Taxonomy_Mappings
updated Mapping_Notes, Relationships, Taxonomy_Mappings
updated Common_Consequences, Description, Diagram, Relationships, Terminology_Notes
updated Applicable_Platforms, Detection_Factors, Observed_Examples, References
updated Applicable_Platforms, Relationships, Weakness_Ordinalities
updated Applicable_Platforms, Observed_Examples, Relationships
updated Applicable_Platforms, Dimensions, References, Relationships, Taxonomy_Mappings
19887 vulnerabilities reference this CWE, most recent first.
GHSA-9G3H-4XRC-W4FR
Vulnerability from github – Published: 2026-01-23 15:31 – Updated: 2026-01-23 22:35Missing Authorization vulnerability in themebeez Cream Magazine cream-magazine allows Exploiting Incorrectly Configured Access Control Security Levels.This issue affects Cream Magazine: from n/a through <= 2.1.10.
{
"affected": [],
"aliases": [
"CVE-2026-24615"
],
"database_specific": {
"cwe_ids": [
"CWE-862"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-01-23T15:16:20Z",
"severity": "MODERATE"
},
"details": "Missing Authorization vulnerability in themebeez Cream Magazine cream-magazine allows Exploiting Incorrectly Configured Access Control Security Levels.This issue affects Cream Magazine: from n/a through \u003c= 2.1.10.",
"id": "GHSA-9g3h-4xrc-w4fr",
"modified": "2026-01-23T22:35:51Z",
"published": "2026-01-23T15:31:38Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-24615"
},
{
"type": "WEB",
"url": "https://patchstack.com/database/Wordpress/Theme/cream-magazine/vulnerability/wordpress-cream-magazine-theme-2-1-10-broken-access-control-vulnerability?_s_id=cve"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N",
"type": "CVSS_V3"
}
]
}
GHSA-9G4W-R84W-X2JW
Vulnerability from github – Published: 2023-08-31 06:30 – Updated: 2024-04-04 07:18The WooCommerce PDF Invoice Builder for WordPress is vulnerable to unauthorized access of data due to a missing capability check on the GetInvoiceDetail function in versions up to, and including, 1.2.89. This makes it possible for subscribers to view arbitrary invoices provided they can guess the order id and invoice id.
{
"affected": [],
"aliases": [
"CVE-2023-4245"
],
"database_specific": {
"cwe_ids": [
"CWE-862"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2023-08-31T06:15:10Z",
"severity": "MODERATE"
},
"details": "The WooCommerce PDF Invoice Builder for WordPress is vulnerable to unauthorized access of data due to a missing capability check on the GetInvoiceDetail function in versions up to, and including, 1.2.89. This makes it possible for subscribers to view arbitrary invoices provided they can guess the order id and invoice id.",
"id": "GHSA-9g4w-r84w-x2jw",
"modified": "2024-04-04T07:18:51Z",
"published": "2023-08-31T06:30:16Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2023-4245"
},
{
"type": "WEB",
"url": "https://plugins.trac.wordpress.org/browser/woo-pdf-invoice-builder/trunk/woocommerce-pdf-invoice-ajax.php#L425"
},
{
"type": "WEB",
"url": "https://plugins.trac.wordpress.org/changeset?sfp_email=\u0026sfph_mail=\u0026reponame=\u0026new=2955112%40woo-pdf-invoice-builder%2Ftrunk\u0026old=2953379%40woo-pdf-invoice-builder%2Ftrunk\u0026sfp_email=\u0026sfph_mail=#file1"
},
{
"type": "WEB",
"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/200fbfc1-df21-43b0-8eb1-b2ba0cc0c0df?source=cve"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N",
"type": "CVSS_V3"
}
]
}
GHSA-9G53-92W9-464M
Vulnerability from github – Published: 2025-04-02 03:31 – Updated: 2025-04-02 03:31The Insert Headers and Footers Code – HT Script plugin for WordPress is vulnerable to unauthorized modification of data due to a missing capability check on the ajax_dismiss function in all versions up to, and including, 1.1.2. This makes it possible for authenticated attackers, with Subscriber-level access and above, to update option values to 1/true on the WordPress site. This can be leveraged to update an option that would create an error on the site and deny access to legitimate users or be used to set some values to true, such as registration.
{
"affected": [],
"aliases": [
"CVE-2025-2779"
],
"database_specific": {
"cwe_ids": [
"CWE-862"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2025-04-02T02:15:14Z",
"severity": "MODERATE"
},
"details": "The Insert Headers and Footers Code \u2013 HT Script plugin for WordPress is vulnerable to unauthorized modification of data due to a missing capability check on the ajax_dismiss function in all versions up to, and including, 1.1.2. This makes it possible for authenticated attackers, with Subscriber-level access and above, to update option values to 1/true on the WordPress site. This can be leveraged to update an option that would create an error on the site and deny access to legitimate users or be used to set some values to true, such as registration.",
"id": "GHSA-9g53-92w9-464m",
"modified": "2025-04-02T03:31:43Z",
"published": "2025-04-02T03:31:43Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2025-2779"
},
{
"type": "WEB",
"url": "https://plugins.trac.wordpress.org/browser/insert-headers-and-footers-script/tags/1.1.2/admin/class-rating-notice.php#L59"
},
{
"type": "WEB",
"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/75bc2295-bf9a-430f-92b7-d380eed6df11?source=cve"
}
],
"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-9G5X-8PPM-2GH6
Vulnerability from github – Published: 2022-11-09 12:00 – Updated: 2022-11-09 19:02In restorePermissionState of PermissionManagerServiceImpl.java, there is a possible way to bypass user consent due to a missing permission check. This could lead to local escalation of privilege with no additional execution privileges needed. User interaction is not needed for exploitation.Product: AndroidVersions: Android-10 Android-11 Android-12 Android-12L Android-13Android ID: A-210065877
{
"affected": [],
"aliases": [
"CVE-2022-20450"
],
"database_specific": {
"cwe_ids": [
"CWE-862"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2022-11-08T22:15:00Z",
"severity": "HIGH"
},
"details": "In restorePermissionState of PermissionManagerServiceImpl.java, there is a possible way to bypass user consent due to a missing permission check. This could lead to local escalation of privilege with no additional execution privileges needed. User interaction is not needed for exploitation.Product: AndroidVersions: Android-10 Android-11 Android-12 Android-12L Android-13Android ID: A-210065877",
"id": "GHSA-9g5x-8ppm-2gh6",
"modified": "2022-11-09T19:02:25Z",
"published": "2022-11-09T12:00:21Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2022-20450"
},
{
"type": "WEB",
"url": "https://source.android.com/security/bulletin/2022-11-01"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
]
}
GHSA-9G9G-4J22-PFXW
Vulnerability from github – Published: 2026-03-25 18:31 – Updated: 2026-03-26 18:31Missing Authorization vulnerability in Anton Voytenko Petitioner petitioner allows Exploiting Incorrectly Configured Access Control Security Levels.This issue affects Petitioner: from n/a through <= 0.7.3.
{
"affected": [],
"aliases": [
"CVE-2026-32514"
],
"database_specific": {
"cwe_ids": [
"CWE-862"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-03-25T17:17:03Z",
"severity": "MODERATE"
},
"details": "Missing Authorization vulnerability in Anton Voytenko Petitioner petitioner allows Exploiting Incorrectly Configured Access Control Security Levels.This issue affects Petitioner: from n/a through \u003c= 0.7.3.",
"id": "GHSA-9g9g-4j22-pfxw",
"modified": "2026-03-26T18:31:36Z",
"published": "2026-03-25T18:31:54Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-32514"
},
{
"type": "WEB",
"url": "https://patchstack.com/database/Wordpress/Plugin/petitioner/vulnerability/wordpress-petitioner-plugin-0-7-3-broken-access-control-vulnerability?_s_id=cve"
}
],
"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-9GFR-R435-56MX
Vulnerability from github – Published: 2026-10-16 18:34 – Updated: 2026-10-16 18:34LingGuo-Drama through commit 8a6924a contains a missing authorization vulnerability that allows any registered user to manage all accounts through the /admin/v1/admins API protected only by AuthAdminJWT. Attackers can self-register, read every account's bcrypt hash, reset the bootstrap administrator's password via PUT, raise their authority_id, and delete accounts.
{
"affected": [],
"aliases": [
"CVE-2026-111723"
],
"database_specific": {
"cwe_ids": [
"CWE-862"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-10-16T18:17:56Z",
"severity": "HIGH"
},
"details": "LingGuo-Drama through commit 8a6924a contains a missing authorization vulnerability that allows any registered user to manage all accounts through the /admin/v1/admins API protected only by AuthAdminJWT. Attackers can self-register, read every account\u0027s bcrypt hash, reset the bootstrap administrator\u0027s password via PUT, raise their authority_id, and delete accounts.",
"id": "GHSA-9gfr-r435-56mx",
"modified": "2026-10-16T18:34:57Z",
"published": "2026-10-16T18:34:57Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-111723"
},
{
"type": "WEB",
"url": "https://github.com/LingGuoAI/LingGuo-Drama/blob/8a6924adf8142678919b4d9a08b9d60c49dcfbed/server/app/http/controllers/admin/v1/admins_controller.go#L166-L198"
},
{
"type": "WEB",
"url": "https://github.com/LingGuoAI/LingGuo-Drama/blob/8a6924adf8142678919b4d9a08b9d60c49dcfbed/server/app/models/admins/admins.go#L14"
},
{
"type": "WEB",
"url": "https://github.com/LingGuoAI/LingGuo-Drama/blob/8a6924adf8142678919b4d9a08b9d60c49dcfbed/server/routes/admin.go#L244-L255"
},
{
"type": "WEB",
"url": "https://hackmd.io/@hieuPenguinnn/lingguo-drama-broken-access-control"
},
{
"type": "WEB",
"url": "https://www.vulncheck.com/advisories/lingguo-drama-through-commit-8a6924a-broken-access-control-via-admin-v1-admins-api"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
},
{
"score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/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-9GFR-W8RG-7VC8
Vulnerability from github – Published: 2024-03-29 15:30 – Updated: 2026-04-28 21:34Missing Authorization vulnerability in Sonaar Music MP3 Audio Player for Music, Radio & Podcast by Sonaar.This issue affects MP3 Audio Player for Music, Radio & Podcast by Sonaar: from n/a through 5.1.
{
"affected": [],
"aliases": [
"CVE-2024-30487"
],
"database_specific": {
"cwe_ids": [
"CWE-862"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2024-03-29T14:15:10Z",
"severity": "HIGH"
},
"details": "Missing Authorization vulnerability in Sonaar Music MP3 Audio Player for Music, Radio \u0026 Podcast by Sonaar.This issue affects MP3 Audio Player for Music, Radio \u0026 Podcast by Sonaar: from n/a through 5.1.",
"id": "GHSA-9gfr-w8rg-7vc8",
"modified": "2026-04-28T21:34:25Z",
"published": "2024-03-29T15:30:31Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2024-30487"
},
{
"type": "WEB",
"url": "https://patchstack.com/database/vulnerability/mp3-music-player-by-sonaar/wordpress-mp3-audio-player-for-music-radio-podcast-by-sonaar-plugin-5-1-broken-access-control-vulnerability?_s_id=cve"
}
],
"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:L",
"type": "CVSS_V3"
}
]
}
GHSA-9GG6-9679-VVJW
Vulnerability from github – Published: 2025-01-09 12:30 – Updated: 2026-04-08 21:32The Bitly's WordPress Plugin plugin for WordPress is vulnerable to unauthorized modification of data due to a missing capability check on several AJAX actions in all versions up to, and including, 2.7.3. This makes it possible for authenticated attackers, with Subscriber-level access and above, to update and retrieve plugin settings.
{
"affected": [],
"aliases": [
"CVE-2024-12616"
],
"database_specific": {
"cwe_ids": [
"CWE-862"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2025-01-09T11:15:14Z",
"severity": "MODERATE"
},
"details": "The Bitly\u0026#039;s WordPress Plugin plugin for WordPress is vulnerable to unauthorized modification of data due to a missing capability check on several AJAX actions in all versions up to, and including, 2.7.3. This makes it possible for authenticated attackers, with Subscriber-level access and above, to update and retrieve plugin settings.",
"id": "GHSA-9gg6-9679-vvjw",
"modified": "2026-04-08T21:32:59Z",
"published": "2025-01-09T12:30:55Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2024-12616"
},
{
"type": "WEB",
"url": "https://plugins.trac.wordpress.org/browser/wp-bitly/trunk/includes/class-wp-bitly-auth.php#L115"
},
{
"type": "WEB",
"url": "https://plugins.trac.wordpress.org/changeset/3272740"
},
{
"type": "WEB",
"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/b1312c34-45c6-41e5-b6fc-a45ac2c8a0ca?source=cve"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N",
"type": "CVSS_V3"
}
]
}
GHSA-9GGP-G58Q-5Q4W
Vulnerability from github – Published: 2022-05-24 17:36 – Updated: 2022-05-24 17:36A CWE-862: Missing Authorization vulnerability exists in Easergy T300 (firmware 2.7 and older), that could cause a wide range of problems, including information exposures, denial of service, and arbitrary code execution when access control checks are not applied consistently.
{
"affected": [],
"aliases": [
"CVE-2020-28215"
],
"database_specific": {
"cwe_ids": [
"CWE-862"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2020-12-11T01:15:00Z",
"severity": "CRITICAL"
},
"details": "A CWE-862: Missing Authorization vulnerability exists in Easergy T300 (firmware 2.7 and older), that could cause a wide range of problems, including information exposures, denial of service, and arbitrary code execution when access control checks are not applied consistently.",
"id": "GHSA-9ggp-g58q-5q4w",
"modified": "2022-05-24T17:36:05Z",
"published": "2022-05-24T17:36:05Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2020-28215"
},
{
"type": "WEB",
"url": "https://us-cert.cisa.gov/ics/advisories/icsa-20-343-03"
},
{
"type": "WEB",
"url": "https://www.se.com/ww/en/download/document/SEVD-2020-315-06"
}
],
"schema_version": "1.4.0",
"severity": []
}
GHSA-9GH4-XW24-9XH5
Vulnerability from github – Published: 2026-10-30 22:58 – Updated: 2026-10-30 22:58Summary
The authenticated REST API endpoint for downloading a CA Certificate Revocation List resolves the requested CA without applying the organization-scoped queryset used by the rest of the PKI API.
An organization manager with CA view permission can request another organization's sequential CA ID and receive that CA's CRL. The endpoint is intended to be authenticated and organization-scoped, so it should use the same access-control path as GET /api/v1/controller/ca/<id>/.
Affected endpoint
GET /api/v1/controller/ca/<integer-id>/crl
CrlDownloadView inherits ProtectedAPIMixin, which requires an authenticated organization manager with the relevant model permission. However, retrieve() resolves the CA with get_object_or_404(Ca, pk=kwargs["pk"]). This bypasses FilterByOrganizationManaged and does not perform an object-level permission check.
Consequently, a manager of organization A can enumerate CA integer IDs and retrieve the CRL for a CA belonging to organization B. The sibling CA detail endpoint is correctly organization-scoped and returns 404 for the same cross-organization request.
Impact
The endpoint returns only the CRL, including CA issuer information and revoked certificate serial numbers. It does not disclose CA private keys and does not permit modification.
django-x509 exposes CRLs publicly by default unless DJANGO_X509_CRL_PROTECTED = True. Therefore, the default configuration does not gain a new confidentiality exposure from this REST API behavior. Nonetheless, the endpoint is part of the authenticated, organization-scoped REST API and does not enforce its intended authorization boundary.
Deployments that explicitly protect CRLs have a stronger expectation that this endpoint will scope access to the requester's managed organizations. The practical impact is low, but the authorization behavior should be corrected for consistency and defense in depth.
Remediation
Resolve the CA through the view's organization-scoped queryset. Set queryset = Ca.objects.all(), replace the direct get_object_or_404(Ca, pk=kwargs["pk"]) lookup with self.get_object(), and add a regression test that a same-organization manager receives 200 while a manager of another organization receives 404.
{
"affected": [
{
"package": {
"ecosystem": "PyPI",
"name": "openwisp-controller"
},
"ranges": [
{
"events": [
{
"introduced": "1.0.0"
},
{
"fixed": "1.3.2"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2026-116677"
],
"database_specific": {
"cwe_ids": [
"CWE-862"
],
"github_reviewed": true,
"github_reviewed_at": "2026-10-30T22:58:10Z",
"nvd_published_at": "2026-10-27T18:17:35Z",
"severity": "MODERATE"
},
"details": "## Summary\n\nThe authenticated REST API endpoint for downloading a CA Certificate Revocation List resolves the requested CA without applying the organization-scoped queryset used by the rest of the PKI API.\n\nAn organization manager with CA view permission can request another organization\u0027s sequential CA ID and receive that CA\u0027s CRL. The endpoint is intended to be authenticated and organization-scoped, so it should use the same access-control path as `GET /api/v1/controller/ca/\u003cid\u003e/`.\n\n## Affected endpoint\n\n```text\nGET /api/v1/controller/ca/\u003cinteger-id\u003e/crl\n```\n\n`CrlDownloadView` inherits `ProtectedAPIMixin`, which requires an authenticated organization manager with the relevant model permission. However, `retrieve()` resolves the CA with `get_object_or_404(Ca, pk=kwargs[\"pk\"])`. This bypasses `FilterByOrganizationManaged` and does not perform an object-level permission check.\n\nConsequently, a manager of organization A can enumerate CA integer IDs and retrieve the CRL for a CA belonging to organization B. The sibling CA detail endpoint is correctly organization-scoped and returns `404` for the same cross-organization request.\n\n## Impact\n\nThe endpoint returns only the CRL, including CA issuer information and revoked certificate serial numbers. It does not disclose CA private keys and does not permit modification.\n\ndjango-x509 exposes CRLs publicly by default unless `DJANGO_X509_CRL_PROTECTED = True`. Therefore, the default configuration does not gain a new confidentiality exposure from this REST API behavior. Nonetheless, the endpoint is part of the authenticated, organization-scoped REST API and does not enforce its intended authorization boundary.\n\nDeployments that explicitly protect CRLs have a stronger expectation that this endpoint will scope access to the requester\u0027s managed organizations. The practical impact is low, but the authorization behavior should be corrected for consistency and defense in depth.\n\n## Remediation\n\nResolve the CA through the view\u0027s organization-scoped queryset. Set `queryset = Ca.objects.all()`, replace the direct `get_object_or_404(Ca, pk=kwargs[\"pk\"])` lookup with `self.get_object()`, and add a regression test that a same-organization manager receives `200` while a manager of another organization receives `404`.",
"id": "GHSA-9gh4-xw24-9xh5",
"modified": "2026-10-30T22:58:10Z",
"published": "2026-10-30T22:58:10Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/openwisp/openwisp-controller/security/advisories/GHSA-9gh4-xw24-9xh5"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-116677"
},
{
"type": "WEB",
"url": "https://github.com/openwisp/openwisp-controller/commit/90ded783267aa11b89768b0ec9ae69895cc3730c"
},
{
"type": "WEB",
"url": "https://github.com/openwisp/openwisp-controller/commit/9e1869e17734a0f34bc428622d463c1a8c230720"
},
{
"type": "PACKAGE",
"url": "https://github.com/openwisp/openwisp-controller"
},
{
"type": "WEB",
"url": "https://github.com/openwisp/openwisp-controller/releases/tag/1.3.2"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "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",
"type": "CVSS_V4"
}
],
"summary": "OpenWISP Controller CA CRL REST API does not scope requests to managed organizations"
}
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.
CAPEC-665: Exploitation of Thunderbolt Protection Flaws
An adversary leverages a firmware weakness within the Thunderbolt protocol, on a computing device to manipulate Thunderbolt controller firmware in order to exploit vulnerabilities in the implementation of authorization and verification schemes within Thunderbolt protection mechanisms. Upon gaining physical access to a target device, the adversary conducts high-level firmware manipulation of the victim Thunderbolt controller SPI (Serial Peripheral Interface) flash, through the use of a SPI Programing device and an external Thunderbolt device, typically as the target device is booting up. If successful, this allows the adversary to modify memory, subvert authentication mechanisms, spoof identities and content, and extract data and memory from the target device. Currently 7 major vulnerabilities exist within Thunderbolt protocol with 9 attack vectors as noted in the Execution Flow.