I am trying to make the link between faults and weaknesses (As defined by Common Weaknesses Enumeration, a MITRE project). The word "fault" is generally used in the reliability domain, to designate the cause of an error i.e., the cause of the deviation from a correct service delivered by a system to an incorrect service.
The word "weakness" is widely used in the cybersecurity community, however, its meaning is not always clear. From my readings, a weakness is defined as a mistake in software that, in proper conditions, could contribute to the introduction of vulnerabilities within that software. A vulnerability being the occurrence of a weakness in a system.
As I wrote, I am trying to put into relation these two concepts (faults and weaknesses), to create a relation between reliability and security. From my observations, it is fair to say that a weakness is caused by a fault. When you consider a weakness such as "incorrect privilege assignment", it is clear that this could happen only because of a bad development of your system, which can be classified as a development fault. In my opinion, if a development fault is not a weakness (i.e., cannot lead to any vulnerability), it means that the part of your system where the fault resides is not useful, hence could be removed.
My question is: are all development faults weaknesses? Else, do you have a concrete counterexample?
Thanks for your help.