---
id: CVE-2026-104803
title: >-
  The WPCOM Member plugin for WordPress is vulnerable to Authentication Bypass
  in all versions up to, and including, 1.7.27 via the `uuid` and `code`
  parameters of the social-login callback handler registered on the `init` hook
summary: >-
  The WPCOM Member plugin for WordPress is vulnerable to Authentication Bypass
  in all versions up to, and including, 1.7.27 via the `uuid` and `code`
  parameters of the social-login callback handler registered on the `init` hook.
  The vulner…
severity: critical
cvss: 9.8
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'
cwe:
  - CWE-287
published: '2026-10-10'
updated: '2026-10-10'
sourceUpdated: '2026-10-10T08:17:04.210'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-104803'
references:
  - url: >-
      https://plugins.trac.wordpress.org/browser/wpcom-member/tags/1.7.27/includes/class-sesstion.php#L13
    label: security@wordfence.com
  - url: >-
      https://plugins.trac.wordpress.org/browser/wpcom-member/tags/1.7.27/includes/social-login.php#L1235
    label: security@wordfence.com
  - url: >-
      https://plugins.trac.wordpress.org/browser/wpcom-member/tags/1.7.27/includes/social-login.php#L674
    label: security@wordfence.com
  - url: >-
      https://plugins.trac.wordpress.org/browser/wpcom-member/tags/1.7.27/includes/social-login.php#L91
    label: security@wordfence.com
  - url: >-
      https://plugins.trac.wordpress.org/browser/wpcom-member/trunk/includes/social-login.php
    label: security@wordfence.com
  - url: >-
      https://www.wordfence.com/threat-intel/vulnerabilities/id/3dee7f76-bd66-4e54-8ef6-bbf581ebcc11?source=cve
    label: security@wordfence.com
tags:
  - nvd
ingestedAt: '2026-10-10T08:27:37.785Z'
---

## Overview

The WPCOM Member plugin for WordPress is vulnerable to Authentication Bypass in all versions up to, and including, 1.7.27 via the `uuid` and `code` parameters of the social-login callback handler registered on the `init` hook. The vulnerability exists because the `login` function's social-login flow performs no nonce validation, no OAuth state verification, and no per-visitor namespace isolation in the session store, allowing an unauthenticated attacker to issue a crafted GET request that writes an attacker-named, attacker-valued entry into the global session namespace (bypassing the per-visitor prefix by prepending an underscore), then issue a second GET request triggering `weapp_new_user()` to read that forged entry and resolve the attacker-supplied `openid` value to a bound WordPress account before `wp_set_auth_cookie()` establishes a fully authenticated session. This makes it possible for unauthenticated attackers to log in as any WordPress user — including administrators — whose bound social provider identifier (openid/unionid) is known or discoverable. Successful exploitation requires that the target site has at least one social provider configured (which activates the vulnerable handler) and that the attacker knows or can enumerate the victim account's bound openid or unionid.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
