# myPOS Checkout <= 1.4.5 - Authenticated (Shop Manager+) PHP Object Injection via Upsells REST Endpoint

- **ID:** WPSEC-2026-2644
- **Plugin:** myPOS Checkout (`mypos-virtual-for-woocommerce`), https://wordpress.org/plugins/mypos-virtual-for-woocommerce/
- **Affected versions:** all versions before 1.4.6
- **Fixed in:** 1.4.6 (Update to 1.4.6 or later.)
- **Severity:** Medium 6.6 (CVSS:3.1/AV:N/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H)
- **Weakness:** CWE-502
- **Usage among sites WPSec scans:** plugin Low, affected versions Low (as of 2026-11-06)
- **Attack surface analysis:** https://attacksurface.wpsec.com/plugin/mypos-virtual-for-woocommerce
- **Fix released:** 2026-11-05
- **Published:** 2026-11-06
- **URL:** https://wpsec.com/vuln/WPSEC-2026-2644/

## Description

The myPOS Checkout plugin for WordPress is vulnerable to PHP Object Injection via the wc/v3/upsells REST endpoint in all versions up to, and including, 1.4.5, due to the endpoint storing non-array values of the base_products and recommended_products fields unchanged, which are later passed to unserialize() and maybe_unserialize() when upsells are looked up on checkout and when they are returned by the REST endpoint. This makes it possible for authenticated attackers, with shop manager-level access and above, to inject a PHP Object. No known POP chain is present in the vulnerable software. If a POP chain is present via an additional plugin or theme installed on the target system, it could allow the attacker to delete arbitrary files, retrieve sensitive data, or execute code.

## References

- https://wpsec.com/vuln/WPSEC-2026-2644/
- https://plugins.svn.wordpress.org/mypos-virtual-for-woocommerce/tags/1.4.6/
- https://wordpress.org/plugins/mypos-virtual-for-woocommerce/

Source: WPSec, https://wpsec.com/vuln/WPSEC-2026-2644/

License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Free to use, share and adapt, also commercially, if you credit WPSec and link to this advisory.
