The Hidden Dangers of Using Third-Party Code Repositories: A Case Against GitHub

Roberto Capodieci
4 min readAug 2, 2024

--

In today’s fast-paced development environment, using third-party code repositories like GitHub has become a norm. However, as a seasoned IT professional, I argue that this practice, particularly when your code must remain secure, is fraught with risks. In a video I published earlier, I detailed why judging an IT manager by their GitHub account is a mistake. Adding to that, recent findings by Truffle Security reveal alarming vulnerabilities within GitHub’s architecture, further emphasizing the need for caution. This article aims to delve into these risks and offer insights into managing code versioning locally for enhanced security, while also addressing why a GitHub profile is not a true measure of an IT professional’s capabilities.

The Misconception of GitHub as a Secure Repository

Many developers and organizations perceive GitHub as a secure and reliable platform for managing their code. However, this assumption is often misguided. As detailed in a recent report by Truffle Security, GitHub’s architecture allows data from deleted forks, deleted repositories, and even private repositories to be accessible indefinitely. This vulnerability, termed Cross Fork Object Reference (CFOR), poses a significant threat to any organization relying on GitHub for their version control needs.

Accessing Deleted Fork Data

A common workflow involves forking a public repository, committing code, and then deleting the fork. Most users assume that the data within the deleted fork is no longer accessible. However, Truffle Security’s research demonstrates that this data remains accessible forever, out of the user’s control. This means that sensitive information, including API keys and credentials hard-coded into example files, can be easily retrieved by malicious actors.

Reverse Data Access from Deleted Repositories

Another alarming scenario involves accessing data from repositories that have been deleted. When a public upstream repository is deleted, GitHub reassigns the root node role to one of the downstream forks. Consequently, all commits from the upstream repository remain accessible through any fork, perpetuating the existence of potentially sensitive data.

Private Repository Data Exposure

The practice of creating private repositories that are later made public while retaining private forks for internal features is also fraught with risks. Truffle Security demonstrated that any code committed to a private fork before the upstream repository is made public can be accessed via the public repository. This workflow, commonly adopted by organizations, inadvertently exposes confidential data.

The Fallacy of GitHub as a Measure of IT Proficiency

Beyond security concerns, there is a prevalent misconception that a developer’s or IT manager’s GitHub activity is a reliable indicator of their skills and experience. This notion is flawed for several reasons:

The Role of a CTO or System Architect

Hiring a CTO or system architect should not involve checking a candidate’s GitHub account, as their roles focus on leadership and management rather than coding. These positions require a deep understanding of technology strategy, infrastructure management, and project oversight rather than hands-on coding.

Leadership over Coding: CTOs are responsible for managing technology strategy and ensuring the infrastructure supports business needs. Their role goes beyond just coding responsibilities.

Architectural Design: System architects focus on designing technology architecture and guiding project managers and developers. While coding skills may be beneficial, the primary focus for these senior roles should be on leadership and project management experience.

Misleading Judgments Based on GitHub Activity

Evaluating a CTO or system architect candidate solely on their GitHub account can lead to incorrect judgments about their capabilities. Many important roles involve oversight rather than active coding, and experienced professionals may have built their skills long before platforms like GitHub emerged.

Historical Context: Many professionals developed their coding expertise before GitHub’s existence, and their contributions may reside in private repositories or other version control systems.

Management Roles: Transitioning from a coding role to management requires a different skill set focused on supervision and strategy. Experienced individuals can still contribute significantly despite less coding activity on public platforms.

Local Version Control: A Safer Alternative

Given these vulnerabilities and misconceptions, it is prudent to consider local version control systems. Using Git as a local server provides full control over your code without exposing it to public repositories. Here’s how local versioning can be effectively managed:

1. Local Git Repositories: Set up a Git server on your local network. This keeps your code within your infrastructure, away from third-party vulnerabilities.

2. Manual Versioning: As illustrated in the screenshot, maintaining multiple versions of your code in separate folders ensures that you have complete control over each iteration. This manual method, though seemingly archaic, guarantees that no data is exposed beyond your secure environment.

Conclusion: Rethinking Code Security and Professional Evaluation

The importance of securing your code cannot be overstated, especially in roles that demand stringent security measures. My earlier video underscored the importance of not judging IT managers based on their GitHub activity, highlighting how leadership and management capabilities are more critical for such roles than public coding contributions. The vulnerabilities exposed by Truffle Security further validate this stance, revealing that even deleted and private repositories on GitHub are not immune to unauthorized access.

For those in senior IT roles, the focus should be on secure and effective management of technology, which often involves eschewing popular yet insecure platforms like GitHub. By adopting local version control practices and being aware of the risks associated with third-party repositories, you can ensure the security and integrity of your code, safeguarding your organization from potential breaches.

For a more detailed discussion, you can watch my video here. Let’s prioritize security over convenience and rethink our approach to code versioning in the age of digital threats. Read more about the vulnerabilities discussed by Truffle Security here.

--

--

No responses yet