{"id":"CVE-2026-82411","title":"Objects API: Cross-object-type authorization bypass on the object history-detail endpoint","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 Objec…","severity":"medium","cvss":6.5,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","cvssSource":"cna","cwe":["CWE-639"],"vendor":"maykinmedia","product":"open-object","affected":["open-object >= 2.4.3, < 2.5.1","open-object >= 3.0.0, < 3.6.2","open-object >= 4.0.0-rc.1, < 4.0.2","open-object >= 4.1.0, < 4.1.1"],"ssvc":{"exploitation":"none","automatable":"no","technicalImpact":"partial","timestamp":"2026-10-29T15:30:00.984556Z"},"published":"2026-10-28","updated":"2026-10-29","sourceUpdated":"2026-10-29T17:20:57.039Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-82411","references":[{"url":"https://github.com/maykinmedia/open-object/security/advisories/GHSA-55w6-rqp5-j5wx","label":"https://github.com/maykinmedia/open-object/security/advisories/GHSA-55w6-rqp5-j5wx"},{"url":"https://github.com/maykinmedia/open-object/commit/11c5b85ea5d1d80f940883f01b8b8ea80ccdd47c","label":"https://github.com/maykinmedia/open-object/commit/11c5b85ea5d1d80f940883f01b8b8ea80ccdd47c"},{"url":"https://github.com/maykinmedia/open-object/commit/27e806eff04c52ebe1e78126c288b63fc0308b52","label":"https://github.com/maykinmedia/open-object/commit/27e806eff04c52ebe1e78126c288b63fc0308b52"},{"url":"https://github.com/maykinmedia/open-object/commit/6154d9c2ed8c162b61f2d42db2de4eda5081347f","label":"https://github.com/maykinmedia/open-object/commit/6154d9c2ed8c162b61f2d42db2de4eda5081347f"},{"url":"https://github.com/maykinmedia/open-object/commit/ce6b1820619c843748bc5231597aa7fc060d95fe","label":"https://github.com/maykinmedia/open-object/commit/ce6b1820619c843748bc5231597aa7fc060d95fe"},{"url":"https://github.com/maykinmedia/open-object/tree/2.5.1","label":"https://github.com/maykinmedia/open-object/tree/2.5.1"},{"url":"https://github.com/maykinmedia/open-object/tree/3.6.2","label":"https://github.com/maykinmedia/open-object/tree/3.6.2"},{"url":"https://github.com/maykinmedia/open-object/tree/4.0.2","label":"https://github.com/maykinmedia/open-object/tree/4.0.2"},{"url":"https://github.com/maykinmedia/open-object/tree/4.1.1","label":"https://github.com/maykinmedia/open-object/tree/4.1.1"}],"tags":["cve.org"],"epss":0.00306,"epssPercentile":0.23555,"ingestedAt":"2026-11-01T22:02:40.992Z","slug":"CVE-2026-82411","body":"## Overview\n\nOpen 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.\n\n## Affected\n\n- `open-object >= 2.4.3, < 2.5.1`\n- `open-object >= 3.0.0, < 3.6.2`\n- `open-object >= 4.0.0-rc.1, < 4.0.2`\n- `open-object >= 4.1.0, < 4.1.1`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":36,"depthScoreParts":{"impact":35.8,"likelihood":0.1,"exploitation":0,"ransomware":0},"changes":[]}