Dependency Call Graph Stitching for Safer Package Upgrades

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developers face challenges in determining which version of a third-party component to upgrade to, as newer versions may fix vulnerabilities but introduce other issues, such as breaking changes, making it time-consuming to review multiple versions for open-source libraries maintained by third parties.

Innovation Solution

A computer system generates partial call graphs for dependencies, stitches them together to create a complete call graph, determines upgrade candidates, assesses risk-benefit scores, and prioritizes candidates based on issues, vulnerabilities, and severity to recommend the best version for upgrade.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If developers review multiple newer versions of third-party components to determine the best upgrade, then the vulnerability can be fixed, but the time required to review and select the appropriate version increases significantly

Engineering Contradiction:
Improvevulnerability fixVSAvoidtime to review versions
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the call graph analysis into partial call graphs for individual dependencies, which are then stitched together to form a complete call graph. This segmentation enables focused analysis on specific dependency areas while maintaining overall context, significantly reducing the time required to evaluate upgrade candidates compared to reviewing all versions comprehensively.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary analysis by generating partial call graphs for dependencies before determining upgrade candidates. By pre-computing and caching these partial call graphs, the system prepares essential information in advance, enabling faster evaluation of multiple upgrade versions without requiring developers to manually review each version's impact.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If developers manually review each newer version of a component, then they can identify breaking changes and functional issues, but the complexity of the review process increases with the number of versions

Engineering Contradiction:
Improvefunctional integrityVSAvoidreview process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary analysis system that automatically generates partial call graphs and stitches them to create complete call graphs. This intermediary tool mediates between the developer's need to ensure functional integrity and the complexity of manually reviewing multiple versions, by automatically analyzing and comparing call graphs across versions to identify breaking changes and functional issues.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system replaces the mechanical manual review process with automated call graph analysis. Instead of developers manually comparing each version's functionality, the system automatically generates, stitches, and analyzes call graphs to identify breaking changes, substituting the manual mechanical process with an automated analytical system.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Reliability

If the system analyzes all dependencies to determine upgrade candidates, then comprehensive vulnerability assessment is achieved, but memory consumption increases in resource-limited environments

Engineering Contradiction:
Improvecomprehensive security assessmentVSAvoidmemory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent divides the complete call graph into partial call graphs for individual dependencies. By generating and storing only the necessary partial call graphs in a cache rather than loading and analyzing the complete call graph at once, the system achieves comprehensive security assessment while reducing peak memory consumption in resource-limited environments.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary action by generating and caching partial call graphs before performing comprehensive vulnerability assessment. This pre-computation and caching of essential dependency information enables thorough security analysis without requiring all data to be loaded into memory simultaneously, thus managing memory usage effectively.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS20260057079A1Stitching partial call graphs to create a complete call graph to determine when to upgrade to a newer version
Publication Date: 2026.02.26 ENDOR LABS INC
  • US20260057079A1 patent drawing
  • US20260057079A1 patent drawing
  • US20260057079A1 patent drawing

AI summary

A package in a software project is selected and dependencies determined. A partial call graph for individual dependencies is created and stored in a cache to create partial call graphs that are stitched together to create a complete call graph of the package. A set of upgrade candidates for individual dependencies is determined and an upgrade candidate is selected from the set. Based at least in part on the complete call graph, issues associated with upgrading the package to use the upgrade candidate are determined and a risk-benefit score associated with each upgrade candidate determined based on the issues, the number of vulnerabilities addressed, and a severity of the vulnerabilities addressed by upgrading the package to use the upgrade candidate. The set of upgrade candidates is prioritized based on the associated risk-benefit score to create a prioritized set and provided to a developer associated with the package.