FKIE_CVE-2026-39387
Vulnerability from fkie_nvd - Published: 2026-04-14 23:16 - Updated: 2026-07-24 21:10
Severity
Summary
BoidCMS is an open-source, PHP-based flat-file CMS for building simple websites and blogs, using JSON as its database. Versions prior to 2.1.3 are vulnerable to a critical Local File Inclusion (LFI) attack via the tpl parameter, which can lead to Remote Code Execution (RCE).The application fails to sanitize the tpl (template) parameter during page creation and updates. This parameter is passed directly to a require_once() statement without path validation. An authenticated administrator can exploit this by injecting path traversal sequences (../) into the tpl value to escape the intended theme directory and include arbitrary files — specifically, files from the server's media/ directory. When combined with the file upload functionality, this becomes a full RCE chain: an attacker can first upload a file with embedded PHP code (e.g., disguised as image data), then use the path traversal vulnerability to include that file via require_once(), executing the embedded code with web server privileges. This issue has been fixed in version 2.1.3.
References
| URL | Tags | ||
|---|---|---|---|
| security-advisories@github.com | https://github.com/BoidCMS/BoidCMS/releases/tag/v2.1.3 | Product, Release Notes | |
| security-advisories@github.com | https://github.com/BoidCMS/BoidCMS/security/advisories/GHSA-45xp-xw54-6cv6 | Exploit, Mitigation, Vendor Advisory | |
| 134c704f-9b21-4f2e-91b3-4a467353bcc0 | https://github.com/BoidCMS/BoidCMS/security/advisories/GHSA-45xp-xw54-6cv6 | Exploit, Mitigation, Vendor Advisory |
{
"affected": [
{
"affectedData": [
{
"product": "BoidCMS",
"vendor": "BoidCMS",
"versions": [
{
"status": "affected",
"version": "\u003c 2.1.3"
}
]
}
],
"source": "security-advisories@github.com"
}
],
"configurations": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:a:boidcms:boidcms:*:*:*:*:*:*:*:*",
"matchCriteriaId": "D2A7E151-E529-40B4-8773-A3C2E863FC39",
"versionEndExcluding": "2.1.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "BoidCMS is an open-source, PHP-based flat-file CMS for building simple websites and blogs, using JSON as its database. Versions prior to 2.1.3 are vulnerable to a critical Local File Inclusion (LFI) attack via the tpl parameter, which can lead to Remote Code Execution (RCE).The application fails to sanitize the tpl (template) parameter during page creation and updates. This parameter is passed directly to a require_once() statement without path validation. An authenticated administrator can exploit this by injecting path traversal sequences (../) into the tpl value to escape the intended theme directory and include arbitrary files \u2014 specifically, files from the server\u0027s media/ directory. When combined with the file upload functionality, this becomes a full RCE chain: an attacker can first upload a file with embedded PHP code (e.g., disguised as image data), then use the path traversal vulnerability to include that file via require_once(), executing the embedded code with web server privileges. This issue has been fixed in version 2.1.3."
},
{
"lang": "es",
"value": "BoidCMS es un CMS de ficheros planos de c\u00f3digo abierto, basado en PHP, para construir sitios web y blogs sencillos, usando JSON como su base de datos. Las versiones anteriores a la 2.1.3 son vulnerables a un ataque cr\u00edtico de Inclusi\u00f3n Local de Ficheros (LFI) a trav\u00e9s del par\u00e1metro tpl, lo que puede conducir a la Ejecuci\u00f3n Remota de C\u00f3digo (RCE). La aplicaci\u00f3n no sanitiza el par\u00e1metro tpl (plantilla) durante la creaci\u00f3n y actualizaci\u00f3n de p\u00e1ginas. Este par\u00e1metro se pasa directamente a una sentencia require_once() sin validaci\u00f3n de ruta. Un administrador autenticado puede explotar esto inyectando secuencias de salto de ruta (../) en el valor de tpl para escapar del directorio de tema previsto e incluir ficheros arbitrarios - espec\u00edficamente, ficheros del directorio media/ del servidor. Cuando se combina con la funcionalidad de subida de ficheros, esto se convierte en una cadena completa de RCE: un atacante puede primero subir un fichero con c\u00f3digo PHP incrustado (por ejemplo, disfrazado como datos de imagen), luego usar la vulnerabilidad de salto de ruta para incluir ese fichero a trav\u00e9s de require_once(), ejecutando el c\u00f3digo incrustado con privilegios de servidor web. Este problema ha sido solucionado en la versi\u00f3n 2.1.3."
}
],
"id": "CVE-2026-39387",
"lastModified": "2026-07-24T21:10:00.143",
"metrics": {
"cvssMetricV31": [
{
"cvssData": {
"attackComplexity": "LOW",
"attackVector": "NETWORK",
"availabilityImpact": "HIGH",
"baseScore": 7.2,
"baseSeverity": "HIGH",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"privilegesRequired": "HIGH",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"exploitabilityScore": 1.2,
"impactScore": 5.9,
"source": "security-advisories@github.com",
"type": "Secondary"
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"id": "CVE-2026-39387",
"options": [
{
"exploitation": "poc"
},
{
"automatable": "no"
},
{
"technicalImpact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-04-15T13:42:23.034628Z",
"version": "2.0.3"
}
}
]
},
"published": "2026-04-14T23:16:29.300",
"references": [
{
"source": "security-advisories@github.com",
"tags": [
"Product",
"Release Notes"
],
"url": "https://github.com/BoidCMS/BoidCMS/releases/tag/v2.1.3"
},
{
"source": "security-advisories@github.com",
"tags": [
"Exploit",
"Mitigation",
"Vendor Advisory"
],
"url": "https://github.com/BoidCMS/BoidCMS/security/advisories/GHSA-45xp-xw54-6cv6"
},
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"tags": [
"Exploit",
"Mitigation",
"Vendor Advisory"
],
"url": "https://github.com/BoidCMS/BoidCMS/security/advisories/GHSA-45xp-xw54-6cv6"
}
],
"sourceIdentifier": "security-advisories@github.com",
"vulnStatus": "Analyzed",
"weaknesses": [
{
"description": [
{
"lang": "en",
"value": "CWE-98"
}
],
"source": "security-advisories@github.com",
"type": "Secondary"
}
]
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
The MITRE ATT&CK techniques below are AI-generated suggestions, inferred from the description of the
vulnerability by the CIRCL/vulnerability-attack-technique-classification-roberta-base
model, served locally by ML-Gateway.
They have not been verified by an analyst and are provided for guidance only.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Loading…
Loading…