CVE-2026-39387 (GCVE-0-2026-39387)

Vulnerability from cvelistv5 – Published: 2026-04-14 22:56 – Updated: 2026-04-15 13:42
VLAI
Title
BoidCMS: Local File Inclusion (LFI) leads to Remote Code Execution (RCE) via tpl parameter
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.
SSVC
Exploitation: poc Automatable: no Technical Impact: total
CISA Coordinator (v2.0.3)
CWE
  • CWE-98 - Improper Control of Filename for Include/Require Statement in PHP Program ('PHP Remote File Inclusion')
Assigner
References
Impacted products
Vendor Product Version
BoidCMS BoidCMS Affected: < 2.1.3
Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-39387",
                "options": [
                  {
                    "Exploitation": "poc"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "total"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-04-15T13:42:23.034628Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-04-15T13:42:26.866Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "references": [
          {
            "tags": [
              "exploit"
            ],
            "url": "https://github.com/BoidCMS/BoidCMS/security/advisories/GHSA-45xp-xw54-6cv6"
          }
        ],
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "product": "BoidCMS",
          "vendor": "BoidCMS",
          "versions": [
            {
              "status": "affected",
              "version": "\u003c 2.1.3"
            }
          ]
        }
      ],
      "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."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "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"
          }
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-98",
              "description": "CWE-98: Improper Control of Filename for Include/Require Statement in PHP Program (\u0027PHP Remote File Inclusion\u0027)",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-04-14T22:56:20.935Z",
        "orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
        "shortName": "GitHub_M"
      },
      "references": [
        {
          "name": "https://github.com/BoidCMS/BoidCMS/security/advisories/GHSA-45xp-xw54-6cv6",
          "tags": [
            "x_refsource_CONFIRM"
          ],
          "url": "https://github.com/BoidCMS/BoidCMS/security/advisories/GHSA-45xp-xw54-6cv6"
        },
        {
          "name": "https://github.com/BoidCMS/BoidCMS/releases/tag/v2.1.3",
          "tags": [
            "x_refsource_MISC"
          ],
          "url": "https://github.com/BoidCMS/BoidCMS/releases/tag/v2.1.3"
        }
      ],
      "source": {
        "advisory": "GHSA-45xp-xw54-6cv6",
        "discovery": "UNKNOWN"
      },
      "title": "BoidCMS: Local File Inclusion (LFI) leads to Remote Code Execution (RCE) via tpl parameter"
    }
  },
  "cveMetadata": {
    "assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
    "assignerShortName": "GitHub_M",
    "cveId": "CVE-2026-39387",
    "datePublished": "2026-04-14T22:56:20.935Z",
    "dateReserved": "2026-04-06T22:06:40.515Z",
    "dateUpdated": "2026-04-15T13:42:26.866Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-39387",
      "date": "2026-08-03",
      "epss": "0.00731",
      "percentile": "0.50734"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-39387\",\"sourceIdentifier\":\"security-advisories@github.com\",\"published\":\"2026-04-14T23:16:29.300\",\"lastModified\":\"2026-07-24T21:10:00.143\",\"vulnStatus\":\"Analyzed\",\"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.\"}],\"affected\":[{\"source\":\"security-advisories@github.com\",\"affectedData\":[{\"vendor\":\"BoidCMS\",\"product\":\"BoidCMS\",\"versions\":[{\"version\":\"\u003c 2.1.3\",\"status\":\"affected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.2,\"baseSeverity\":\"HIGH\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"HIGH\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.2,\"impactScore\":5.9}],\"ssvcV203\":[{\"source\":\"134c704f-9b21-4f2e-91b3-4a467353bcc0\",\"ssvcData\":{\"timestamp\":\"2026-04-15T13:42:23.034628Z\",\"id\":\"CVE-2026-39387\",\"options\":[{\"exploitation\":\"poc\"},{\"automatable\":\"no\"},{\"technicalImpact\":\"total\"}],\"role\":\"CISA Coordinator\",\"version\":\"2.0.3\"}}]},\"weaknesses\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Secondary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-98\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:a:boidcms:boidcms:*:*:*:*:*:*:*:*\",\"versionEndExcluding\":\"2.1.3\",\"matchCriteriaId\":\"D2A7E151-E529-40B4-8773-A3C2E863FC39\"}]}]}],\"references\":[{\"url\":\"https://github.com/BoidCMS/BoidCMS/releases/tag/v2.1.3\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Product\",\"Release Notes\"]},{\"url\":\"https://github.com/BoidCMS/BoidCMS/security/advisories/GHSA-45xp-xw54-6cv6\",\"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\"]}]}}",
    "redhat_vex": {
      "current_release_date": "2026-06-05T19:12:28+00:00",
      "cve": "CVE-2026-39387",
      "id": "CVE-2026-39387",
      "initial_release_date": "2026-01-01T00:00:00+00:00",
      "product_status:known_not_affected": "1",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "BoidCMS: Local File Inclusion (LFI) leads to Remote Code Execution (RCE) via tpl parameter",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-39387.json",
      "version": "3"
    },
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2026-39387\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"poc\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"total\"}], \"version\": \"2.0.3\", \"timestamp\": \"2026-04-15T13:42:23.034628Z\"}}}], \"references\": [{\"url\": \"https://github.com/BoidCMS/BoidCMS/security/advisories/GHSA-45xp-xw54-6cv6\", \"tags\": [\"exploit\"]}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2026-04-15T13:42:17.621Z\"}}], \"cna\": {\"title\": \"BoidCMS: Local File Inclusion (LFI) leads to Remote Code Execution (RCE) via tpl parameter\", \"source\": {\"advisory\": \"GHSA-45xp-xw54-6cv6\", \"discovery\": \"UNKNOWN\"}, \"metrics\": [{\"cvssV3_1\": {\"scope\": \"UNCHANGED\", \"version\": \"3.1\", \"baseScore\": 7.2, \"attackVector\": \"NETWORK\", \"baseSeverity\": \"HIGH\", \"vectorString\": \"CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H\", \"integrityImpact\": \"HIGH\", \"userInteraction\": \"NONE\", \"attackComplexity\": \"LOW\", \"availabilityImpact\": \"HIGH\", \"privilegesRequired\": \"HIGH\", \"confidentialityImpact\": \"HIGH\"}}], \"affected\": [{\"vendor\": \"BoidCMS\", \"product\": \"BoidCMS\", \"versions\": [{\"status\": \"affected\", \"version\": \"\u003c 2.1.3\"}]}], \"references\": [{\"url\": \"https://github.com/BoidCMS/BoidCMS/security/advisories/GHSA-45xp-xw54-6cv6\", \"name\": \"https://github.com/BoidCMS/BoidCMS/security/advisories/GHSA-45xp-xw54-6cv6\", \"tags\": [\"x_refsource_CONFIRM\"]}, {\"url\": \"https://github.com/BoidCMS/BoidCMS/releases/tag/v2.1.3\", \"name\": \"https://github.com/BoidCMS/BoidCMS/releases/tag/v2.1.3\", \"tags\": [\"x_refsource_MISC\"]}], \"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.\"}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-98\", \"description\": \"CWE-98: Improper Control of Filename for Include/Require Statement in PHP Program (\u0027PHP Remote File Inclusion\u0027)\"}]}], \"providerMetadata\": {\"orgId\": \"a0819718-46f1-4df5-94e2-005712e83aaa\", \"shortName\": \"GitHub_M\", \"dateUpdated\": \"2026-04-14T22:56:20.935Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2026-39387\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-04-15T13:42:26.866Z\", \"dateReserved\": \"2026-04-06T22:06:40.515Z\", \"assignerOrgId\": \"a0819718-46f1-4df5-94e2-005712e83aaa\", \"datePublished\": \"2026-04-14T22:56:20.935Z\", \"assignerShortName\": \"GitHub_M\"}",
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

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…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Loading…