Dark Reading is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them.Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Application Security

06:30 PM

Open Source Flaws Take Years to Find But Just a Month to Fix

Companies need to embrace automation and dependency tracking to keep software secure, GitHub says in its annual security report.

Developer mistakes and indirect dependencies are the two main sources of vulnerabilities in open source software projects, which together are expected to cause the majority of security alerts in the next year, according to GitHub's annual Octoverse report, published today.

Using data collected from its own platform, GitHub found the vast majority of projects used open source software, from a low of 65% for Java applications to a high of 94% for JavaScript applications. On average, a vulnerability goes undiscovered for 218 weeks, or more than four years, while it takes just over a month to fix the average vulnerability.

Related Content:

Researchers Scan for Supply-Side Threats in Open Source

The Changing Face of Threat Intelligence

New on The Edge: Loyal Employee ... or Cybercriminal Accomplice?

Developers must anticipate the need to fix issues quickly and improve open source security, rather than finding ways to reduce reliance on open source, says Maya Kaczorowski, senior director of product management for GitHub.

"Rather than try to offset the use of open source, embrace it," Kaczorowski says. "Increased transparency and information about what you're consuming in your software supply chain allows you to feel more confident that you're appropriately addressing risks, such as security vulnerabilities, that you may be consuming."

For the report, GitHub scanned more than 45,000 active repositories on its service that use one of six major open source software ecosystems — such as Node Package Manager (NPM) for JavaScript or RubyGems for Ruby — and have their dependency-graph feature turned on. The reliance on open source projects leads to vulnerabilities trickling down from one open source library to the programs that depend on it, with an average of 59% of active repositories likely to receive a vulnerability alert from GitHub's Dependabot service in the next year.

While the average program in the languages tracked by GitHub has fewer than a dozen dependencies — 10 for JavaScript, eight for Java, and six for Python, for example — those packages often rely on other open source libraries. JavaScript, for example, had a whopping 683 transitive dependencies, on average, compared with 70 for PHP and 68 for Ruby — the next two highest dependency counts.

Developers should focus on minimizing their applications' attack surface area by removing unnecessary dependencies and updating their dependencies regularly, Kaczorowski says.

"Proactively, security teams should help developers shift left to catch security issues early by looking for security issues before they are introduced," she says. "All developers, not just those using NPM, should keep the dependencies up to date and prune dependencies that aren't needed. You don't have to patch something that's not in your environment."

In addition, developers should use security tests and automated tools to catch vulnerabilities in their code, and they should also watch out for malicious attempts to insert backdoors into their projects.

A survey of 521 random samples of vulnerabilities found that 17% were maliciously inserted into software projects, but those only accounted for 0.2% of malicious activity because those projects were rarely used, accordin to the GitHub report. Every so often, however, attackers are successful in inserting code into an open source library, and if other projects rely on that library, it can lead to widespread impact. 

Yet, by far, the vast majority of security impact was created by developer mistakes that resulted in vulnerabilities. 

"A big part of the challenge of maintaining trust in open source is assuring downstream consumers of code integrity and continuity in an ecosystem where volunteer commit access is the norm," GitHub states in the report. "This requires better understanding of a project's contribution graph, consistent peer review, commit and release signing, and enforced account security through multifactor authenticatition (MFA)."

The report also highlights the success of GitHub's Security Advisory service, which gives projects a place to post security advisories about newly discovered flaws. While the advisory service started only 18 months ago, after GitHub officially became a CVE Numbering Authority (CNA) for the Common Vulnerability Enumeration (CVE) project, the service has already accounted for more than 3,000 new vulnerability reports

"For projects that didn't have existing disclosure lists or processes, this is a marked improvement," Kaczorowski says. "We want to avoid purposely or accidentally reporting security issues where they might get lost or be hard to find, and instead enable users to come to a single place to see what affects their environment."

JavaScript and NPM accounted for 26% of the vulnerabilities reported, Java and the Maven ecosystem accounted for 24%, and Python and the Python Package Index (PyPI) accounted for nearly 20%. The NPM ecosystem produced the largest share of critical advisories, about 14%.

Veteran technology journalist of more than 20 years. Former research engineer. Written for more than two dozen publications, including CNET News.com, Dark Reading, MIT's Technology Review, Popular Science, and Wired News. Five awards for journalism, including Best Deadline ... View Full Bio

Recommended Reading:

Comment  | 
Print  | 
More Insights
Newest First  |  Oldest First  |  Threaded View
NSA Appoints Rob Joyce as Cyber Director
Dark Reading Staff 1/15/2021
Vulnerability Management Has a Data Problem
Tal Morgenstern, Co-Founder & Chief Product Officer, Vulcan Cyber,  1/14/2021
Register for Dark Reading Newsletters
White Papers
Current Issue
2020: The Year in Security
Download this Tech Digest for a look at the biggest security stories that - so far - have shaped a very strange and stressful year.
Flash Poll
Assessing Cybersecurity Risk in Today's Enterprises
Assessing Cybersecurity Risk in Today's Enterprises
COVID-19 has created a new IT paradigm in the enterprise -- and a new level of cybersecurity risk. This report offers a look at how enterprises are assessing and managing cyber-risk under the new normal.
Twitter Feed
Dark Reading - Bug Report
Bug Report
Enterprise Vulnerabilities
From DHS/US-CERT's National Vulnerability Database
PUBLISHED: 2021-01-19
Apache Guacamole 1.2.0 and earlier do not consistently restrict access to connection history based on user visibility. If multiple users share access to the same connection, those users may be able to see which other users have accessed that connection, as well as the IP addresses from which that co...
PUBLISHED: 2021-01-19
In SOOIL Developments Co., Ltd Diabecare RS, AnyDana-i and AnyDana-A, a client-side control vulnerability in the insulin pump and its AnyDana-i and AnyDana-A mobile applications allows physically proximate attackers to bypass user authentication checks via Bluetooth Low Energy.
PUBLISHED: 2021-01-19
In SOOIL Developments Co., Ltd Diabecare RS, AnyDana-i and AnyDana-A, a client-side control vulnerability in the insulin pump and its AnyDana-i and AnyDana-A mobile applications allows physically proximate attackers to bypass checks for default PINs via Bluetooth Low Energy.
PUBLISHED: 2021-01-19
In SOOIL Developments Co., Ltd Diabecare RS, AnyDana-i and AnyDana-A, the communication protocol of the insulin pump and its AnyDana-i and AnyDana-A mobile applications lacks replay protection measures, which allows unauthenticated, physically proximate attackers to replay communication sequences vi...
PUBLISHED: 2021-01-19
The Stockdio Historical Chart plugin before 2.8.1 for WordPress is affected by Cross Site Scripting (XSS) via stockdio_chart_historical-wp.js in wp-content/plugins/stockdio-historical-chart/assets/ because the origin of a postMessage() event is not validated. The stockdio_eventer function listens fo...