IP Library Granted Patent US 12663983
Granted Patent B1
US 12663983 · App. 19/564,452 · Granted Jun 23, 2026

Dynamic patch management system and method

Inventors: Rahul Hari Hirani (Austin, TX); Peter Bretton (Harvard, MA); Joel Carusone (Austin, TX)
Assignee: NinjaOne, LLC
G06F8/65
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12663983
App. No.
19/564,452
Granted
Jun 23, 2026
Kind
B1
Abstract

Systems and methods are disclosed for managing deployment of software patches across a plurality of client devices. A patch management server acquires vendor-supplied patch data, community-sourced patch data, and/or platform-based data, and evaluates the information using weighting logic that may be implemented by a machine-learning model trained on historical patch outcomes. Based on the weighted evaluation, the system generates a bounded risk representation indicating a likelihood that installation of the patch will have a particular effect on one or more client devices. The server selects a deployment action in accordance with the bounded risk representation and may generate and update deployment rings defining the order in which devices receive the patch. Deployment rings may be dynamically recalculated in response to updated data or anomaly conditions, and post-deployment monitoring may trigger rollback actions when thresholds are satisfied.

Claims (48)

1 . A computer-implemented method for managing deployment of a software patch to a plurality of client devices, comprising:

receiving vendor-supplied patch data associated with the software patch;

receiving community-sourced patch data originating from one or more sources other than a patch vendor or the plurality of client devices;

receiving platform-based data originating from one or more of the client devices;

applying a weighting procedure to at least a portion of the vendor-supplied patch data, the community-sourced patch data, and the platform-based data to generate a weighted evaluation of the software patch;

generating, based on the weighted evaluation, a bounded risk representation indicative of a likelihood that installation of the software patch will adversely affect at least one of the client devices; and

executing a deployment action for the software patch based at least partially on the bounded risk representation.

2 . The method of claim 1 , wherein receiving the community-sourced patch data comprises accessing, via a computer network, one or more public internet forums and collecting data associated with the software patch.

3 . The method of claim 1 , wherein receiving the platform-based data comprises collecting telemetry or performance data from one or more client devices via a computer network.

4 . The method of claim 1 , wherein receiving the vendor-supplied patch data comprises accessing, via a computer network, a vendor distribution service to retrieve patch information associated with the software patch.

5 . The method of claim 1 , wherein generating the bounded risk representation comprises applying one or more threshold values to the weighted evaluation of the software patch to map the weighted evaluation of the software patch directly to one of a plurality of bounded risk representations.

6 . The method of claim 1 , wherein applying the weighting procedure comprises evaluating community-sourced patch data based on at least one of: a credibility score associated with a reporting source, a volume of reports referencing the software patch, a relevance of the reported issues to one or more configurations of the client devices, or a consistency of the reported issues across independent sources.

7 . The method of claim 1 , wherein the bounded risk representation is generated on a per-device basis, on a per-group basis for a subset of the client devices, or globally for the plurality of client devices.

8 . The method of claim 1 , wherein the weighting procedure is at least partially performed by a machine-learning model trained using historical vendor-supplied patch data, community-sourced patch data, and platform-based data together with historical deployment outcomes.

9 . The method of claim 1 , further comprising:

generating, by a patch management system and based at least in part on the bounded risk representation and device classification information, a plurality of deployment rings defining different subsets of the client devices and an order in which the software patch is to be deployed to the different subsets; and

deploying the software patch to the plurality of deployment rings in accordance with the order.

10 . The method of claim 9 , further comprising dynamically recalculating, by the patch management system, at least one of the plurality of deployment rings in response to updated platform-based data indicating at least one of performance degradation, anomaly rates satisfying a threshold, or stability across one or more of the deployment rings.

11 . The method of claim 1 , further comprising:

monitoring, by a patch management system, post-deployment platform-based data for the client devices; and

initiating, by the patch management system, a rollback of the software patch on at least a subset of the client devices when one or more anomaly metrics satisfy a predefined threshold.

12 . A system for managing deployment of a software patch, comprising:

one or more processors; and

a memory storing instructions that, when executed by the one or more processors, cause the system to:

acquire vendor-supplied patch data associated with the software patch;

acquire platform-based data collected from one or more client devices via a computer network;

acquire community-sourced patch data originating from one or more external sources of data other than a patch vendor or a patch management platform;

process at least a portion of the vendor-supplied patch data, the community-sourced patch data, and the platform-based data using a machine-learning model trained on historical patch data and historical deployment outcomes;

generate, by the machine-learning model, a bounded risk representation indicative of a likelihood that installation of the software patch will adversely affect at least one client device; and

cause execution of a deployment action on the one or more client devices based at least partially on the bounded risk representation.

13 . The system of claim 12 , wherein acquiring the community-sourced patch data comprises accessing, via a computer network, one or more public internet forums and collecting data associated with the software patch.

14 . The system of claim 12 , wherein acquiring the platform-based data comprises collecting telemetry or performance data from one or more client devices via a computer network.

15 . The system of claim 12 , wherein acquiring the vendor-supplied patch data comprises accessing, via a computer network, a vendor distribution service to retrieve patch information associated with the software patch.

16 . The system of claim 12 , wherein generating the bounded risk representation comprises applying one or more threshold values to a weighted evaluation of the software patch to map the weighted evaluation directly to one of a plurality of bounded risk representations.

17 . The system of claim 12 , wherein processing the community-sourced patch data using the machine-learning model comprises evaluating the community-sourced patch data based on at least one of: a credibility score associated with a reporting source, a volume of reports referencing the software patch, a relevance of the reported issues to one or more configurations of the client devices, or a consistency of the reported issues across independent sources.

18 . The system of claim 12 , further comprising instructions that, when executed by the one or more processors, cause the system to:

generate, based at least in part on the bounded risk representation and device classification information, a plurality of deployment rings defining different subsets of the client devices and an order in which the software patch is to be deployed to the different subsets;

deploy the software patch to the plurality of deployment rings in accordance with the order; and

dynamically recalculate at least one of the plurality of deployment rings in response to updated platform-based data indicating at least one of performance degradation, anomaly rates satisfying a threshold, or stability across one or more of the deployment rings.

19 . The system of claim 12 , further comprising instructions that, when executed, cause the system to:

monitor post-deployment platform-based data for the client devices; and

initiate a rollback of the software patch on at least a subset of the client devices when one or more anomaly metrics satisfy a predefined threshold.

20 . A non-transitory computer-readable medium storing instructions that, when executed by one or more processors of a patch management system, cause the processors to:

acquire vendor-supplied patch data associated with a software patch;

acquire platform-based data collected from one or more client devices via a computer network;

acquire community-sourced patch data originating from one or more external sources of data other than a patch vendor or a patch management platform;

process at least a portion of the vendor-supplied patch data, the community-sourced patch data, and the platform-based data using a machine-learning model trained on historical patch data and historical deployment outcomes, the processing comprising generating, by the machine-learning model, a bounded risk representation indicative of a likelihood that installation of the software patch will adversely affect at least one client device; and

cause execution of a deployment action on one or more of the client devices based at least in part on the bounded risk representation.