{"id":"CVE-2026-87090","summary":"Consul vulnerable to an authorization bypass in the catalog node-write path","details":"Consul and Consul Enterprise are vulnerable to an authorization bypass in the catalog node-write path that may allow an authenticated attacker to delete another node's catalog registration and take over its node identity. An attacker with a token granting node-write permission on any single node name may exploit this issue if they can obtain the node ID of a node they do not control. This vulnerability (CVE-2026-87090) is fixed in Consul 2.0.4 and Consul Enterprise 1.21.18, 1.22.12 and 2.0.4.","modified":"2026-09-12T03:47:21.040281108Z","published":"2026-09-10T18:54:45.711Z","database_specific":{"cna_assigner":"HashiCorp","cwe_ids":["CWE-863"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/87xxx/CVE-2026-87090.json"},"references":[{"type":"WEB","url":"https://discuss.hashicorp.com/t/hcsec-2026-34-consul-vulnerable-to-an-authorization-bypass-in-the-catalog-node-write-path/77736"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/87xxx/CVE-2026-87090.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-87090"},{"type":"PACKAGE","url":"https://github.com/hashicorp/consul"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/hashicorp/consul","events":[{"introduced":"9772693e4ddef3b388546c27511129ac5c39cf65"},{"fixed":"a3eb721c21d4c1ff4baabf84da60158f374f8907"}],"database_specific":{"extracted_events":[{"introduced":"0.1.0"},{"fixed":"2.0.4"}],"source":"AFFECTED_FIELD"}}],"versions":["api/v1.34.3","sdk/v0.18.1","sdk/v0.18.0","ent-changelog-1.22.0","ent-changelog-1.20.9","ent-changelog-1.20.8","ent-changelog-1.20.13","ent-changelog-1.20.12","ent-changelog-1.20.11","ent-changelog-1.20.10","ent-changelog-1.20.0","ent-changelog-1.19.13","ent-changelog-1.19.12","ent-changelog-1.19.11","ent-changelog-1.19.10","ent-changelog-1.19.0","ent-changelog-1.18.17","ent-changelog-1.18.16","ent-changelog-1.18.15","ent-changelog-1.18.14","ent-changelog-1.18.13","ent-changelog-1.18.12","ent-changelog-1.18.0","ent-changelog-1.17.0","ent-changelog-1.16.0","ent-changelog-1.15.19","ent-changelog-1.15.0","ent-changelog-1.14.0","ent-changelog-1.13.0","ent-changelog-1.12.0","ent-changelog-1.11.0","api/v1.32.1","list","proto-public/v0.1.1","proto-public/v0.1.0","api/v1.10.0","v1.7.0","sdk/v0.4.0","api/v1.4.0","v1.7.0-beta3","v1.7.0-beta2","v1.7.0-beta1","v1.6.1","v1.6.0","api/v1.2.0","sdk/v0.2.0","v1.5.3","v1.5.2","v1.5.1","v1.4.4","v1.5.0","api/v1.1.0","sdk/v0.1.1","api/v1.0.1","sdk/v0.1.0","api/v1.0.0","internal/v0.1.0","v1.4.3","v1.4.2","v1.4.1","v1.2.3","v1.1.0","v1.0.7","v0.9.3","v1.4.0","v1.4.0-rc1","v1.2.2","v1.2.1","v1.2.0","v1.0.6","v1.0.5","v1.0.4","v1.0.3","v1.0.2","v1.0.1","v1.0.1-rc1","v1.0.0","v1.0.0-beta2","v1.0.0-beta1","v0.9.3-rc2","v0.9.3-rc1","v0.9.2","v0.9.1","v0.9.0","v0.9.0-rc1","v0.8.5","v0.8.4","v0.8.2","v0.8.1","v0.8.0","v0.8.0-rc1","v0.7.4","v0.7.3","v0.7.2","v0.7.2-rc1","v0.7.1","v0.7.0","v0.7.0-rc2","v0.7.0-rc1","v0.6.4","v0.6.4-rc3","v0.6.3","v0.6.1","v0.6.0","v0.6.0-rc2","v0.6.0-rc1","v0.5.2","v0.5.1","v0.5.0","v0.5.0rc1","v0.4.1","v0.4.0","v0.3.1","v0.3.0","v0.2.1","v0.2.0","v0.1.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-87090.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:H"}]}