{"id":"CVE-2022-31020","summary":"Remote code execution in Indy's NODE_UPGRADE transaction","details":"Indy Node is the server portion of a distributed ledger purpose-built for decentralized identity. In versions 1.12.4 and prior, the `pool-upgrade` request handler in Indy-Node allows an improperly authenticated attacker to remotely execute code on nodes within the network. The `pool-upgrade` request handler in Indy-Node 1.12.5 has been updated to properly authenticate pool-upgrade transactions before any processing is performed by the request handler. The transactions are further sanitized to prevent remote code execution. As a workaround, endorsers should not create DIDs for untrusted users. A vulnerable ledger should configure `auth_rules` to prevent new DIDs from being written to the ledger until the network can be upgraded.","aliases":["GHSA-r6v9-p59m-gj2p","PYSEC-2022-265"],"modified":"2026-04-10T04:47:44.181799Z","published":"2022-09-06T16:30:19Z","database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/31xxx/CVE-2022-31020.json","cwe_ids":["CWE-20","CWE-287"],"cna_assigner":"GitHub_M"},"references":[{"type":"WEB","url":"https://github.com/hyperledger/indy-node/releases/tag/v1.12.5"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/31xxx/CVE-2022-31020.json"},{"type":"ADVISORY","url":"https://github.com/hyperledger/indy-node/security/advisories/GHSA-r6v9-p59m-gj2p"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2022-31020"},{"type":"FIX","url":"https://github.com/hyperledger/indy-node/commit/fe507474f77084faef4539101e2bbb4d508a97f5"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/hyperledger-indy/indy-node","events":[{"introduced":"0"},{"fixed":"fe507474f77084faef4539101e2bbb4d508a97f5"},{"fixed":"51a6ebba62be9c16254bc17520ef7777e5e89942"}]}],"versions":["0.3.13-stable","0.3.14-stable","0.3.15-stable","0.3.16-stable","0.3.19-stable","0.3.22-stable","0.3.24-stable","0.3.26-stable","0.3.7-stable","1.0.28-stable","1.1.33-stable","1.1.35-stable","1.1.37-stable","1.1.43-stable","1.2.50-stable","1.3.52-stable","1.3.54-stable","1.3.55-stable","1.3.57-stable","1.3.62-stable","1.4.66-stable","1.5.68-stable","1.6.70-stable","1.6.71-stable","1.6.73-stable","1.6.78-stable","1.6.79-stable","1.6.80-stable","1.6.82-stable","1.6.83-stable","v1.10.0","v1.11.0","v1.12.0","v1.12.1","v1.12.2","v1.12.3","v1.12.4","v1.7.0","v1.7.1","v1.8.0","v1.8.1","v1.9.0","v1.9.1","v1.9.2"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2022-31020.json"}},{"ranges":[{"type":"GIT","repo":"https://github.com/hyperledger/indy-node","events":[{"introduced":"0"},{"last_affected":"8673f9bab833ad7117a6a73cfed1f8c4e5b0c8db"}],"database_specific":{"versions":[{"introduced":"0"},{"last_affected":"1.12.4"}]}}],"versions":["0.3.13-stable","0.3.14-stable","0.3.15-stable","0.3.16-stable","0.3.19-stable","0.3.22-stable","0.3.24-stable","0.3.26-stable","0.3.7-stable","1.0.28-stable","1.1.33-stable","1.1.35-stable","1.1.37-stable","1.1.43-stable","1.2.50-stable","1.3.52-stable","1.3.54-stable","1.3.55-stable","1.3.57-stable","1.3.62-stable","1.4.66-stable","1.5.68-stable","1.6.70-stable","1.6.71-stable","1.6.73-stable","1.6.78-stable","1.6.79-stable","1.6.80-stable","1.6.82-stable","1.6.83-stable","v1.10.0","v1.11.0","v1.12.0","v1.12.1","v1.12.2","v1.12.3","v1.12.4","v1.7.0","v1.7.1","v1.8.0","v1.8.1","v1.9.0","v1.9.1","v1.9.2"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2022-31020.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"}]}