CVE-2026-40316
Full vulnerability record from the local CVENow database.
Description
OWASP BLT is a QA testing and vulnerability disclosure platform that encompasses websites, apps, git repositories, and more. Versions prior to 2.1.1 contain an RCE vulnerability in the .github/workflows/regenerate-migrations.yml workflow. The workflow uses the pull_request_target trigger to run with full GITHUB_TOKEN write permissions, copies attacker-controlled files from untrusted pull requests into the trusted runner workspace via git show, and then executes python manage.py makemigrations, which imports Django model modules including attacker-controlled website/models.py at runtime. Any module-level Python code in the attacker's models.py is executed during import, enabling arbitrary code execution in the privileged CI environment with access to GITHUB_TOKEN and repository secrets. The attack is triggerable by any external contributor who can open a pull request, provided a maintainer applies the regenerate-migrations label, potentially leading to secret exfiltration, repository compromise, and supply chain attacks. A patch for this issue is expected to be released in version 2.1.1.
View original CVE JSON
{
"id": "CVE-2026-40316",
"sourceIdentifier": "[email protected]",
"published": "2026-04-15T23:16:10.220",
"lastModified": "2026-10-26T22:10:00.163",
"vulnStatus": "Analyzed",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "OWASP BLT is a QA testing and vulnerability disclosure platform that encompasses websites, apps, git repositories, and more. Versions prior to 2.1.1 contain an RCE vulnerability in the .github/workflows/regenerate-migrations.yml workflow. The workflow uses the pull_request_target trigger to run with full GITHUB_TOKEN write permissions, copies attacker-controlled files from untrusted pull requests into the trusted runner workspace via git show, and then executes python manage.py makemigrations, which imports Django model modules including attacker-controlled website/models.py at runtime. Any module-level Python code in the attacker's models.py is executed during import, enabling arbitrary code execution in the privileged CI environment with access to GITHUB_TOKEN and repository secrets. The attack is triggerable by any external contributor who can open a pull request, provided a maintainer applies the regenerate-migrations label, potentially leading to secret exfiltration, repository compromise, and supply chain attacks. A patch for this issue is expected to be released in version 2.1.1."
},
{
"lang": "es",
"value": "OWASP BLT es una plataforma de pruebas de QA y divulgación de vulnerabilidades que abarca sitios web, aplicaciones, repositorios git y más. Las versiones anteriores a la 2.1.1 contienen una vulnerabilidad RCE en el flujo de trabajo .github/workflows/regenerate-migrations.yml. El flujo de trabajo utiliza el disparador pull_request_target para ejecutarse con permisos de escritura completos de GITHUB_TOKEN, copia archivos controlados por el atacante de solicitudes de extracción no confiables al espacio de trabajo del ejecutor confiable a través de git show, y luego ejecuta python manage.py makemigrations, que importa módulos de modelo de Django incluyendo website/models.py controlado por el atacante en tiempo de ejecución. Cualquier código Python a nivel de módulo en el models.py del atacante se ejecuta durante la importación, lo que permite la ejecución de código arbitrario en el entorno CI privilegiado con acceso a GITHUB_TOKEN y a los secretos del repositorio. El ataque puede ser activado por cualquier colaborador externo que pueda abrir una solicitud de extracción, siempre que un mantenedor aplique la etiqueta regenerate-migrations, lo que podría llevar a la exfiltración de secretos, el compromiso del repositorio y ataques a la cadena de suministro. Se espera que un parche para este problema sea lanzado en la versión 2.1.1."
}
],
"affected": [
{
"source": "[email protected]",
"affectedData": [
{
"vendor": "OWASP-BLT",
"product": "BLT",
"versions": [
{
"version": "<= 2.1",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV31": [
{
"source": "[email protected]",
"type": "Secondary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H",
"baseScore": 8.8,
"baseSeverity": "HIGH",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"privilegesRequired": "NONE",
"userInteraction": "REQUIRED",
"scope": "UNCHANGED",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"availabilityImpact": "HIGH"
},
"exploitabilityScore": 2.8,
"impactScore": 5.9
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2026-04-16T14:17:42.666326Z",
"id": "CVE-2026-40316",
"options": [
{
"exploitation": "poc"
},
{
"automatable": "no"
},
{
"technicalImpact": "total"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-94"
},
{
"lang": "en",
"value": "CWE-95"
}
]
}
],
"configurations": [
{
"nodes": [
{
"operator": "OR",
"negate": false,
"cpeMatch": [
{
"vulnerable": true,
"criteria": "cpe:2.3:a:owasp:owasp_blt:*:*:*:*:*:*:*:*",
"versionEndIncluding": "2.1",
"matchCriteriaId": "C9D716C3-AC30-4AD0-8BA8-AEBEF29A1980"
}
]
}
]
}
],
"references": [
{
"url": "https://github.com/OWASP-BLT/BLT/security/advisories/GHSA-wxm3-64fx-cmx9",
"source": "[email protected]",
"tags": [
"Exploit",
"Vendor Advisory"
]
}
]
}