Facebook Google Plus Twitter LinkedIn YouTube RSS Menu Search Resource - BlogResource - WebinarResource - ReportResource - Eventicons_066 icons_067icons_068icons_069icons_070

Google Gerrit Unauthorized Access to Code Tickets Supply Chain Attack

High

Synopsis

Projects and repositories managed by Google's Gerrit Code Review system allowed for a supply chain attack due to excessive default permissions and a logic flaw in the code review process workflow. For projects with vulnerable configurations in place, attackers could have potentially injected malicious code into trusted build pipelines.


The following projects were found to be vulnerable to this issue. Please note that this list is not comprehensive.

https://ceres-solver-review.googlesource.com/
https://code-review.googlesource.com/
https://cue-review.googlesource.com/
https://dart-review.googlesource.com/
https://opensecura-review.googlesource.com/
https://gn-review.googlesource.com/
https://quiche-review.googlesource.com
https://gerrit-review.googlesource.com/zull/jobs
https://gerrit-review.googlesource.com/gcompute-tools
https://bazel-review.googlesource.com
https://android-kvm-review.googlesource.com/
https://linux-review.googlesource.com/ - also allows code-review +2
https://plan9port-review.googlesource.com/
https://hafnium-review.googlesource.com/
https://nginx-review.googlesource.com/
https://weave-review.googlesource.com/


By default, Gerrit contained a default permission (“addPatchSet”) that allowed any registered user to modify code changes that had already been verified and approved. In addition to this permission, changes submitted via patchsets contained a logic flaw in the patchset approval process that caused new patchsets not to require new code reviews as intended.


By exploiting misconfigurations in permissions and the voting system label handling, attackers could execute malicious code without user interaction, enabling supply chain attacks.


Google changed the label persistence configuration across patch sets in the vulnerable projects to mitigate the issue.
 

Solution

Google changed the label persistence configuration across patch sets.

Disclosure Timeline

These issues were reported to Google over the course of three separate disclosures as new information and vulnerable repositories were discovered.
October 24, 2024 - Tenable reported the finding to Google (375284842 / TRA-559)
October 24, 2024 - Google triages the report (375284842 / TRA-559)
October 24, 2024 - Google asks for a demonstration (375284842 / TRA-559)
October 24, 2024 - Tenable attaches a demonstration video and adds details (375284842 / TRA-559)
October 25, 2024 - Tenable noticed the issue is fixed and pinged Google (375284842 / TRA-559)
October 25, 2024 - Google confirms the fix and works on improving security defaults (375284842 / TRA-559)
October 25, 2024 - Google confirmed the finding (375284842 / TRA-559)
October 27, 2024 - Tenable shares more vulnerable repositories they discovered and another attack path they explored (375284842 / TRA-559)
October 28, 2024 - Google shares that internal bugs are filed (375284842 / TRA-559)
November 6, 2024 - Tenable shares additional research insights to clarify a critical impact (375284842 / TRA-559)
November 12, 2024 - Google thanks Tenable for the updates and asks for a mentioned screenshot again (375284842 / TRA-559)
November 12, 2024 - Tenable provides the screenshot (375284842 / TRA-559)
November 27, 2024 - Tenable asks for updates on the fix, Google responds and asks questions (375284842 / TRA-559)
November 28, 2024 - Tenable updates Google with answers to the follow-up questions (375284842 / TRA-559)
December 9, 2024 - Tenable asks Google for an update on the report (375284842 / TRA-559)
December 10, 2024 - Google has no updates yet (375284842 / TRA-559)
December 23, 2024 - Tenable asks Google for an update on the report, no updates yet (375284842 / TRA-559)
January 6, 2025 - Google awards a bounty (375284842 / TRA-559)
January 7, 2025 - Tenable thanks Google and asks for updates on the fix (375284842 / TRA-559)
January 10, 2025 - Google still works on the fix (375284842 / TRA-559)
January 19, 2025 - Tenable proposed a two week delay for the disclosure (375284842 / TRA-559)
January 20, 2025 - Google acknowledges and asks for a disclosure draft (375284842 / TRA-559)
February 4, 2025 - Tenable informs Google of the end of the disclosure period and willing to extend the disclosure period by 2 additional weeks to allow a full fix (375284842 / TRA-559)
February 5, 2025 - Google confirmed they checked and all should be in production (375284842 / TRA-559)
February 10, 2025 - Tenable asks if this issue is considered to be fixed (375284842 / TRA-559)
February 14, 2025 - Google confirms the issue is fixed (375284842 / TRA-559)
October 18, 2024 - Tenable reported the finding to Google (374279912 / TRA-552)
October 18, 2024 - Google triaged the report (374279912 / TRA-552)
October 19, 2024 - Tenable shares more details to escalate impact (374279912 / TRA-552)
October 20, 2024 - Google asks for more details (374279912 / TRA-552)
October 20, 2024 - Tenable provides more details (374279912 / TRA-552)
October 24, 2024 - Google asks for more details (374279912 / TRA-552)
October 24, 2024 - Tenable provides more details (374279912 / TRA-552)
October 25, 2024 - Tenable noticed the issue is mitigated and pinged Google (374279912 / TRA-552)
October 28, 2024 - Tenable shares a new attack path they explored (374279912 / TRA-552)
October 28, 2024 - Google shares details on the proposed root cause fix after the instant mitigation steps they took and further works on safer defaults (374279912 / TRA-552)
November 1, 2024 - Google confirms and classifies the issue as a vulnerability that must be used as part of an exploit chain (374279912 / TRA-552)
November 6, 2024 - Tenable shares additional research insights to clarify a critical impact (374279912 / TRA-552)
November 7, 2024 - Google acknowledges and updates that the issue is fixed (374279912 / TRA-552)
November 7, 2024 - Tenable asks questions about the assessment (374279912 / TRA-552)
November 7, 2024 - Google provides details and found no evidence of the vulnerability exploitation in the past (374279912 / TRA-552)
January 7, 2025 - Google awards a bounty (374279912 / TRA-552)
October 22, 2024 - Tenable reported the finding to Google (375020994 / TRA-558)
October 24, 2024 - Google triages the report (375020994 / TRA-558)
October 25, 2024 - Tenable noticed the issue is fixed and pinged Google (375020994 / TRA-558)
October 28, 2024 - Tenable shares an additional attack path they explored (375020994 / TRA-558)
November 4, 2024 - Chrome VRP merges the issue to Tenable's Google's VRP report (375020994 / TRA-558)

All information within TRA advisories is provided “as is”, without warranty of any kind, including the implied warranties of merchantability and fitness for a particular purpose, and with no guarantee of completeness, accuracy, or timeliness. Individuals and organizations are responsible for assessing the impact of any actual or potential security vulnerability.

Tenable takes product security very seriously. If you believe you have found a vulnerability in one of our products, we ask that you please work with us to quickly resolve it in order to protect customers. Tenable believes in responding quickly to such reports, maintaining communication with researchers, and providing a solution in short order.

For more details on submitting vulnerability information, please see our Vulnerability Reporting Guidelines page.

If you have questions or corrections about this advisory, please email [email protected]

Risk Information

Tenable Advisory ID: TRA-2025-05
Credit:
Liv Matan
Affected Products:
Google repositories managed by the Gerrit code review system
Risk Factor:
High

Advisory Timeline

February 18, 2025 - Initial release.