{"schemaVersion":3,"id":"CVE-2021-22538","aliases":["GHSA-5v95-v8c8-3rh6","GO-2022-0798"],"status":"published","duplicateOf":null,"title":null,"description":"A privilege escalation vulnerability impacting the Google Exposure Notification Verification Server (versions prior to 0.23.1), allows an attacker who (1) has UserWrite permissions and (2) is using a carefully crafted request or malicious proxy, to create another user with higher privileges than their own. This occurs due to insufficient checks on the allowed set of permissions. The new user creation event would be captured in the Event Log.","dates":{"published":"2021-03-31T21:10:13.000Z","modified":"2024-08-03T18:44:13.699Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":8.8,"severity":"high","version":"3.1","versionLabel":"v3.1","source":"NVD","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","computed":false,"selection":"backend-summary"},"metrics":[{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":6.3,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Go","score":8.8,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","exploitability":7.2,"impact":9.8,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":8.8,"severity":"high","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","exploitability":null,"impact":null,"computed":false},{"version":"2.0","versionLabel":"v2.0","source":"NVD","score":6.5,"severity":"medium","vector":"AV:N/AC:L/Au:S/C:P/I:P/A:P","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.00718,"percentile":0.52922,"severity":"low","asOf":"2026-10-18T00:00:00.000Z","change":{"pp":0,"baselineDate":"2026-09-18T00:00:00.000Z","baselineScore":0.00718},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00718,"percentile":0.52922}],"last30":[{"date":"2026-09-18T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00718,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00718,"percentile":0.52922}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-20","name":"Improper Input Validation","description":"The product receives input or data, but it does\n        not validate or incorrectly validates that the input has the\n        properties that are required to process the data safely and\n        correctly.","type":"weakness","status":"Stable","abstraction":"Class","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/20.html"},{"id":"CWE-276","name":"Incorrect Default Permissions","description":"During installation, installed file permissions are set to allow anyone to modify those files.","type":"weakness","status":"Draft","abstraction":"Base","likelihoodOfExploit":"Medium","url":"https://cwe.mitre.org/data/definitions/276.html"}],"affected":[{"vendor":"github.com/google","product":"exposure-notifications-verification-server","name":"github.com/google/exposure-notifications-verification-server","label":"exposure-notifications-verification-server","ecosystem":"Go","cpePart":null,"purl":"pkg:golang/github.com/google/exposure-notifications-verification-server","purlType":"golang","versions":[{"text":"< 0.23.1","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 0.23.1","eol":null,"hubHref":null},{"vendor":"google llc","product":"exposure notifications verification server","name":"Exposure Notifications Verification Server","label":"exposure notifications verification server","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≥ stable, ≤ 0.23.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ stable, ≤ 0.23.0","eol":null,"hubHref":"/vendor/google_llc/exposure_notifications_verification_server"},{"vendor":"google","product":"exposure_notifications_verification_server","name":"exposure notifications verification server","label":"exposure_notifications_verification_server","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"< 0.23.1","noFixRecorded":false,"fixedIn":null}],"versionsText":"< 0.23.1","eol":null,"hubHref":"/vendor/google/exposure_notifications_verification_server"}],"affectedCount":3,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/google/exposure-notifications-verification-server/security/advisories/GHSA-5v95-v8c8-3rh6","label":"github.com/google/exposure-notifications-verification-server/security/advisories/GHSA-5v95-v8c8-3rh6","hostname":"github.com","tags":["X Refsource CONFIRM","WEB","Advisory","Third Party Advisory"]},{"url":"https://github.com/google/exposure-notifications-verification-server/commit/eb8cf40b12dbe79304f1133c06fb73419383cd95","label":"github.com/google/…","hostname":"github.com","tags":["X Refsource CONFIRM","WEB","FIX","Patch","Third Party Advisory"]},{"url":"https://github.com/google/exposure-notifications-verification-server/releases/tag/v0.23.1","label":"github.com/google/exposure-notifications-verification-server/releases/tag/v0.23.1","hostname":"github.com","tags":["X Refsource CONFIRM","WEB","Release Notes","Third Party Advisory"]},{"url":"https://github.com/google/exposure-notifications-verification-server/releases/tag/v0.24.0","label":"github.com/google/exposure-notifications-verification-server/releases/tag/v0.24.0","hostname":"github.com","tags":["X Refsource CONFIRM","WEB","Release Notes","Third Party Advisory"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2021-22538","label":"nvd.nist.gov/vuln/detail/CVE-2021-22538","hostname":"nvd.nist.gov","tags":["Advisory"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2021-03-31T21:10:13.000Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2024-08-03T18:44:13.699Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":35,"level":"medium","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-19T08:23:40.691Z","stale":false,"partial":false}}