The paper presents a newly developed method for enumerating all minimal cut-sets in a network with failure-prone links and nodes. The network is assumed to be operable if there is a path from the source to the terminal node, composed of operable elements. A cut-set is a set of elements whose failure ensures that no such path exists. A minimal cut-set contains no other cut-set. The method is based on the tree of loop-free paths connecting the two distinguished nodes. This tree, rather than the network structure itself, is analyzed with the aim of finding all minimal cut-sets, but it also serves to eliminate "stub" subnetworks not traversed by any loop-free path (the elements of a stub network do not belong to any minimal cut-set). The algorithm scans the tree from bottom to top producing a collection of sets of network elements at every multi-child node. Each obtained set is checked for being a minimal cut-set or a subset of one. In the first case the set is added to the list of minimal cut-sets, in the second - to the collection passed to the next step. When the last step is executed, the list of all minimal cut-sets is complete. It must be noted that the minimality and subminimality checks do not involve comparing a set to other sets, but are performed much faster using two theorems proved by the author. This feature makes the presented method faster than many other algorithms for generating minimal cut-sets, that identify them by comparing the newly obtained candidate sets with the previously obtained ones. Apart from being fast, the new algorithm is universal in the sense that it can be applied to networks in which some links are directed and some undirected. Furthermore, following the assumption that failures can affect both the links and the nodes, the cut-sets can be composed of these two types of elements rather than of links or nodes alone. This is an important property in view of the fact that many existing algorithms only find cut-sets composed of links, which strongly affects their applicability. Last but not least, if the tree of acyclic paths is limited to the paths not exceeding a given length, the presented algorithm finds all minimal cut-sets intersecting these paths, but leaves out cut-sets that intersect longer paths only. This aspect makes the algorithm suitable for the analysis of computer or transportation networks where a limit is often imposed on the length of a route.