CVE-2026-103479 · Package
NO FIX YET · SEE WHAT TO DO
The Pubjet WordPress plugin up to and including 5.4.8 has an AJAX handler that writes an attacker-supplied token into the site's settings without any permission or nonce check. A logged-in Subscriber can set the plugin's API credential to a value of their choosing and then use it to create, edit and delete reportage posts and change plugin state.
first public Nov 6, 2026 · 1 source
Check it with your coding agent
It checks your repository and tells you if you’re affected, with the fix.
Any WordPress site running the Pubjet plugin at version 5.4.8 or earlier with at least one account that has Subscriber-level access is exposed. Sites that do not use Pubjet, or that have no user registration and no Subscriber accounts, are not reachable through this flaw. Sources do not say whether a fixed version exists.
Not affected if no-subscriber-accounts, plugin-not-installed
Who cares pubjet, self-hosted, wordpress
wp plugin get pubjet --field=versionpubjet-check-token AJAX action registered in the plugin code5.4.8 (the fixed version is not named in the sources; check the vendor's release notes)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 header against the value returned by , which reads from the same option the unprotected handler writes to, the attacker-planted token is trusted as legitimate on all subsequent requests.
Are you affected?
Tell InfraStack what you run. It checks this one, and every next one, against your stack.
Ask from here. InfraStack checks the affected versions against your stack and answers in your inbox.
InfraStack checks the affected versions against your stack and answers in Slack, with the evidence and the fix.
Authorizationpubjet_token()This page as .md · .json · CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:L
NVD data is provided by NIST and is public domain. Posts quoted belong to their authors.