Description
matrix-appservice-bridge provides an API for setting up bridges. Starting in version 4.0.0 and prior to versions 8.1.2 and 9.0.1, a malicious Matrix server can use a foreign user's MXID in an OpenID exchange, allowing a bad actor to impersonate users when using the provisioning API. The library does not check that the servername part of the `sub` parameter (containing the user's *claimed* MXID) is the the same as the servername we are talking to. A malicious actor could spin up a server on any given domain, respond with a `sub` parameter according to the user they want to act as and use the resulting token to perform provisioning requests. Versions 8.1.2 and 9.0.1 contain a patch. As a workaround, disable the provisioning API.
Remediation
References
https://github.com/matrix-org/matrix-appservice-bridge/commit/4c6723a5e7beda65cdf1ae5dbb882e8beaac8552
https://github.com/matrix-org/matrix-appservice-bridge/security/advisories/GHSA-vc7j-h8xg-fv5x
Related Vulnerabilities
CVE-2012-0803 Vulnerability in maven package org.apache.cxf:cxf-rt-ws-security
CVE-2017-7657 Vulnerability in maven package org.eclipse.jetty:jetty-client
CVE-2016-6814 Vulnerability in maven package org.codehaus.groovy:groovy-all
CVE-2015-7559 Vulnerability in maven package org.apache.activemq:activemq-client
CVE-2022-43409 Vulnerability in maven package org.jenkins-ci.plugins.workflow:workflow-support