CVE-2026-82411 (GCVE-0-2026-82411)
Vulnerability from cvelistv5
Published
2026-10-28 22:40
Modified
2026-10-28 22:40
CWE
  • CWE-639 - Authorization Bypass Through User-Controlled Key
Summary
Open Object provides an API and admin interface to manage objects and object types. From 2.4.3 until 2.5.1, 3.6.2, 4.0.2, and 4.1.1, a token scoped to read one ObjectType can read the full versioned record of an object of any other ObjectType via the history-detail endpoint `GET /api/v2/objects/{uuid}/{index}`. The `history_detail` action in `src/objects/api/v2/views.py` calls `self.get_queryset()` and `get_object_or_404` directly instead of `self.get_object()`, so `check_object_permissions` and the per-object check in `ObjectTypeBasedPermission.has_object_permission` are not invoked. The queryset's `filter_for_token` applies only to the list and search actions, while `ObjectTypeBasedPermission.has_permission` allows non-create actions, leaving neither check to constrain history-detail records to the token's permitted ObjectType. The normal retrieve endpoint returns 403 for the same unauthorized object, and the sibling history action enforces the grant. Any valid non-superuser API token with a read grant on at least one ObjectType can therefore disclose another ObjectType's complete versioned object `data`, which can include citizen or case records and sensitive identifiers in government deployments. This issue is fixed in versions 2.5.1, 3.6.2, 4.0.2, and 4.1.1.
Impacted products
Vendor Product Version
maykinmedia open-object Version: >= 2.4.3, < 2.5.1
Version: >= 3.0.0, < 3.6.2
Version: >= 4.0.0-rc.1, < 4.0.2
Version: >= 4.1.0, < 4.1.1
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "product": "open-object",
          "vendor": "maykinmedia",
          "versions": [
            {
              "status": "affected",
              "version": "\u003e= 2.4.3, \u003c 2.5.1"
            },
            {
              "status": "affected",
              "version": "\u003e= 3.0.0, \u003c 3.6.2"
            },
            {
              "status": "affected",
              "version": "\u003e= 4.0.0-rc.1, \u003c 4.0.2"
            },
            {
              "status": "affected",
              "version": "\u003e= 4.1.0, \u003c 4.1.1"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "Open Object provides an API and admin interface to manage objects and object types. From 2.4.3 until 2.5.1, 3.6.2, 4.0.2, and 4.1.1, a token scoped to read one ObjectType can read the full versioned record of an object of any other ObjectType via the history-detail endpoint `GET /api/v2/objects/{uuid}/{index}`. The `history_detail` action in `src/objects/api/v2/views.py` calls `self.get_queryset()` and `get_object_or_404` directly instead of `self.get_object()`, so `check_object_permissions` and the per-object check in `ObjectTypeBasedPermission.has_object_permission` are not invoked. The queryset\u0027s `filter_for_token` applies only to the list and search actions, while `ObjectTypeBasedPermission.has_permission` allows non-create actions, leaving neither check to constrain history-detail records to the token\u0027s permitted ObjectType. The normal retrieve endpoint returns 403 for the same unauthorized object, and the sibling history action enforces the grant. Any valid non-superuser API token with a read grant on at least one ObjectType can therefore disclose another ObjectType\u0027s complete versioned object `data`, which can include citizen or case records and sensitive identifiers in government deployments. This issue is fixed in versions 2.5.1, 3.6.2, 4.0.2, and 4.1.1."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "attackComplexity": "LOW",
            "attackVector": "NETWORK",
            "availabilityImpact": "NONE",
            "baseScore": 6.5,
            "baseSeverity": "MEDIUM",
            "confidentialityImpact": "HIGH",
            "integrityImpact": "NONE",
            "privilegesRequired": "LOW",
            "scope": "UNCHANGED",
            "userInteraction": "NONE",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N",
            "version": "3.1"
          }
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-639",
              "description": "CWE-639: Authorization Bypass Through User-Controlled Key",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-28T22:40:13.728Z",
        "orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
        "shortName": "GitHub_M"
      },
      "references": [
        {
          "name": "https://github.com/maykinmedia/open-object/security/advisories/GHSA-55w6-rqp5-j5wx",
          "tags": [
            "x_refsource_CONFIRM"
          ],
          "url": "https://github.com/maykinmedia/open-object/security/advisories/GHSA-55w6-rqp5-j5wx"
        },
        {
          "name": "https://github.com/maykinmedia/open-object/commit/11c5b85ea5d1d80f940883f01b8b8ea80ccdd47c",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/maykinmedia/open-object/commit/11c5b85ea5d1d80f940883f01b8b8ea80ccdd47c"
        },
        {
          "name": "https://github.com/maykinmedia/open-object/commit/27e806eff04c52ebe1e78126c288b63fc0308b52",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/maykinmedia/open-object/commit/27e806eff04c52ebe1e78126c288b63fc0308b52"
        },
        {
          "name": "https://github.com/maykinmedia/open-object/commit/6154d9c2ed8c162b61f2d42db2de4eda5081347f",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/maykinmedia/open-object/commit/6154d9c2ed8c162b61f2d42db2de4eda5081347f"
        },
        {
          "name": "https://github.com/maykinmedia/open-object/commit/ce6b1820619c843748bc5231597aa7fc060d95fe",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/maykinmedia/open-object/commit/ce6b1820619c843748bc5231597aa7fc060d95fe"
        },
        {
          "name": "https://github.com/maykinmedia/open-object/tree/2.5.1",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/maykinmedia/open-object/tree/2.5.1"
        },
        {
          "name": "https://github.com/maykinmedia/open-object/tree/3.6.2",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/maykinmedia/open-object/tree/3.6.2"
        },
        {
          "name": "https://github.com/maykinmedia/open-object/tree/4.0.2",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/maykinmedia/open-object/tree/4.0.2"
        },
        {
          "name": "https://github.com/maykinmedia/open-object/tree/4.1.1",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/maykinmedia/open-object/tree/4.1.1"
        }
      ],
      "source": {
        "advisory": "GHSA-55w6-rqp5-j5wx",
        "discovery": "UNKNOWN"
      },
      "title": "Objects API: Cross-object-type authorization bypass on the object history-detail endpoint"
    }
  },
  "cveMetadata": {
    "assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
    "assignerShortName": "GitHub_M",
    "cveId": "CVE-2026-82411",
    "datePublished": "2026-10-28T22:40:13.728Z",
    "dateReserved": "2026-08-28T22:00:43.514Z",
    "dateUpdated": "2026-10-28T22:40:13.728Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…