{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-102940","assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","state":"PUBLISHED","assignerShortName":"GitHub_M","dateReserved":"2026-09-29T20:24:43.341Z","datePublished":"2026-11-05T20:07:31.499Z","dateUpdated":"2026-11-05T21:02:33.527Z"},"containers":{"cna":{"title":"OpenEMR: Missing Write ACL Allows Unauthorized Document Reassignment","problemTypes":[{"descriptions":[{"cweId":"CWE-639","lang":"en","description":"CWE-639: Authorization Bypass Through User-Controlled Key","type":"CWE"}]}],"metrics":[{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"NONE","baseScore":9.6,"baseSeverity":"CRITICAL","confidentialityImpact":"HIGH","integrityImpact":"HIGH","privilegesRequired":"LOW","scope":"CHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N","version":"3.1"}}],"references":[{"name":"https://github.com/openemr/openemr/security/advisories/GHSA-92rh-g949-4mvv","tags":["x_refsource_CONFIRM"],"url":"https://github.com/openemr/openemr/security/advisories/GHSA-92rh-g949-4mvv"},{"name":"https://github.com/openemr/openemr/pull/13353","tags":["x_refsource_MISC"],"url":"https://github.com/openemr/openemr/pull/13353"},{"name":"https://github.com/openemr/openemr/commit/312b5d042f7fa49cc78ebed041155fba339a991c","tags":["x_refsource_MISC"],"url":"https://github.com/openemr/openemr/commit/312b5d042f7fa49cc78ebed041155fba339a991c"},{"name":"https://github.com/openemr/openemr/releases/tag/v8_3_0","tags":["x_refsource_MISC"],"url":"https://github.com/openemr/openemr/releases/tag/v8_3_0"}],"affected":[{"vendor":"openemr","product":"openemr","versions":[{"version":"< 8.4.0","status":"affected"}]}],"providerMetadata":{"orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","shortName":"GitHub_M","dateUpdated":"2026-11-05T20:07:31.499Z"},"descriptions":[{"lang":"en","value":"OpenEMR is a free and open source electronic health records and medical practice management application. Prior to 8.4.0, controllers/C_Document.class.php write actions, including move_action_process(), do not verify the caller's access to the source document, current patient and category, or destination patient and category before Document::change_patient() performs the mutation. A low-privilege authenticated user can reassign an arbitrary document to a patient or category the user can access and then retrieve it through the normally protected read path. The reassignment occurs before a later list rendering check, so a final HTTP 403 response does not mean the unauthorized write was blocked. This issue is fixed in version 8.4.0."}],"source":{"advisory":"GHSA-92rh-g949-4mvv","discovery":"UNKNOWN"}},"adp":[{"references":[{"url":"https://github.com/openemr/openemr/security/advisories/GHSA-92rh-g949-4mvv","tags":["exploit"]}],"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-11-05T21:02:14.936697Z","id":"CVE-2026-102940","options":[{"Exploitation":"poc"},{"Automatable":"no"},{"Technical Impact":"total"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"title":"CISA ADP Vulnrichment","providerMetadata":{"orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","shortName":"CISA-ADP","dateUpdated":"2026-11-05T21:02:33.527Z"}}]}}