2025 Open Source Security and Risk Analysis Report
2025 Open Source Security and Risk Analysis Report
Log4j and Equifax: Two Lessons on the Need for Visibility into Your Code....................................................... 12
What Are Permissive, Weak Copyleft, and Reciprocal Open Source Licenses?................................................. 21
The 2025 “Open Source Security and Risk Analysis” (OSSRA) report details key findings from Black
Duck® audit data, including security vulnerabilities, licensing issues, component maintenance,
and industry trends. Our analysis shows that open source is ubiquitous, and that it can introduce
significant risk unless properly identified and managed.
Developers will gain insights into the types of vulnerabilities that we found prevalent in open source software, such
as cross-site scripting (XSS) and denial-of-service (DoS) vulnerabilities. For example, the OSSRA report highlights the
importance of following input validation and sanitization techniques, which can help developers build more-secure
applications.
Further, this report identifies the most common open source components containing vulnerabilities, which will
aid developers in making informed decisions when selecting open source libraries and frameworks. For example,
development teams should be aware that our data shows that jQuery, jackson-databind, and the Spring Framework
often include vulnerabilities that require regular management and patching.
OSSRA 2025 also emphasizes the risks associated with using out-of-date components and the need for all
organizations to implement a process for timely updates. As one example, 90% of audited codebases were found to
have open source components more than four years out-of-date. Outdated components magnify security risk, provide
attackers with an expanded attack surface, and create compliance and compatibility issues. The presence of older open
source also suggests that developers are not taking advantage of software improvements and are relying on code that
is no longer being maintained.
Risk management professionals can use OSSRA data to inform their strategic decisions about open source software
adoption and risk mitigation. The ability to compare vulnerability percentages and other metrics across industries can help
risk managers pinpoint areas where their organization is performing well or needs improvement.
The OSSRA data, primarily derived from analysis of M&A targets’ code, provides key insights for professionals involved
in merger and acquisition transactions into the kinds of issues they may be taking on in their own transactions, such as
common open source license conflicts, the security posture of the target company, and potential operational challenges
that could impact the target’s IP value.
Open source codebases are getting bigger and more complicated: Our data shows that the number of open source
files in an average application has tripled in just the last four years. One of the reasons behind this is the use of “transitive
dependencies”—open source libraries that other software components rely on to function. Open source frequently uses other
open source. Our audits found that 64% of open source components identified in our scans were transitive dependencies,
most nearly impossible to locate or track without using an automated tool. Finding all instances of a transitive dependency
can be like searching for a needle in a haystack when you lack an up-to-date inventory of third-party code.
Where all this open source is coming from: Our audits show that the majority of open source is being downloaded from
package manager repositories. Over 280,000 of the nearly 1 million OSS components found in our audits originated from
one such repository—npm, a massive public database of JavaScript packages.
Whether you think of open source as “free” or not, it comes at a cost: The odds are better than 80% that an application
your organization is using right now contains high- or critical-risk open source vulnerabilities, with nearly half of those
introduced by transitive dependencies.
Transitive dependencies present licensing and maintenance issues as well as security challenges: Our audits found that
over half the codebases contained license conflicts, many caused by a transitive dependencies’ incompatibility with another
component’s license. Nearly 30% of component license conflicts found in our audits were caused by transitive dependencies.
Static application security testing (SAST) and dynamic application security testing (DAST) can help identify coding
errors: These testing methods can find errors such as input validation and sensitive information exposure, and mistakes
like not encrypting important data when it’s being sent over the internet, outdated or weak encryption methods, and failing
to properly protect passwords or other secret information.
Every organization using web applications and services should be evaluating them with software composition analysis
(SCA) and DAST tools: Development and security teams need to implement a multifaceted security approach integrating
DAST, SAST, and SCA to achieve the comprehensive security coverage modern software demands. Our findings indicate
that if such a full-spectrum approach were applied, potential exposure to critical vulnerabilities would be markedly reduced.
Black Duck offers a range of services including open source audits tailored to diverse needs and objectives. Open
source audits leverage a combination of automated tools, comprehensive databases, and expert analysis to provide
a thorough assessment of an organization’s OSS usage. Built over two decades, the Black Duck KnowledgeBase™,
a key component of these audits, contains data on millions of open source components, including their licenses,
vulnerabilities, and potential risks. Sourced and curated by the Black Duck Cybersecurity Research Center (CyRC),
the KnowledgeBase includes data on more than 7.8 million open source components from over 31,000 forges and
repositories.
A Black Duck open source audit typically involves the following steps:
• Codebase submission: An organization provides Black Duck with access to the codebase to be audited. This includes
source code, binaries, and other relevant artifacts.
• Automated analysis: Black Duck utilizes its suite of automated tools, including its SCA solution, to scan the codebase
and identify all open source components and those components’ dependencies, including transitive dependencies,
through advanced string search capabilities.
• Expert review: Black Duck’s team of open source experts reviews the results of the automated analysis, validates the
findings, and ensures completeness and accuracy.
• Report generation: Black Duck generates a comprehensive set of reports that provide a detailed Software Bill of
Materials (SBOM) of all open source components, their associated licenses, known security vulnerabilities, and
potential operational risks. The reports also detail the issues cataloged in the SBOM.
• Remediation guidance: Black Duck provides guidance on how to address the identified issues, such as updating
vulnerable components, resolving license conflicts, and mitigating operational risks.
Note: Several improvements to how the Black Duck Audit team evaluates and presents audit data were implemented
during 2024. Notably, a single submitted customer codebase is now split into multiple analyses called “projects.” The
new technique provides a more granular approach to analyzing codebases and offers several benefits to customers
including more-detailed reports and more-accurate component identification and dependency tracking. The changes
also affect how audit data is presented. For example, while for simplicity’s sake we still refer to “codebases” in
the OSSRA, at a more granular level those codebases entail the analysis of 1,658 individual projects from the 965
codebases submitted to Black Duck in 2024.
An average
of OSS components
64% were transitive
OSS components were dependencies
found per application
Over 280,000 of the open source components But not all. For example, use of Rust package
found in our audits originated from the npm repositories has increased considerably as
repository. Most OSS packages found in our developers respond to memory safety issues
scans were written in JavaScript. in C and C++.
Percentage of codebases
Industry containing high-risk vulnerabilities
Percentage of codebases
Industry containing license conflicts
EdTech 71%
Big Data, AI, BI, Machine Learning 71%
Financial Services and FinTech 66%
Internet and Mobile Apps 64%
Computer Hardware and Semiconductors 63%
Aerospace, Aviation, Automotive, Transport, Logistics 61%
Cybersecurity 58%
Retail and eCommerce 57%
Marketing Tech 56%
Enterprise Software/SaaS 54%
Manufacturing, Industrials, Robotics 53%
Virtual Reality, Gaming, Entertainment, Media 51%
Internet and Software Infrastructure 50%
Internet of Things 48%
Healthcare, Health Tech, Life Sciences 47%
Energy and Clean Tech 37%
Figure 2: Codebases Containing License Conflicts by Industry
But you must first be aware of those issues to address them. Insight into your code is key to prioritizing remediation
efforts. To gain that insight, organizations are increasingly adopting SBOMs, comprehensive inventories of all software
components and their dependencies.
A study by the Linux Foundation found that organizations that generate SBOMs are better able to understand
dependencies across components in an application, monitor components for vulnerabilities, and manage OSS license
compliance. And a report by Gartner® highlights that SBOMs improve the visibility, transparency, security, and integrity
of proprietary and open source code in software supply chains. Many customers at the end of the software delivery
pipeline now make an SBOM a requirement in their vendor contracts.
In short, SBOMs are essential for organizations to ensure the security, compliance, and overall health of their software
applications, providing benefits for
• Risk management: Identifying and managing risks in the software supply chain.
• Vulnerability management: Quickly identifying and mitigating known vulnerabilities.
• License compliance: Ensuring compliance with open source and third-party licenses.
• Software quality: Identifying outdated or unsupported components.
• Mergers and acquisitions: Assessing legal and intellectual property (IP) risks associated with software components
during mergers and acquisitions.
• Code scanning: SCA tools scan the source code or binary files of a software project to identify all the components
and dependencies. These scanners utilize a variety of scanning methods, including
– Manifest scanning: Checks manifest files (e.g., package.json or Cargo.toml) for the dependencies listed.
– Binary scanning: Checks compiled binaries for any third-party code it can trace back to a specific library.
– Hybrid scanning: Uses a mix of manifest and binary scanning to ensure that no dependency slips through.
– Snippet scanning: Analyzes smaller parts of files or lines of code (“snippets”) and matches them against a
database of known full open source components.
• Dependency analysis: SCA tools analyze the relationships between components, including direct and transitive
dependencies.
• Vulnerability and license identification: The tools compare the identified components against vulnerability databases
and license repositories to identify potential security risks and license compliance issues.
• SBOM generation: Based on the information gathered from the analysis, SCA tools create a comprehensive SBOM in
a standardized format, such as SPDX or CycloneDX.
• Continuous monitoring: SCA tools often provide continuous monitoring capabilities to keep the SBOM up-to-date.
As new vulnerabilities or updates for open source components become available, the tool can update the SBOM
accordingly, ensuring its accuracy over time.
For example, Black Duck® SCA can be integrated into the software development life cycle to generate SBOMs as
software is developed. Black Duck SCA also allows users to import third-party SBOMs so that those components can be
added to relevant projects, continuously analyzed for risk, and added to any reports or SBOMs generated as part of the
application life cycle. At the end of the software delivery pipeline, the SBOM for the software that has been analyzed can
be exported into an industry-standard file format.
SBOMs can be used to ensure that all components meet compliance requirements and help organizations track
the licenses associated with their software components, creating a more open and scalable path for managing
license compliance risks and meeting necessary obligations. SBOMs can also help organizations identify outdated or
unsupported components that may pose security risks or performance issues. This information enables organizations
to prioritize updates. By identifying and addressing code quality issues early on, organizations can reduce the risk of
security breaches, improve software performance, and enhance maintainability.
SBOM Adoption
The benefits offered by SBOMs make them an increasingly essential component of secure software development
practices. While SBOM adoption is still evolving and the rate of adoption varies across industries and organizations,
there is a growing recognition that SBOMs are a valuable tool for managing software supply chain risks and ensuring
software security. A 2022 study by the Linux Foundation found that 78% of organizations were expected to produce
an SBOM that year. And according to research conducted by Censuswide in 2023, 60% of large enterprises (over $50
million in annual revenue) require an SBOM from their vendors.
Exploitability depends on various factors, including the availability of exploit code, the complexity required to exploit
the vulnerability (that is, the level of difficulty an attacker would face), and the potential rewards an attacker might gain
from exploitation. For example, the Heartbleed vulnerability, discovered in 2014, was a significant security flaw in the
OpenSSL cryptographic library that impacted millions of websites and servers because it was easily exploitable and
allowed attackers to steal sensitive information. One notable victim was the Canada Revenue Agency (CRA), which
reported that hackers exploited the vulnerability to steal Canadian social insurance numbers. The CRA was forced to
shut down its online services temporarily to address the issue and extend tax filing deadlines. CloudFlare, a web security
company, estimated that revoking and reissuing SSL certificates for its customers would cost the certificate issuer
around $400,000 per month.
Black Duck SCA prioritizes vulnerabilities based on factors such as exploitability, remediation guidance, severity
scoring, and call path analysis. Black Duck can determine if vulnerable code is more likely to be invoked, and flags those
vulnerabilities as reachable, indicating that these vulnerabilities are a higher priority for remediation.
In the case of Log4j, many development teams didn’t know where, how, or even if their applications were using the
open source logging utility, often because it was buried several dependencies deep within an application and invisible
to basic code reviews. When CISA issued a directive to federal agencies to locate all instances of the Log4j library in
their software, check if their systems were vulnerable to the Log4Shell exploit, and patch affected servers—all within
10 days—many teams found themselves spending their December holidays in the office desperately trying to locate
vulnerable versions of Log4j as well as forestalling a potentially catastrophic security breach.
Organizations need to
Lack of visibility be aware of all open
into software source components
Log4j Log4j2 library supply chain, lack of in their applications,
awareness of Log4j even seemingly minor
use in applications ones like logging
libraries.
Organizations
Lack of need to maintain
Apache Struts comprehensive
Equifax an accurate
framework inventory of IT inventory of all
assets software assets.
Although the explanation for the Equifax Apache Struts vulnerability exploit in 2017 has been simplified over the years
into the person who was responsible for communicating the need to apply the patch did not communicate to the right
level, the full reasons, as detailed in the Congressional report on the incident, are much more complicated.
Equifax had been on an acquisition spree for several years, with each acquisition adding to the complexity and opacity
of the company’s technology infrastructure. One part of that patchwork IT infrastructure was a web-based dispute and
disclosure application that became the primary target of the breach.
As Equifax’s then-CIO explained in his testimony, Equifax did not have a clear picture of the software used by that
application. The lack of visibility into its software inventory was a known issue, documented two years earlier in an
Equifax internal audit. As the audit report related, “A comprehensive IT asset inventory does not exist nor does accurate
network documentation. [...] The lack of an accurate asset inventory makes it difficult to ensure all assets are adequately
patched and configured. […] Without a firm understanding of the status of all IT assets, ensuring the security and
stability of Equifax systems is extremely difficult.”
Adding to the problem was that the application was—like many of Equifax’s older systems—a “legacy” in IT-speak. By
2017, there were few people left in Equifax who were familiar with that particular web application’s inner workings, to the
point that the person nominally in charge of its oversight hadn’t known it contained Apache Struts software.
The Equifax case illustrates another aspect of the lack of visibility into open source that any business dependent on
other companies’ code would do well to remember: While you might have a good handle on your own code, do you
know what’s in theirs?
On the other hand, a CWE is a community-developed list of software and hardware weakness types. CWEs serve
as a common language for describing security weaknesses, aiding in their identification, mitigation, and prevention.
As Figure 5 shows, reviewing a list of the most common CWEs behind the vulnerabilities found in our scans can be
instructive.
For example, given that over 70% of the overall open source vulnerabilities we found were linked to improper input
validation (which could lead to injection and XSS exploits), development and security teams might want to focus their
efforts on using appropriate validation techniques for their own code, and implement a regimen of regular testing of
third-party code with SAST and DAST to catch vulnerabilities early and continuously.
CWE-400 70% Uncontrolled Resource Consumption: The software does not properly control the
allocation and release of system resources, such as memory, CPU time, or disk
space. This can lead to DoS attacks.
CWE-79 56% Improper Neutralization of Input During Web Page Generation (Cross-Site
Scripting): The software does not neutralize or incorrectly neutralizes user-
supplied input before including that input in an HTML page. This allows attackers
to inject malicious scripts that can steal user data or take control of their browser.
CWE-185 48% Incorrect Regular Expression: The software specifies a regular expression in a
way that causes data to be improperly matched or compared. Regular expressions
should be subjected to thorough testing techniques such as equivalence
partitioning, boundary value analysis, and robustness testing.
CWE-770 48% Allocation of Resources Without Limits or Throttling: The software allocates
resources without limits or throttling, which can allow an attacker to consume
excessive resources and cause a DoS.
CWE-80 44% Improper Neutralization of Script-Related HTML Tags in a Web Page (Basic
XSS): Similar to CWE-79, this weakness specifically focuses on the failure to
neutralize HTML tags that can be used to inject scripts.
CWE-1321 39% Improperly Controlled Modification of Object Prototype Attributes: The software
allows attackers to modify the prototype of an object, which can affect all
instances of that object and lead to unexpected behavior or privilege escalation.
CWE-1333 36% Inefficient Regular Expression Complexity: The software uses a regular
expression that is too complex, which can lead to excessive CPU consumption and
DoS attacks.
CWE-502 31% Deserialization of Untrusted Data: The software deserializes untrusted data,
which can allow attackers to execute arbitrary code or manipulate application
logic.
The CyRC team provides detailed vulnerability guidance over and beyond what the NVD typically provides in CVE
records. BDSAs are also cross-checked and validated against possibly affected component versions, resulting in
additional and more accurate mappings for components and versions affected by a given vulnerability.
Let’s take a closer look at the top high- and critical-risk open source vulnerabilities we found in our scans.
Percentage of codebases
CVE/BDSA with CVE/BDSA
1. CVE-2020-11023 (BDSA-2020-0964) 33%
4. BDSA-2014-0063 29%
6. BDSA-2015-0567 27%
1. CVE-2020-11023
CVE-2020-11023 was found in a third (32.6% to be exact) of the scanned codebases. It is an XSS vulnerability that
affects jQuery versions greater than or equal to 1.0.3 and before 3.5.0 (at the time this report was released, the current
stable release of jQuery was 3.7.1, released in August 2023). Notably, CVE-2020-11023 is listed in CISA’s Known
Exploited Vulnerabilities Catalog, indicating that it has been actively exploited.
The vulnerability allows untrusted code to be executed by manipulating how jQuery handles HTML containing <option>
elements from untrusted sources. This vulnerability has a wide-ranging impact, affecting various systems that utilize
jQuery including Debian Linux, Fedora, Drupal, and Oracle products.
2. CVE-2020-11022
CVE-2020-11022 is another XSS vulnerability in jQuery, affecting versions greater than or equal to 1.2 and before 3.5.0.
This flaw enables attackers to inject JavaScript code into web pages by exploiting how jQuery’s DOM manipulation
methods handle input. Unlike CVE-2020-11023, this vulnerability is not listed in CISA’s Known Exploited Vulnerabilities
Catalog, suggesting it might pose a lower immediate risk.
The CWE associated with CVE-2020-11022 is also CWE-79: Improper Neutralization of Input During Web Page
Generation (Cross-Site Scripting).
3. CVE-2019-11358
CVE-2019-11358 involves prototype pollution in jQuery versions before 3.4.0. Prototype pollution occurs when an
attacker can manipulate the prototype of an object, potentially affecting all objects that inherit from that prototype. This
can lead to unexpected behavior, denial of service, or even arbitrary code execution.
The CWE associated with CVE-2019-11358 is CWE-1321: Improperly Controlled Modification of Object Prototype
Attributes (Prototype Pollution). This CWE is a child of CWE-913: Improper Control of Dynamically Managed Code
Resources, which broadly categorizes weaknesses related to managing code resources during program execution.
4. BDSA-2014-0063
This is an older vulnerability, first raised as an issue in January 2014 and relating to a potential XSS vulnerability in
jQuery caused by a lack of user-supplied input validation. It does not have an associated CVE.
The vulnerability could allow an attacker to inject arbitrary web scripts and steal a victim’s session cookies. The
vulnerability was mitigated in jQuery 3.0.0-rc1. However, the mitigation does not sanitize malicious input and will still
allow scripts to be executed. The default behavior of the parser is changed such that if the context is unspecified or
given as null/undefined, a new document is created. This delays execution of parsed HTML until it is injected into the
document, allowing the opportunity for tools to traverse the created DOM and remove unsafe content after the function
call.
As with several other of our top 10 vulnerabilities, the CWE associated with BDSA-2014-0063 is also CWE-79: Improper
Neutralization of Input During Web Page Generation (Cross-Site Scripting).
5. CVE-2015-9251
CVE-2015-9251 is an XSS vulnerability in jQuery affecting versions before 3.0.0. (At the time this report was released,
the current stable release of jQuery was 3.7.1, released in August 2023.)
This vulnerability arises when cross-domain AJAX requests are made without specifying the dataType option, allowing
malicious JavaScript responses to be executed. While the primary CWE associated with CVE-2015-9251 is CWE-79:
Improper Neutralization of Input During Web Page Generation (Cross-Site Scripting), it’s worth noting that it is also
related to CWE-94: Improper Control of Generation of Code (Code Injection) and CWE-74: Improper Neutralization of
Special Elements in Output Used by a Downstream Component (Injection).
7. CVE-2020-23064
CVE-2020-23064 is an XSS vulnerability found in jQuery versions 2.2.0 through 3.x before 3.5.0. This vulnerability allows
attackers to execute arbitrary code by exploiting the handling of the <options> element. It has a CVSS v3 base score of
6.1, indicating a medium severity level.
The CWE associated with CVE-2020-23064 is CWE-79: Improper Neutralization of Input During Web Page Generation
(Cross-Site Scripting).
8. CVE-2023-45133
CVE-2023-45133 is a vulnerability in Babel, a popular JavaScript compiler. It affects the @babel/traverse package and all
versions of babel-traverse. This vulnerability can lead to arbitrary code execution during the compilation process, when
handling malicious code crafted to exploit this flaw.
CVE-2023-45133 is associated with two CWEs: CWE-697: Incorrect Comparison and CWE-184: Incomplete List of
Disallowed Inputs. These CWEs indicate that the vulnerability stems from improper validation and handling of specific
inputs during the compilation process.
9. CVE-2020-7656
CVE-2020-7656 is yet another XSS vulnerability in jQuery, affecting versions prior to 1.9.0. This vulnerability occurs
because the load method fails to properly handle and remove <script> HTML tags that contain whitespace characters,
potentially allowing malicious scripts to be executed.
The CWE associated with CVE-2020-7656 is CWE-79: Improper Neutralization of Input During Web Page Generation
(Cross-Site Scripting).
10. CVE-2022-25883
CVE-2022-25883 is a regular expression denial-of-service (ReDoS) vulnerability in the semver package used in certain
Node.js systems. This vulnerability affects specific versions of the package and can be triggered when untrusted user
data is processed as a range. ReDoS attacks exploit vulnerabilities in regular expressions, causing excessive processing
time and potentially leading to denial of service by consuming system resources.
The CWE associated with CVE-2022-25883 is CWE-1333: Inefficient Regular Expression Complexity. This vulnerability
can significantly impact system performance and stability, potentially disrupting services and applications.
The prevalence of CWE-79 in our results, and all the CVEs related to cross-site scripting exploits of jQuery vulnerabilities,
highlights the critical importance of input validation in web development. Failing to properly sanitize user input can have
serious consequences.
jQuery is not inherently insecure. In fact, it is a well-maintained open source library with a large community of users,
developers, and maintainers. But according to our audits, jQuery was the component most likely to have vulnerabilities—
indeed, nearly a third of all the codebases we scanned were found to have vulnerable jQuery components—even though
each of those vulnerabilities impacted outdated versions of jQuery and had available patches. It is important for users of
jQuery—and indeed of all open source—to be aware of the potential security risks associated with outdated versions of
software, and to take steps to address those risks.
For developers, our data emphasizes the need to prioritize input validation and sanitization techniques to prevent cross-
site scripting and other injection attacks. Utilizing security analysis tools such as Coverity® Static Analysis and Black
Duck® Continuous Dynamic (a production-safe DAST tool) to identify potential vulnerabilities arising from inadequate
checks on user-submitted data, like form inputs or API parameters, can help ensure that only expected data formats
and values are accepted, thereby mitigating risks like SQL injection, cross-site scripting, and other injection attacks.
Staying up-to-date with security advisories and promptly patching vulnerable software is essential to minimizing the
risk of exploitation. Regularly updating libraries and frameworks, such as jQuery and Babel, is crucial to ensuring that
systems are protected against known vulnerabilities.
Industry-Specific Insights
As shown in Figure 1 on page 5, from a vulnerability perspective, high-risk industry sectors include Internet and Mobile
Apps (100% of codebases scanned from this sector contained high-risk vulnerabilities), Marketing Tech (88% of
codebases contained high-risk vulnerabilities), Computer Hardware and Semiconductors (87% of codebases contained
high-risk vulnerabilities), and the EdTech and Enterprise Software/SaaS sectors (86% of codebases contained high-risk
vulnerabilities).
It’s worth noting that the lowest percentage of codebases containing high-risk vulnerabilities of all 16 sectors was 60%
in the Energy/Clean Tech industry. Overall, well over 50% of each respective industry’s codebases contained high-risk
vulnerabilities, making them attractive targets of opportunity for exploitation.
All Black Duck audits examine open source license compliance. During 2024, the Black Duck Audit team conducted 965
audits. The data in this section is based on those assessments.
Even one noncompliant license in your software could result in legal issues, loss of lucrative intellectual property, time-
consuming remediation efforts, and even delays in getting a product to market. In the case of our audit results, 56% of
customer codebases had license conflicts, opening them up to those potential scenarios.
In the context of open source software, a declared license conflict arises when the license of an open source
component clashes with the overall license declared for the entire project or codebase. This often happens when a
component with a restrictive license, like the GNU General Public License (GPL), is included in a commercial project,
potentially requiring the entire project’s source code to be released. The severity of a declared conflict can vary; it might
apply to the whole project or just specific files, depending on the scope of the license. A component license conflict
occurs when two open source licenses within a project are incompatible with each other.
Because of the way most open source licenses are written, conflicts can arise even when only a small piece of licensed
code—a snippet—is included in a larger work. Historically, this has occurred when a developer cut and pasted from an
open source project with a problematic license. Today, with the rise of generative AI models trained on open source, a
snippet may have been appropriated by an AI tool without regard for licensing.
Thirty-three percent of the 2024 audited codebases were using code with either no discernible license or a customized
license. It’s not uncommon for developers to make code publicly available that has code without discernable terms of
service or mention of software terms. It’s also not unusual for developers to grant permission to use their code either
by modifying or augmenting standard license terms—”good, not evil” for example—or adding usage, obligation, and
restriction terms in their code comments. Often, these types of modifications require legal review.
* Risk classifications are guidelines and should not be used for decisions about using the open source software.
Consult your corporate policies and/or legal teams for guidance regarding license compliance.
The first step to managing risk is using an automated SCA tool to create an up-to-date, accurate SBOM of all open
source components in your software, the versions in use, and their associated licenses. Compile the license texts
associated with those components so that you can flag any components not compatible with your software’s
distribution and license requirements, or not compatible with licenses that may be used by other components in your
software. It is important to ensure that the obligations of all licenses have been met, as even the most permissive
open source licenses still contain an obligation for attribution.
Black Duck SCA enables development, security, and compliance teams to manage the risks that come from the use of
open source. Black Duck’s multifactor open source detection and KnowledgeBase of over 7.8 million components can
provide an accurate SBOM, including licensing information, for any application or container. And although most open
source components use one of the most popular licenses, Black Duck provides an extra layer of information with data
on over 2,500 other open source licenses that could potentially impose restrictions on the software your team writes.
Tracking and managing open source with Black Duck helps you avoid license issues that can result in costly litigation
or compromise your valuable intellectual property.
EdTech 71%
Big Data, AI, BI, Machine Learning 71%
Financial Services and FinTech 66%
Internet and Mobile Apps 64%
Computer Hardware and Semiconductors 63%
Aerospace, Aviation, Automotive, Transport, Logistics 61%
Cybersecurity 58%
Retail and eCommerce 57%
Marketing Tech 56%
Enterprise Software/SaaS 54%
Manufacturing, Industrials, Robotics 53%
Virtual Reality, Gaming, Entertainment, Media 51%
Internet and Software Infrastructure 50%
Internet of Things 48%
Healthcare, Health Tech, Life Sciences 47%
Energy and Clean Tech 37%
Figure 2: Codebases Containing License Conflicts by Industry
As noted on page 6 of this report, Figure 2 (reproduced above) highlights the prevalence of license conflicts within
codebases across various industries. It should serve as a signal to businesses on the importance of proactive license
identification to avoid costly legal and operational challenges arising from license conflicts within their software.
Moderate Risk
• Sectors including Aerospace, Cybersecurity, Manufacturing, and Enterprise Software demonstrate a moderate level of
risk. While the percentages are lower than the high-risk group, they still have a considerable chance of encountering
licensing problems.
If you’re on the buy side of a tech M&A transaction, an open source audit should be part of the software due diligence
process. A code audit enables a buyer to understand risks in the software that could affect the value of the intellectual
property, and the remediation required to address those risks. An open source audit can also be invaluable for
companies wanting a better understanding of the code’s composition. For example, using a range of tools such as
Black Duck SCA, expert auditors comprehensively identify the open source components in a codebase and flag legal
compliance issues related to those components, prioritizing issues based on their severity.
An audit uncovers known security vulnerabilities that affect open source components, as well as information such
as versions, duplications, and the state of a component’s development activity. It also provides clues as to the
sophistication of a target’s software development processes. Open source is so ubiquitous today that if a company isn’t
managing that part of software development well, it raises questions about how well it is managing other aspects.
By identifying open source code and third-party components and licenses, an open source audit can alert your firm to
potential legal and security issues in an M&A transaction.
The bottom line is that significant monetary and brand risk can be buried in the open source components of acquired
code. Evaluating that risk as part of an acquirer’s due diligence must be part of the decision-making process in an M&A
transaction.
Unfortunately, that scenario never happened for many open source projects. As the Linux Foundation’s Census III of
Free and Open Source Software report (utilizing SCA data from Black Duck among other vendors) relates, much of the
most widely used open source today is developed and maintained by only a handful of contributors, not the thousands
or millions of developers popularly thought to be working behind the scenes. In reality, the small number of contributors
working to ensure updates—including feature improvements as well as security and stability updates—decreases over
time on almost all OSS projects.
When maintainers have stopped maintaining a project, one consequence is elevated security risk, as the data from our
scans shows.
Outdated Components
• A very high percentage of codebases—90%—contain open source components that are more than four years out-
of-date. This indicates a widespread issue of outdated dependencies and could lead to security vulnerabilities and
compatibility issues.
Inactive Components
• An equally high portion of codebases—91%—have components that have not seen new development in the past two
years. This suggests that many applications and web services are relying on OSS that no longer receive updates,
potentially leaving them vulnerable to undiscovered or unpatched security flaws.
• Seventy-nine percent of codebases contain components with no activity for the last 24 months, while still using the
latest version of the component. This suggests that even up-to-date components are not being actively maintained.
• Eighty-eight percent of codebases have components with no activity for the last 24 months and are not using the
latest version of the component—an even riskier prospect for those using the components.
A failure to keep up with current releases, which often include important bug fixes and security patches, increases risk
and technical debt.
There can be valid justifications for not keeping an open source component up-to-date. Major version updates can
introduce significant changes that might break your existing code, especially if you’ve already fallen several versions
behind. Sometimes the effort required to adapt your code isn’t feasible. Updating can be time-consuming, requiring
development time, testing, and deployment. Smaller teams or projects with limited resources might need to prioritize
more critical tasks.
But, as we’ve noted in a decade of publishing OSSRA reports, open source is different from commercial software—not
worse, not better, but different—and it requires different techniques when it comes to maintenance. For example, all
organizations that use commercial software are familiar with patches and updates being “pushed” to their software, or
at a minimum, receiving a notice from the vendor that an update is available for download. That’s seldom the case with
open source, where users are largely left to their own initiative to stay aware of a component’s status.
Follow project websites and repositories: Most open source projects have websites, blogs, or repositories (like
GitHub) where they announce new releases and provide changelogs. Subscribe to their mailing lists or RSS feeds
to stay informed. However, with the number of open source components in a typical application today, manually
tracking is impractical, so automated approaches become more critical.
Use package managers: Package managers (like npm, pip, or Bundler) often provide notifications about
available updates and can automate the update process. The vast majority of open source identified in our scans
originated from npm, which provides a variety of tools to upgrade packages. For example, running npm outdated
will generate a list of packages that have available updates.
Utilize version tracking tools: Tools like Dependabot or Renovate can monitor your project’s dependencies and
automatically create pull requests with updates.
Use identification and monitoring tools: Security tools like Black Duck SCA can scan your codebase for
vulnerabilities in open source components and alert you when updates with security fixes are available.
There’s only one viable solution to stay aware of the open source you use. You need an accurate, comprehensive
inventory of open source, as well as automated processes to monitor vulnerabilities, upgrades, and the overall health of
the open source in your software.
For the past 10 years, a continuing theme of Black Duck’s “Open Source Security and Risk Analysis” report has been
“Do you know what’s in your code?” The numbers have changed since 2015—in most instances, they have significantly
increased—but the question remains the same.
• OSS is overwhelmingly present in modern software: Figure 8: Detail from the 2015 OSSRA Report
Ninety-seven percent of the commercial codebases we
evaluated contained open source, with some industry
codebases reaching 100%. Is your company in one of those high-risk sectors?
• You can’t manage open source manually: The number of open source files in the average application has tripled in
the last four years. Transitive dependencies are a major factor in code complexity. Sixty-four percent of open source
components identified in our scans were transitive dependencies.
• Security vulnerabilities are a pervasive risk: The majority (81%) of assessed codebases had high- or critical-risk
vulnerabilities. Many of these vulnerabilities stem from outdated open source components.
• Many of those vulnerabilities also stem from specific coding weaknesses: Seventy-one percent of the overall open
source vulnerabilities we found were linked to improper input validation.
• Software Bills of Materials are essential for visibility into your code: SBOMs are critical for managing risk,
vulnerabilities, license compliance, software quality, and M&A due diligence.
• Licensing risks are a common issue: More than half of audited codebases (56%) contained license conflicts, often
due to incompatible transitive dependencies. Thirty-three percent of all codebases had OSS components with no
license or a customized license.
• Outdated components present a major challenge: Most audited codebases (91%) contain outdated components,
with 90% of the codebases containing components more than 10 versions behind the most current version.
Implement SCA: Use SCA tools to generate SBOMs, identify vulnerabilities, and manage
license compliance.
Prioritize risk management: Focus on high-risk vulnerabilities and license issues that can
impact the most important aspects of your business.
Regularly update OSS: Stay up-to-date with security advisories, and promptly patch
vulnerable software, particularly jQuery and other popular libraries.
Establish secure coding practices: Focus on input validation, sanitization, and regular
security testing of third-party code.
Monitor OSS maintenance: Stay aware of updates to open source components by tracking
project websites, using package managers, and utilizing automated security services.
Create an SBOM: Develop a detailed SBOM that lists all open source components in your
code, including licenses, versions, and provenance.
Integrate OSS management into your SDLC: Incorporate open source management into your
secure software development framework, following best practices such as those outlined by
CISA and NIST.
If you’re planning an M&A, utilize Black Duck audits to vet your acquisitions: You need
a trusted third party with access to the target’s source code and the tools and expertise to
provide the necessary insights in these high-risk situations.
As we wrote at the beginning of this report, while open source software offers numerous benefits, it also introduces
significant risks that must be actively managed. Organizations need comprehensive visibility into their software supply
chains, robust security practices, and a proactive approach to licensing and maintenance to avoid potential issues.
Implementing SCA tools, SBOMs, and proper hygiene practices is not optional—it’s a necessity in today’s software
landscape. By adopting our recommendations, organizations can mitigate risks and continue to leverage the benefits of
open source software safely and effectively.
The 2025 “Open Source Security and Risk Analysis” report was produced by Black Duck, with contributions from our
Audit, CyRC, Professional Services, and Marketing teams.
Special thanks to Nancy Bernstein, Conor Brolly, Kevin Collins, Scott Handy, Clement Pang, Merin McDonell, Mike
McGuire, Phil Odence, Liz Samet, Mark Van Elderen, and Jack Taylor.
©2025 Black Duck Software, Inc. All rights reserved. Black Duck is a trademark of Black Duck Software, Inc. in the United States and other countries. All other names
mentioned herein are trademarks or registered trademarks of their respective owners. February 2025