BugShield research
payOS 1.0.75 unauthenticated payment gateway settings modification
Published 22 Oct 2026
Updated 22 Oct 2026
Does this affect my version?
Check your installed version against this advisory. This compares the report’s version ranges and does not scan your website.
BugShield advisory
highBugShield Scout discovered a missing authorisation check in payOS 1.0.75. A visitor without a WordPress account who can trigger WooCommerce to load the payOS gateway, including through checkout, can submit changes to its payment gateway configuration. In classes/class-payos.php, the gateway constructor calls payos_save_settings_and_webhook() when gateway settings and a submit field are supplied. This path does not check user capabilities or verify the nonce rendered on the administration form. If payOS accepts webhook registration with the submitted credentials, the plugin stores the supplied client ID, API key, checksum key and other gateway settings. Credential replacement therefore requires credentials accepted by payOS for webhook registration; it is not an unconditional write of arbitrary invalid credentials. A failed registration still changes the stored webhook status and clears gateway account metadata. Unauthorised configuration changes can disrupt payment processing and replace the shop's configured payOS integration. BugShield privately reported the issue on 19 October 2026. The developer confirmed that version 1.0.76 includes the fix. Source review of 1.0.76 confirms that the constructor's save path now requires POST data, a non-AJAX administration request, the manage_woocommerce capability, the WooCommerce settings page with the payOS section selected, and a valid payos_save_settings nonce. The separate WooCommerce settings-save callback also checks manage_woocommerce. Version 1.0.77 retains the constructor's access and nonce checks. BugShield reviewed the affected and fixed source packages but has not performed an independent functional retest in WordPress. The confirmed affected version is 1.0.75; earlier versions were not assessed for this advisory. High is BugShield's qualitative severity assessment; no CVE or numerical CVSS score is assigned.
Discovered by BugShield Scout. Published by BugShield.
payOS
- Software
- plugin · payos
- Affected versions
- From 1.0.75, through 1.0.75
- Fix availability
- Fix available
- Fixed versions
- 1.0.76
Recommended action
Back up your website and update payOS to the latest available release, at least 1.0.76. Version 1.0.77 was available when this advisory was published. Confirm that the stored client ID, API key, checksum key and payment settings belong to your intended payOS account, reconnect the webhook if necessary, and test the intended checkout and payment confirmation workflow.
Need help fixing this issue?
Get help checking your site, applying an available update and resolving any problems after updating.
Get help with this issueQuestions about this vulnerability
Which versions of payOS are affected?
BugShield lists these affected versions: From 1.0.75, through 1.0.75. Use the version checker above to compare your installed release with this report.
Is a fix available for payOS?
BugShield reports a fix for this issue in payOS. It lists these fixed versions: 1.0.76. Back up your website and test the recommended update before applying it to your live site.
Where can I find my installed plugin version?
In WordPress, open Plugins > Installed Plugins and find the version shown beneath the plugin name.
Does an affected version mean my website has been hacked?
An affected version means the installed release matches a vulnerability described in this report. It does not show whether anyone has exploited it on your website. The checker compares version numbers with stored reports; it does not inspect your website.
Other reports for the same product
These reports cover at least one of the same plugins, themes or WordPress core. Check each report’s affected versions separately.