CVE-2025-22530

6.5 MEDIUM

📋 TL;DR

This stored cross-site scripting (XSS) vulnerability in the SIOT Iamport payment button plugin for WordPress allows attackers to inject malicious scripts that execute when users view affected pages. The vulnerability affects all WordPress sites using the Iamport payment button plugin versions up to 1.1.19. Attackers can steal session cookies, redirect users to malicious sites, or perform actions on behalf of authenticated users.

💻 Affected Systems

Products:
  • SIOT Iamport Payment Button Plugin for WordPress
Versions: n/a through 1.1.19
Operating Systems: Any OS running WordPress
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects WordPress installations with the vulnerable plugin enabled. The vulnerability requires user interaction (viewing a page with injected content) to trigger.

⚠️ 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 steal administrator credentials, take over the WordPress site, install backdoors, deface the website, or steal sensitive customer payment information if the site handles transactions.

🟠

Likely Case

Attackers inject malicious JavaScript to steal user session cookies, redirect visitors to phishing sites, or display fraudulent content to users.

🟢

If Mitigated

With proper input validation and output encoding, the malicious scripts would be rendered harmless as text rather than executable code.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Stored XSS vulnerabilities are commonly exploited. While no public PoC is confirmed, the vulnerability type is well-understood and easy to weaponize.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.1.20 or later

Vendor Advisory: https://patchstack.com/database/wordpress/plugin/iamport-payment/vulnerability/wordpress-plugin-1-1-19-cross-site-scripting-xss-vulnerability?_s_id=cve

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins → Installed Plugins. 3. Find 'SIOT Iamport Payment Button Plugin'. 4. Click 'Update Now' if available. 5. Alternatively, download version 1.1.20+ from WordPress repository and manually update.

🔧 Temporary Workarounds

Disable vulnerable plugin

all

Temporarily disable the Iamport payment button plugin until patched

wp plugin deactivate iamport-payment

Implement Content Security Policy

all

Add CSP headers to restrict script execution sources

Add to .htaccess: Header set Content-Security-Policy "default-src 'self'; script-src 'self'"
Add to nginx config: add_header Content-Security-Policy "default-src 'self'; script-src 'self'";

🧯 If You Can't Patch

  • Implement a Web Application Firewall (WAF) with XSS protection rules
  • Disable the plugin and use alternative payment solutions

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin → Plugins → Installed Plugins for 'SIOT Iamport Payment Button Plugin' version ≤1.1.19

Check Version:

wp plugin get iamport-payment --field=version

Verify Fix Applied:

Verify plugin version is 1.1.20 or higher in WordPress admin panel

📡 Detection & Monitoring

Log Indicators:

  • Unusual POST requests to plugin endpoints with script tags
  • Multiple failed login attempts following suspicious page views

Network Indicators:

  • Outbound connections to unknown domains from your WordPress site
  • Unexpected redirects from payment pages

SIEM Query:

source="wordpress.log" AND ("iamport" OR "payment-button") AND ("<script>" OR "javascript:" OR "onerror=" OR "onload=")

🔗 References

📤 Share & Export