{"id":"CVE-2022-31020","published":"2022-09-06T16:30:19Z","modified":"2025-04-23T17:14:59Z","title":"Remote code execution in Indy's NODE_UPGRADE transaction","vendor":"hyperledger","product":"indy-node","tier":"tail","description":{"text":"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.","provenance":"source","from":"CVE.org"},"cvss":{"score":8.8,"severity":"HIGH","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","provenance":"source","from":"CVE.org CNA"},"epss":{"score":0.02259,"percentile":0.82908,"provenance":"source"},"cwes":[{"id":"CWE-287","name":"Improper Authentication"},{"id":"CWE-20","name":"Improper Input Validation"}],"references":[{"url":"https://github.com/hyperledger/indy-node/security/advisories/GHSA-r6v9-p59m-gj2p","tags":["x_refsource_CONFIRM"]},{"url":"https://github.com/hyperledger/indy-node/commit/fe507474f77084faef4539101e2bbb4d508a97f5","tags":["x_refsource_MISC"]},{"url":"https://github.com/hyperledger/indy-node/releases/tag/v1.12.5","tags":["x_refsource_MISC"]}],"priority":{"score":22.7,"factors":[{"name":"EPSS percentile","points":16.58},{"name":"CVSS severity","points":6.16}]},"vendorSlug":"hyperledger","affectedVersions":[{"vendor":"hyperledger","product":"indy-node","versions":["<= 1.12.4"]}],"affected":[{"ecosystem":"PyPI","package":"indy-node","vulnerableRanges":["<1.12.5rc1"],"patched":["1.12.5rc1"],"from":["GHSA-r6v9-p59m-gj2p","PYSEC-2022-265"],"provenance":"source"}],"euvd":{"id":"EUVD-2022-0124","exploited":false,"provenance":"source"},"lineage":{"packageHistory":[{"cve":"CVE-2020-11090","published":"2020-06-11","fixed":"1.12.3","kev":false},{"cve":"CVE-2020-11093","published":"2020-12-24","fixed":"1.12.4","kev":false,"link":{"from":"CVE-2020-11093","to":"CVE-2022-31020","relation":"successor","confidence":"low","kind":"sequence","evidence":[{"kind":"version-step","provenance":"source","package":"PyPI:indy-node","fromFixed":"1.12.4","toFixed":"1.12.5rc1","daysApart":621}]}},{"cve":"CVE-2022-31020","published":"2022-09-06","fixed":"1.12.5rc1","kev":false},{"cve":"CVE-2022-31006","published":"2022-09-09","fixed":"1.13.0.dev2","kev":false,"link":{"from":"CVE-2022-31020","to":"CVE-2022-31006","relation":"successor","confidence":"medium","kind":"sequence","evidence":[{"kind":"version-step","provenance":"source","package":"PyPI:indy-node","fromFixed":"1.12.5rc1","toFixed":"1.13.0.dev2","daysApart":3},{"kind":"similar","provenance":"machine","score":0.43,"basis":"same product + description similarity"}]}}],"package":"PyPI:indy-node"}}