CVE-2026-103479

Pubjet | پاب‌جت <= 5.4.8 - Authenticated (Subscriber+) Privilege Escalation to 'check-token' AJAX Action

2026-11-05 22:00
Wordfence PRISM

Strategic Overview

Status
Unpatched
Affected Plugin
Pubjet | پاب‌جت
Affected Version
<= 5.4.8
CVSS
7.6High
Weakness type
CWE-269 · Improper Privilege Management
CVE
CVE-2026-103479
View all Pubjet | پاب‌جت vulnerabilities

At a glance

CVE-2026-103479 is a high-severity Improper Privilege Management vulnerability in the Pubjet WordPress plugin, affecting versions <= 5.4.8. It carries a CVSS score of 7.6 (reachable over the network; low attack complexity; high integrity impact). Exploitation requires an authenticated account at Subscriber level or above. No fixed release has been reported yet; treat installations running this software as exposed. Disclosed November 2026, reported by Wordfence PRISM.

Vulnerability Overview

The Pubjet | پاب‌جت plugin for WordPress is vulnerable to Privilege Escalation in all versions up to, and including, 5.4.8. This is due to the `checkToken()` AJAX handler — registered under `wp_ajax_pubjet-check-token` — performing no capability check and no nonce verification before unconditionally writing the attacker-supplied `token` GET parameter directly into the site-wide `pubjet_settings` option via `pubjet_update_setting()`, prior to any remote validation. This makes it possible for authenticated attackers, with Subscriber-level access and above, to overwrite the plugin's stored REST API credential with an attacker-chosen value, immediately elevating their effective privileges to those of an authorized Pubjet API client and enabling them to invoke otherwise-restricted endpoints — `createReportage`, `updateReportage`, `deleteReportage`, `toggleCopyright`, and `createBacklink` — to create, modify, and delete arbitrary reportage posts and manipulate plugin state that Subscribers cannot normally access. The privilege escalation is self-reinforcing: because `RestApi::isTokenValid()` authenticates solely by comparing the incoming `Authorization` header against the value returned by `pubjet_token()`, which reads from the same option the unprotected handler writes to, the attacker-planted token is trusted as legitimate on all subsequent requests.

Technical Analysis

The vector marks this flaw as remotely reachable over the network, with low attack complexity — no special timing or configuration is needed, and no interaction from a victim user. A successful exploit has high impact on integrity.

CWE-269: Improper Privilege Management

Pubjet <= 5.4.8 carries this weakness at checkToken(), and reaching it takes an account at Subscriber level or above. Improper privilege management means the code lets an account end up with capabilities its role should not have.

It converts a low-privileged account into an administrative one, which makes every other restriction on the site irrelevant. No fixed build of this plugin is recorded for Pubjet yet, so installs running <= 5.4.8 stay exposed until the vendor ships one.

Remediation

No known patch available. Please review the vulnerability's details in depth and employ mitigations based on your organization's risk tolerance. It may be best to uninstall the affected software and find a replacement.

How does WordSec protect against this?

Because it turns on account access, WordSec's login security is the relevant layer: role-based two-factor, captcha and brute-force limits raise the cost of getting the account this needs. No patched version is recorded yet, which is the case where a filtering layer matters most, because there is nothing to update to.

  • Login Security
  • Alerts

External References

Related records

Vulnerability data © Defiant, Inc., provided under the Wordfence Intelligence T&C