Graph Database for Open Source Vulnerability Remediation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for addressing vulnerabilities in transitive dependencies of open-source software are inefficient, particularly when dealing with large datasets, as they often require brute force approaches that are time-consuming and scalable poorly.

Innovation Solution

The use of a graph database to store and query relationships between open-source packages and their versions, allowing for rapid identification of secure versions that avoid vulnerabilities, is proposed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If a brute force approach is used to update open-source packages to fix vulnerabilities, then the method is simple to implement, but the time required increases significantly and scalability deteriorates with large datasets

Engineering Contradiction:
Improveease of implementationVSAvoidtime required to find fixes
Core Design Contradiction:
Ease of manufactureVSLoss of time

Solution Approach 1:

The patent pre-computes and stores dependency graphs in a graph database before vulnerabilities occur. When a vulnerability is detected, the system queries the pre-built graph to find affected packages and safe versions, eliminating the need for time-consuming brute force exploration during remediation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces a graph database as an intermediary between the vulnerability detection system and the package update process. This intermediary stores pre-computed dependency relationships, enabling fast queries to identify safe package versions without performing exhaustive searches.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If a brute force approach is used to check package versions, then the method requires minimal infrastructure, but productivity decreases due to poor scalability

Engineering Contradiction:
Improveinfrastructure complexityVSAvoidremediation speed
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The system performs preliminary computation by building and storing complete dependency graphs in advance. This pre-computation shifts the workload from runtime brute force searches to offline graph construction, significantly improving remediation speed while maintaining manageable infrastructure complexity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates a virtual copy of the entire dependency graph in the graph database, allowing multiple simultaneous queries about package relationships without affecting the actual package ecosystem. This enables fast, parallel vulnerability analysis across large datasets.

Inventive Principle:
Principle #26Copying

3Reliability

If open-source packages are kept up to date to fix vulnerabilities, then security improves, but the complexity of managing dependency trees increases

Engineering Contradiction:
ImprovesecurityVSAvoiddependency management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The graph database serves as an intermediary that stores and pre-processes dependency relationships. This allows the system to query safe package versions by traversing the pre-built graph rather than manually analyzing complex dependency trees, reducing management complexity while maintaining security.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system provides feedback by querying the graph database to identify which packages and versions are safe to use, enabling automated selection of secure dependencies. This feedback mechanism simplifies the decision-making process for maintaining security in complex dependency structures.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS12314403B2Software vulnerability remediation
Publication Date: 2025.05.27 MICRO FOCUS LLC
  • US12314403B2 patent drawing
  • US12314403B2 patent drawing
  • US12314403B2 patent drawing

AI summary

Software is commonly built from a package of software packages, such as open-source packages. A package may require a number of interdependent packages, any one of which may have a security vulnerability. However, the dependencies between packages are often version specific and merely upgrading a package to the newest, or newest non-vulnerable, version may break a dependency and cause the software to be unbuildable (e.g., fail to compile or link) or, if built, faulty. By mapping dependencies to non-vulnerable versions a graphical representation may be built having one or more root-to-leaf paths identifying all the required packages by compatible version but exclude any vulnerable versions. The package may then be built to ensure the resulting software is both internally compatible between packages and absent known security vulnerabilities.