The tj-actions/verify-changed-files action allows for command injection in changed filenames, allowing an attacker to execute arbitrary code and potentially leak secrets. The verify-changed-files workflow returns the list of files changed within a workflow execution. This could potentially allow filenames that contain special characters such as ; which can be used by an attacker to take over the GitHub Runner if the output value is used in a raw fashion (thus being directly replaced before execution) inside a run block. By running custom commands, an attacker may be able to steal secrets such as GITHUB_TOKEN if triggered on other events than pull_request.
This has been patched in versions 17 and 17.0.0 by enabling safe_output by default and returning filename paths escaping special characters for bash environments.
{
"cna_assigner": "GitHub_M",
"cwe_ids": [
"CWE-20"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/52xxx/CVE-2023-52137.json"
}{
"extracted_events": [
{
"cpe": "cpe:2.3:a:tj-actions:verify-changed-files:*:*:*:*:*:github:*:*",
"range": [
{
"introduced": "0"
},
{
"fixed": "17.0.0"
}
],
"source": "CPE_RANGE"
},
{
"range": [
{
"fixed": "498d3f316f501aa72485060e8c96fde7b2014f12"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "592e305da041c09a009afa4a43c97d889bed65c3"
}
],
"source": "REFERENCES_COMMIT"
}
]
}