{"id":"CVE-2026-12593","state":"PUBLISHED","title":"Privilege escalation via forged API token creation in Axivion Dashboard OIDC/OAuth2/SSO subsystem","description":"The implementation of an internal and undocumented Dashboard API endpoint (POST /api/users/~/{user}/tokens) forgot to ensure an HTTP request for creating an API Token for another user had sufficient permission to do so.\n\n\n\n\n\nPrecondition for successful exploitation was a preexisting internal user (with more privileges than the attacker), the attacker knowing its login name and the attacker being able to authenticate to the Dashboard via OAuth/OIDC. The attacker would then have had to forge a token creation API request on behalf of the other user and could have authenticated and finalized the token creation with their own OAuth/OIDC credentials. In the worst case, this would mean an attacker could have become Dashboard Administrator and been able to perform all administrative actions if the preexisting internal user had administrative privileges. In combination with a separate weakness, this could have further led to code execution on the host system running the Dashboard with the privileges of the OS-User running the Dashboard server.","publishedAt":"2026-07-09T12:29:47.260Z","updatedAt":"2026-07-09T14:20:19.757Z","severity":{"score":8.7,"label":"High","version":"4.0","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:L/SI:L/SA:L","source":"TQtC"},"assigner":"TQtC","products":["Qt Axivion"],"affected":[{"vendor":"Qt","product":"Axivion","defaultStatus":"unaffected","versions":[{"version":"7.8.5","status":"affected","lessThanOrEqual":"7.8.12","versionType":"custom"},{"version":"7.9.0","status":"affected","lessThan":"7.9.13","versionType":"custom"},{"version":"7.10.0","status":"affected","lessThan":"7.10.11","versionType":"custom"},{"version":"7.11.0","status":"affected","lessThan":"7.11.7","versionType":"custom"},{"version":"7.12.0","status":"affected","lessThan":"7.12.2","versionType":"custom"}],"modules":["Dashboard OIDC/OAuth2/SSO subsystem"]}],"references":["https://wiki.qt.io/List_of_known_vulnerabilities_in_Qt_products#CVE-2026-12593"],"weaknesses":["CWE-862"],"ingestedAt":"2026-10-29T20:10:52.580Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/12xxx/CVE-2026-12593.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-12593","state":"PUBLISHED","datePublished":"2026-07-09T12:29:47.260Z","dateUpdated":"2026-07-09T14:20:19.757Z","assignerShortName":"TQtC","assignerOrgId":"a59d8014-47c4-4630-ab43-e1b13cbe58e3","dateReserved":"2026-06-18T09:26:17.599Z"},"containers":{"cna":{"title":"Privilege escalation via forged API token creation in Axivion Dashboard OIDC/OAuth2/SSO subsystem","descriptions":[{"lang":"en","value":"The implementation of an internal and undocumented Dashboard API endpoint (POST /api/users/~/{user}/tokens) forgot to ensure an HTTP request for creating an API Token for another user had sufficient permission to do so.\n\n\n\n\n\nPrecondition for successful exploitation was a preexisting internal user (with more privileges than the attacker), the attacker knowing its login name and the attacker being able to authenticate to the Dashboard via OAuth/OIDC. The attacker would then have had to forge a token creation API request on behalf of the other user and could have authenticated and finalized the token creation with their own OAuth/OIDC credentials. In the worst case, this would mean an attacker could have become Dashboard Administrator and been able to perform all administrative actions if the preexisting internal user had administrative privileges. In combination with a separate weakness, this could have further led to code execution on the host system running the Dashboard with the privileges of the OS-User running the Dashboard server."}],"affected":[{"vendor":"Qt","product":"Axivion","defaultStatus":"unaffected","versions":[{"version":"7.8.5","status":"affected","lessThanOrEqual":"7.8.12","versionType":"custom"},{"version":"7.9.0","status":"affected","lessThan":"7.9.13","versionType":"custom"},{"version":"7.10.0","status":"affected","lessThan":"7.10.11","versionType":"custom"},{"version":"7.11.0","status":"affected","lessThan":"7.11.7","versionType":"custom"},{"version":"7.12.0","status":"affected","lessThan":"7.12.2","versionType":"custom"}],"modules":["Dashboard OIDC/OAuth2/SSO subsystem"]}],"references":[{"url":"https://wiki.qt.io/List_of_known_vulnerabilities_in_Qt_products#CVE-2026-12593","name":"Qt Group Internal Vulnerability Ticket","tags":["issue-tracking"]}],"metrics":[{"format":"CVSS","scenarios":[{"lang":"en","value":"GENERAL"}],"cvssV4_0":{"attackVector":"NETWORK","attackComplexity":"LOW","attackRequirements":"NONE","privilegesRequired":"LOW","userInteraction":"NONE","vulnConfidentialityImpact":"HIGH","subConfidentialityImpact":"LOW","vulnIntegrityImpact":"HIGH","subIntegrityImpact":"LOW","vulnAvailabilityImpact":"HIGH","subAvailabilityImpact":"LOW","exploitMaturity":"NOT_DEFINED","Safety":"NOT_DEFINED","Automatable":"NOT_DEFINED","Recovery":"NOT_DEFINED","valueDensity":"NOT_DEFINED","vulnerabilityResponseEffort":"NOT_DEFINED","providerUrgency":"NOT_DEFINED","version":"4.0","baseSeverity":"HIGH","baseScore":8.7,"vectorString":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:L/SI:L/SA:L"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-862","lang":"en","description":"CWE-862 Missing Authorization","type":"CWE"}]}],"providerMetadata":{"shortName":"TQtC","orgId":"a59d8014-47c4-4630-ab43-e1b13cbe58e3","dateUpdated":"2026-07-09T12:29:47.260Z"},"impacts":[{"descriptions":[{"lang":"en","value":"Authenticated Remote Privilege escalation. Any OIDC/OAuth authenticated user can become a Dashboard Administrator. By exploiting another weakness this can also lead to arbitrary code execution on the host-system running the Dashboard in the context of the OS-User used to run the Dashboard."}]}],"cpeApplicability":[{"operator":"OR","nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:a:qt:axivion:*:*:*:*:*:*:*:*","versionStartIncluding":"7.8.5","versionEndIncluding":"7.8.12"},{"vulnerable":true,"criteria":"cpe:2.3:a:qt:axivion:*:*:*:*:*:*:*:*","versionStartIncluding":"7.9.0","versionEndExcluding":"7.9.13"},{"vulnerable":true,"criteria":"cpe:2.3:a:qt:axivion:*:*:*:*:*:*:*:*","versionStartIncluding":"7.10.0","versionEndExcluding":"7.10.11"},{"vulnerable":true,"criteria":"cpe:2.3:a:qt:axivion:*:*:*:*:*:*:*:*","versionStartIncluding":"7.11.0","versionEndExcluding":"7.11.7"},{"vulnerable":true,"criteria":"cpe:2.3:a:qt:axivion:*:*:*:*:*:*:*:*","versionStartIncluding":"7.12.0","versionEndExcluding":"7.12.2"}]}]}],"workarounds":[{"lang":"en","value":"Disable the OIDC/OAuth2/SSO authentication feature or shut down the Dashboard server.","supportingMedia":[{"type":"text/html","base64":false,"value":"<p>Disable the OIDC/OAuth2/SSO authentication feature or shut down the Dashboard server.</p>"}]}],"solutions":[{"lang":"en","value":"Update to one of the fixed releases: 7.9.13, 7.10.11, 7.11.7, or 7.12.2. There is no fixed release on the 7.8.x branch; deployments running 7.8.5-7.8.12 must migrate to one of the fixed releases.","supportingMedia":[{"type":"text/html","base64":false,"value":"<p>Update to one of the fixed releases: 7.9.13, 7.10.11, 7.11.7, or 7.12.2. There is no fixed release on the 7.8.x branch; deployments running 7.8.5-7.8.12 must migrate to one of the fixed releases.</p>"}]}],"source":{"discovery":"INTERNAL","defectId":"BAUHAUS-30026"},"x_generator":{"engine":"Claude AI (Opus 4.8) - draft only, requires human validation before submission"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-07-09T14:20:08.451329Z","id":"CVE-2026-12593","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"total"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-07-09T14:20:19.757Z"}}]}}}