-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update CNT3 (Shared codebase, library, protocol, standard, etc.) #19
Comments
Perhaps we should document the different kinds of CVEs, e.g.:
|
The last item here is related to Issue #50. |
Suggestion: add paragraph to section C.2 of Appendix C. CVE IDs can be assigned to vulnerabilities in any code-based entity or standards upon which code-based entities are designed. This can include software, shared codebases, libraries, protocols, standards, hardware, hardware platforms, file formats, or data encodings. This, along with the split suggested above (creating CNT3 and CNT4), should widen the scope to include what we now intend CVE to be used for. Does it widen the scope too much? Are we missing anything? |
Suggestion: Define a specification (=standards upon which code-based entities are designed) as a set of named guidelines for implementing computing logic. For example this covers named protocols (eg., IPv4, TCP, DHCP), file formats (eg., PNG, JPEG, XML, HTML), data encodings (eg., ASN.1, Base64), hardware architectures and standards (eg., x86, x64, SATA 3.3), algorithms (eg., Quicksort, Blowfish, RC4, MD5), standard libraries and APIs (eg., POSIX, JSR5). Two independent implementations of a named specification are likely to be very similar in behavior and functionality. An implementation is a realization of a specification (which is on paper). If problem occurs in different named specifications, split and consider each named specification separately. If there is no named specification in question, split and consider each product separately. If not sure, split and assign separate CVE IDs. Specifications and corresponding implementations can differ. Consider all permutations taking one specification, two implementations: A1. Specification says to do X (== VULN)
A2. Specification says to do X
B1. Specification is vague or does not say anything
B2. Specification is vague or does not say anything
B can be simply considered as special case of A, where X is "null" or missing. This boils down to: if there are two implementations a named specification (or a part of it), are they equivalent or different? How does one determine the equivalence? It should be up to the CNA. Often it is easy to determine based on the description of the problem in the context of a particular named specification. If it can't be determined or there isn't enough information to determine it, then split the issues and assign different CVE IDs. Suggestion:
With the above wording we have eliminated the need for CNAs to analyze code:
A CNA does not have to go deeper into investigating if they are based on the same codebase or different codebases. We have also eliminated the need to analyze standards and protocols to determine if the protocol specification is at fault or the implementation is at fault. We have replaced this with a claim based approach. If a CNA claims that the product implementing FTP server has the exact same problem as in another FTP server, they use the same CVE ID. If not sure, they use a new CVE ID. |
GOAL: Make the CNA Rules easier to use
CHANGE: Split CNT3 into a rule for codebases and another for standards, libraries, etc.
OUTCOME: Increased clarity in the process.
WORDING:
GOAL: Make the Counting Rules inline with stakeholders' expectations
CHANGE: When there is a way to implement a standard without being vulnerable but the issue is relevant to all implementers, a single ID should be assigned.
OUTCOME: Less confusion by consumers and fewer incorrect uses of CVE IDs.
WORDING: If there is a way to use the library, protocol, or standard without being vulnerable, assign a single CVE ID.
GOAL: Improve process description
CHANGE: Specify whether shared hardware, hardware platforms, file formats, or data encodings are covered.
OUTCOME: Less vague or confusing language.
The text was updated successfully, but these errors were encountered: