1. A method for maintaining a set of software products installed on a plurality of code execution target entities, the method including the steps of: providing a set of software patches via an automation engine acting as a proxy for a patch provider, each software patch in the set correcting at least one problem by modifying at least one software product, selecting a subset of the patches and at least one target entity for each selected patch according to a vulnerability catalogue using the automation engine, the vulnerability catalog being maintained external to the code execution target entities and providing a listing that a target entity is exposed to a problem corrected by a software patch, the listing indicating a nature of the problem to which the target entity is exposed, the listing identifying that the software patch should be applied to the target entity, building a distribution plan using the automation engine, wherein for each selected patch the distribution plan includes an activity for applying a software package on the corresponding target entities, the software package installing the selected patch when applied, submitting the distribution plan for execution, causing each entity to be scanned for determining whether each entity is exposed to a problem corrected by any of the selected subset of patches, and updating the vulnerability catalogue according to the result of the scanning.