Skip to content
Heist/ feed
Back to feed
Medium

Pocketbase: Account pre-hijacking via OAuth2 unverfied->verified autolinking upgrade

Type: advisorySources: OSV

Pocketbase is an open source web backend written in go. Prior to 0.22.42 and 0.37.4, in some situations, if an attacker knows the email address of the victim they can create and link an unverified PocketBase user in advance by authenticating with one of the OAuth2 app providers, e.g. "A". When the victim gets invited or decides to sign up to your app on their own with provider "B" (PocketBase OAuth2 auth requires to be with a different provider because we don't allow multiple OAuth2 accounts from the same provider to be associated to a single PocketBase user), the user created previously by the attacker will be autolinked, upgraded to "verified" and its old password reset. This vulnerability is fixed in 0.22.42 and 0.37.4.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-44166
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 16:25 UTC · Revision 1

Source evidence

Pocketbase: Account pre-hijacking via OAuth2 unverfied->verified autolinking upgrade

core-osv · Original source

Published 12 May 2026, 17:16 UTC

Pocketbase is an open source web backend written in go. Prior to 0.22.42 and 0.37.4, in some situations, if an attacker knows the email address of the victim they can create and link an unverified PocketBase user in advance by authenticating with one of the OAuth2 app providers, e.g. "A". When the victim gets invited or decides to sign up to your app on their own with provider "B" (PocketBase OAuth2 auth requires to be with a different provider because we don't allow multiple OAuth2 accounts from the same provider to be associated to a single PocketBase user), the user created previously by the attacker will be autolinked, upgraded to "verified" and its old password reset. This vulnerability is fixed in 0.22.42 and 0.37.4.

osv:CVE-2026-44166
Complete source record
{
  "id": "3b5be838be4e800d281ca4a856b05234ef2ecbcd820894de820bf25255ff2226",
  "url": "https://osv.dev/vulnerability/CVE-2026-44166",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Pocketbase: Account pre-hijacking via OAuth2 unverfied->verified autolinking upgrade",
    "summary": "Pocketbase is an open source web backend written in go. Prior to 0.22.42 and 0.37.4, in some situations, if an attacker knows the email address of the victim they can create and link an unverified PocketBase user in advance by authenticating with one of the OAuth2 app providers, e.g. \"A\". When the victim gets invited or decides to sign up to your app on their own with provider \"B\" (PocketBase OAuth2 auth requires to be with a different provider because we don't allow multiple OAuth2 accounts from the same provider to be associated to a single PocketBase user), the user created previously by the attacker will be autolinked, upgraded to \"verified\" and its old password reset. This vulnerability is fixed in 0.22.42 and 0.37.4.",
    "evidence": "osv:CVE-2026-44166",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-44166",
      "aliases": [
        "CVE-2026-44166",
        "GHSA-pq7p-mc74-g65w",
        "GO-2026-5548"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:L/VI:H/VA:L/SC:N/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/pocketbase/pocketbase",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "bcd2ac6f1b0e40bcb01129ca9eb4c4cc6aa9903d"
                },
                {
                  "introduced": "d5dddf3eadaffadc73503c464f6ff8ac6450a874"
                },
                {
                  "fixed": "44bf55097af90c4c9dc240a8ea0d81923763a60e"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:pocketbase:pocketbase:*:*:*:*:*:go:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "0.22.42"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "cpe": "cpe:2.3:a:pocketbase:pocketbase:*:*:*:*:*:go:*:*",
                    "range": [
                      {
                        "introduced": "0.23.0"
                      },
                      {
                        "fixed": "0.37.4"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v0.22.41",
            "v0.37.3",
            "v0.37.2",
            "v0.37.1",
            "v0.37.0",
            "v0.36.9",
            "v0.22.40",
            "v0.36.8",
            "v0.36.7",
            "v0.22.39",
            "v0.36.7-rc.1",
            "v0.36.6",
            "v0.22.38",
            "v0.36.5",
            "v0.36.4",
            "v0.36.3",
            "v0.36.2",
            "v0.36.1",
            "v0.36.0",
            "v0.22.37",
            "v0.36.0-rc.1",
            "v0.35.1",
            "v0.35.0",
            "v0.34.2",
            "v0.34.1",
            "v0.22.36",
            "v0.34.0",
            "v0.33.0",
            "v0.32.0",
            "v0.31.0",
            "v0.30.4",
            "v0.30.3",
            "v0.30.2",
            "v0.22.35",
            "v0.30.1",
            "v0.30.0",
            "v0.29.3",
            "v0.29.2",
            "v0.29.1",
            "v0.22.34",
            "v0.29.0",
            "v0.28.4",
            "v0.28.3",
            "v0.28.2",
            "v0.28.1",
            "v0.28.0",
            "v0.27.0",
            "v0.22.33",
            "v0.22.32",
            "v0.26.1",
            "v0.22.31",
            "v0.26.0",
            "v0.26.0-rc.1",
            "v0.22.30",
            "v0.25.0",
            "v0.24.4",
            "v0.22.29",
            "v0.24.3",
            "v0.24.2",
            "v0.24.1",
            "v0.24.0",
            "v0.22.28",
            "v0.22.27",
            "v0.23.4",
            "v0.23.3",
            "v0.23.2",
            "v0.23.1",
            "v0.23.0",
            "v0.22.26",
            "v0.22.25",
            "v0.22.24",
            "v0.22.23",
            "v0.22.22",
            "v0.22.21",
            "v0.22.20",
            "v0.22.19",
            "v0.22.18",
            "v0.22.17",
            "v0.22.16",
            "v0.22.15",
            "v0.22.14",
            "v0.22.14-rc",
            "v0.22.13",
            "v0.22.12",
            "v0.22.9",
            "v0.22.8",
            "v0.22.7",
            "v0.22.6",
            "v0.22.5",
            "v0.22.4",
            "v0.22.3",
            "v0.22.2",
            "v0.22.1",
            "v0.21.1",
            "v0.21.0",
            "v0.20.1",
            "v0.20.0",
            "v0.20.0-rc3",
            "v0.20.0-rc2",
            "v0.20.0-rc",
            "v0.19.0",
            "v0.18.6",
            "v0.18.5",
            "v0.18.4",
            "v0.18.3",
            "v0.18.2",
            "v0.18.1",
            "v0.18.0",
            "v0.17.4",
            "v0.17.3",
            "v0.17.2",
            "v0.17.1",
            "v0.17.0",
            "v0.16.1",
            "v0.16.0",
            "v0.15.0",
            "v0.14.2",
            "v0.14.1",
            "v0.14.0",
            "v0.13.0",
            "v0.12.0",
            "v0.11.0",
            "v0.10.4",
            "v0.10.3",
            "v0.10.2",
            "v0.10.1",
            "v0.10.0",
            "v0.9.2",
            "v0.9.1",
            "v0.9.0",
            "v0.8.0",
            "v0.8.0-rc4",
            "v0.8.0-rc3",
            "v0.8.0-rc2",
            "v0.8.0-rc1",
            "v0.7.9",
            "v0.7.8",
            "v0.7.7",
            "v0.7.6",
            "v0.7.5",
            "v0.7.4",
            "v0.7.3",
            "v0.7.2",
            "v0.7.1",
            "v0.7.0",
            "v0.6.0",
            "v0.5.0",
            "v0.4.2",
            "v0.4.1",
            "v0.4.0",
            "v0.3.4",
            "v0.3.3",
            "v0.3.2",
            "v0.3.1",
            "v0.3.0",
            "v0.2.8",
            "v0.2.7",
            "v0.2.6",
            "v0.2.5",
            "v0.2.4",
            "v0.2.3",
            "v0.2.2",
            "v0.2.1",
            "v0.2.0",
            "v0.1.2",
            "v0.1.1",
            "v0.1.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-44166.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:37.603227353Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/44xxx/CVE-2026-44166.json",
        "https://github.com/pocketbase/pocketbase/security/advisories/GHSA-pq7p-mc74-g65w",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-44166"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-287"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/44xxx/CVE-2026-44166.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-44166",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 504646,
  "published_at": "2026-05-12T17:16:59.613+00:00"
}