CVE-2024-54389

7.1 HIGH

📋 TL;DR

This CSRF vulnerability in the WordPress addWeather plugin allows attackers to trick authenticated administrators into performing unintended actions, potentially leading to stored XSS. It affects all WordPress sites using addWeather plugin versions up to 2.5.1.

💻 Affected Systems

Products:
  • WordPress addWeather plugin by Eduardo Chiaro
Versions: n/a through 2.5.1
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress installation with addWeather plugin enabled and an authenticated administrator to be tricked into visiting a malicious page.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could inject malicious JavaScript that executes in visitors' browsers, potentially stealing session cookies, redirecting users to malicious sites, or performing actions on behalf of authenticated users.

🟠

Likely Case

Attackers create fake weather configuration pages that, when visited by administrators, modify plugin settings to inject malicious scripts affecting all site visitors.

🟢

If Mitigated

With proper CSRF protections and input validation, the vulnerability would be blocked at the request level before any malicious actions could be performed.

🌐 Internet-Facing: HIGH
🏢 Internal Only: LOW

🎯 Exploit Status

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

Exploitation requires social engineering to trick authenticated administrators into clicking malicious links. The vulnerability chains CSRF to stored XSS.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.5.2 or later

Vendor Advisory: https://patchstack.com/database/wordpress/plugin/myweather/vulnerability/wordpress-addweather-plugin-2-5-1-csrf-to-stored-xss-vulnerability?_s_id=cve

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins > Installed Plugins. 3. Find 'addWeather' plugin. 4. Click 'Update Now' if update available. 5. If no update available, deactivate and delete plugin, then install fresh version from WordPress repository.

🔧 Temporary Workarounds

Implement CSRF Protection

all

Add nonce verification to plugin forms and AJAX requests

wp_nonce_field('addweather_action', 'addweather_nonce');
wp_verify_nonce($_POST['addweather_nonce'], 'addweather_action');

Disable Plugin

all

Temporarily disable the addWeather plugin until patched

wp plugin deactivate addweather

🧯 If You Can't Patch

  • Implement web application firewall (WAF) rules to block CSRF attempts targeting addWeather endpoints
  • Educate administrators about phishing risks and implement strict browsing policies for admin accounts

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin panel > Plugins > Installed Plugins for addWeather version. If version is 2.5.1 or earlier, system is vulnerable.

Check Version:

wp plugin get addweather --field=version

Verify Fix Applied:

Verify addWeather plugin version is 2.5.2 or later in WordPress admin panel.

📡 Detection & Monitoring

Log Indicators:

  • Multiple POST requests to /wp-admin/admin-ajax.php with addweather_action parameter from unexpected referrers
  • Unauthorized modifications to weather widget settings

Network Indicators:

  • HTTP requests with suspicious referer headers pointing to external domains
  • Unexpected iframe or script tags in weather widget content

SIEM Query:

source="wordpress" AND (uri_path="/wp-admin/admin-ajax.php" AND query_string="*addweather_action*" AND NOT referer_domain="yourdomain.com")

🔗 References

📤 Share & Export