CVE-2024-9109
📋 TL;DR
The WooCommerce UPS Shipping plugin for WordPress has a missing capability check that allows authenticated users with Subscriber-level access or higher to delete the plugin's API key. This vulnerability affects all versions up to and including 2.3.11. Attackers can disrupt shipping functionality by removing the UPS API credentials.
💻 Affected Systems
- WooCommerce UPS Shipping – Live Rates and Access Points
📦 What is this software?
⚠️ Risk & Real-World Impact
Worst Case
Shipping operations are completely disrupted when UPS API keys are deleted, preventing order fulfillment and causing business downtime until credentials are restored.
Likely Case
Malicious users delete API keys, temporarily disrupting shipping rate calculations and access point lookups until administrators reconfigure the plugin.
If Mitigated
With proper user role management and monitoring, impact is limited to minor service disruption that can be quickly remediated.
🎯 Exploit Status
Exploitation requires authenticated access but is trivial once authenticated. The vulnerability is publicly documented with code references.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 3.0.0
Vendor Advisory: https://plugins.trac.wordpress.org/changeset/3173845
Restart Required: No
Instructions:
1. Log into WordPress admin panel
2. Navigate to Plugins → Installed Plugins
3. Find 'WooCommerce UPS Shipping – Live Rates and Access Points'
4. Click 'Update Now' if available
5. If manual update needed, download version 3.0.0+ from WordPress.org
6. Deactivate old plugin, upload new version, activate
🔧 Temporary Workarounds
Restrict User Roles
allTemporarily remove Subscriber and other low-privilege roles from accessing the WordPress site
Disable Plugin
linuxDeactivate the vulnerable plugin until patched
wp plugin deactivate flexible-shipping-ups
🧯 If You Can't Patch
- Implement strict user role management with minimal necessary privileges
- Monitor plugin logs and WordPress user activity for suspicious API key deletion attempts
🔍 How to Verify
Check if Vulnerable:
Check WordPress admin → Plugins → Installed Plugins for 'WooCommerce UPS Shipping' version 2.3.11 or lower
Check Version:
wp plugin get flexible-shipping-ups --field=version
Verify Fix Applied:
Confirm plugin version is 3.0.0 or higher in WordPress admin panel
📡 Detection & Monitoring
Log Indicators:
- WordPress audit logs showing low-privilege users accessing plugin admin functions
- Plugin-specific logs showing API key deletion events
Network Indicators:
- HTTP POST requests to /wp-admin/admin-ajax.php with action=delete_oauth_data
SIEM Query:
source="wordpress" action="delete_oauth_data" OR (user.role="subscriber" AND plugin.action="admin")
🔗 References
- https://plugins.trac.wordpress.org/browser/flexible-shipping-ups/trunk/vendor_prefixed/octolize/wp-ups-oauth/src/OAuth/Ajax.php#L32
- https://plugins.trac.wordpress.org/changeset/3173845/flexible-shipping-ups/tags/3.0.0/vendor_prefixed/octolize/wp-ups-oauth/src/OAuth/Ajax.php?old=3158553&old_path=flexible-shipping-ups%2Ftags%2F2.3.11%2Fvendor_prefixed%2Foctolize%2Fwp-ups-oauth%2Fsrc%2FOAuth%2FAjax.php
- https://www.wordfence.com/threat-intel/vulnerabilities/id/699fdea9-15ae-4882-9723-9a98d7d53c74?source=cve