codecov-node npm module before 3.6.5 allows remote attackers to execute arbitrary commands.The value provided as part of the gcov-root argument is executed by the exec function within lib/codecov.js. This vulnerability exists due to an incomplete fix of CVE-2020-7596.
The upload method has a command injection vulnerability. Clients of the codecov-node library are unlikely to be aware of this, so they might unwittingly write code that contains a vulnerability.
A similar CVE was issued: CVE-2020-7597, but the fix was incomplete. It only blocked &, and command injection is still possible using backticks instead to bypass the sanitizer.
We have written a CodeQL query, which automatically detects this vulnerability. You can see the results of the query on the codecov-node project here.
Patches
This has been patched in version 3.7.1
Workarounds
None, however, the attack surface is low in this case. Particularly in the standard use of codecov, where the module is used directly in a build pipeline, not built against as a library in another application that may supply malicious input and perform command injection.
This PR contains the following updates:
3.5.0
->3.7.1
GitHub Vulnerability Alerts
CVE-2020-7597
codecov-node npm module before 3.6.5 allows remote attackers to execute arbitrary commands.The value provided as part of the gcov-root argument is executed by the exec function within lib/codecov.js. This vulnerability exists due to an incomplete fix of CVE-2020-7596.
CVE-2020-15123
Impact
The
upload
method has a command injection vulnerability. Clients of thecodecov-node
library are unlikely to be aware of this, so they might unwittingly write code that contains a vulnerability.A similar CVE was issued: CVE-2020-7597, but the fix was incomplete. It only blocked
&
, and command injection is still possible using backticks instead to bypass the sanitizer.We have written a CodeQL query, which automatically detects this vulnerability. You can see the results of the query on the
codecov-node
project here.Patches
This has been patched in version 3.7.1
Workarounds
None, however, the attack surface is low in this case. Particularly in the standard use of codecov, where the module is used directly in a build pipeline, not built against as a library in another application that may supply malicious input and perform command injection.
References
For more information
If you have any questions or comments about this advisory:
Release Notes
codecov/codecov-node
### [`v3.7.1`](https://togithub.com/codecov/codecov-node/blob/master/CHANGELOG.md#371) [Compare Source](https://togithub.com/codecov/codecov-node/compare/v3.7.0...v3.7.1) - Move to execFileSync and security fixes ### [`v3.7.0`](https://togithub.com/codecov/codecov-node/blob/master/CHANGELOG.md#370) [Compare Source](https://togithub.com/codecov/codecov-node/compare/v3.6.5...v3.7.0) - Remove the X-Amz-Acl: public-read header ### [`v3.6.5`](https://togithub.com/codecov/codecov-node/compare/v3.6.4...v3.6.5) [Compare Source](https://togithub.com/codecov/codecov-node/compare/v3.6.4...v3.6.5) ### [`v3.6.4`](https://togithub.com/codecov/codecov-node/blob/master/CHANGELOG.md#364) [Compare Source](https://togithub.com/codecov/codecov-node/compare/v3.6.3...v3.6.4) - Fix Cirrus CI ### [`v3.6.3`](https://togithub.com/codecov/codecov-node/blob/master/CHANGELOG.md#363) [Compare Source](https://togithub.com/codecov/codecov-node/compare/v3.6.2...v3.6.3) - Fix for AWS Codebuild & package updates ### [`v3.6.2`](https://togithub.com/codecov/codecov-node/blob/master/CHANGELOG.md#362) [Compare Source](https://togithub.com/codecov/codecov-node/compare/v3.6.1...v3.6.2) - Command line args sanitized fix ### [`v3.6.1`](https://togithub.com/codecov/codecov-node/blob/master/CHANGELOG.md#361) [Compare Source](https://togithub.com/codecov/codecov-node/compare/v3.6.0...v3.6.1) - Fix for Semaphore ### [`v3.6.0`](https://togithub.com/codecov/codecov-node/blob/master/CHANGELOG.md#360) [Compare Source](https://togithub.com/codecov/codecov-node/compare/e98d176505b669fe2973336fe9c037e6ea4f2948...v3.6.0) - Added AWS CodeBuild and Semaphore2Renovate configuration
:date: Schedule: "" (UTC).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by WhiteSource Renovate. View repository job log here.