CVE-2024-13925

7.5 HIGH

📋 TL;DR

The Klarna Checkout for WooCommerce WordPress plugin before version 2.13.5 exposes an unauthenticated WooCommerce Ajax endpoint that allows attackers to flood log files with data. This can rapidly consume disk space, potentially filling the entire disk and causing service disruption. WordPress sites using vulnerable versions of this plugin are affected.

💻 Affected Systems

Products:
  • Klarna Checkout for WooCommerce WordPress plugin
Versions: All versions before 2.13.5
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress with WooCommerce installed. The vulnerable endpoint is accessible by default without authentication.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete disk exhaustion leading to service unavailability, data loss, and potential denial of service affecting all site functionality.

🟠

Likely Case

Rapid disk space consumption causing performance degradation, log rotation failures, and potential service interruptions.

🟢

If Mitigated

Minimal impact with proper disk monitoring, log rotation, and file size limits in place.

🌐 Internet-Facing: HIGH
🏢 Internal Only: LOW

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires only HTTP POST requests to the vulnerable endpoint with large payloads.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.13.5

Vendor Advisory: https://wpscan.com/vulnerability/6aebb52f-d74a-4043-86c4-c24579f24ef4/

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find 'Klarna Checkout for WooCommerce'. 4. Click 'Update Now' if update is available. 5. Alternatively, download version 2.13.5+ from WordPress.org and upload manually.

🔧 Temporary Workarounds

Restrict access to WooCommerce Ajax endpoint

all

Block unauthenticated access to the vulnerable WooCommerce Ajax endpoint using web server rules or WAF.

# Apache .htaccess example
RewriteCond %{REQUEST_URI} ^/wp-admin/admin-ajax\.php [NC]
RewriteCond %{QUERY_STRING} action=wc_klarna_checkout [NC]
RewriteCond %{HTTP_COOKIE} !wordpress_logged_in [NC]
RewriteRule ^ - [F,L]

Implement rate limiting

linux

Apply rate limiting to WooCommerce Ajax endpoints to prevent flooding attacks.

# Using fail2ban example
# Create filter in /etc/fail2ban/filter.d/woocommerce-ajax.conf
[Definition]
failregex = ^<HOST> -.*POST.*/wp-admin/admin-ajax.php.*action=wc_klarna_checkout

# Add to jail.local
[woocommerce-ajax]
enabled = true
port = http,https
filter = woocommerce-ajax
maxretry = 10
findtime = 60
bantime = 3600

🧯 If You Can't Patch

  • Disable the Klarna Checkout plugin temporarily until patching is possible.
  • Implement strict disk usage monitoring with alerts for rapid consumption patterns.

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin → Plugins → Installed Plugins for Klarna Checkout for WooCommerce version. If version is below 2.13.5, system is vulnerable.

Check Version:

wp plugin list --name='Klarna Checkout for WooCommerce' --field=version

Verify Fix Applied:

Confirm plugin version is 2.13.5 or higher in WordPress admin panel. Test that unauthenticated POST requests to /wp-admin/admin-ajax.php?action=wc_klarna_checkout no longer accept large payloads.

📡 Detection & Monitoring

Log Indicators:

  • Rapid growth of WordPress debug.log or WooCommerce log files
  • Multiple large POST requests to /wp-admin/admin-ajax.php with action=wc_klarna_checkout
  • Disk space alerts showing rapid consumption

Network Indicators:

  • High volume of POST requests to WooCommerce Ajax endpoints from single IPs
  • Unusually large request payloads to WordPress admin-ajax.php

SIEM Query:

source="web_server_logs" AND uri_path="/wp-admin/admin-ajax.php" AND query_string="*action=wc_klarna_checkout*" AND request_size>1000000 | stats count by src_ip

🔗 References

📤 Share & Export