<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:old.nabble.com,2006:forum-26532</id>
	<title>Nabble - CWE Research List</title>
	<updated>2009-11-02T19:53:01Z</updated>
	<link rel="self" type="application/atom+xml" href="http://old.nabble.com/CWE-Research-List-f26532.xml" />
	<link rel="alternate" type="text/html" href="http://old.nabble.com/CWE-Research-List-f26532.html" />
	<subtitle type="html">&lt;img src=&quot;http://old.nabble.com/file/f26532/google_cwelogo.jpg&quot; border=&quot;0&quot; /&gt;&lt;br&gt;&lt;b&gt;CWE Research&lt;/b&gt;&amp;nbsp;- A lightly moderated public forum to discuss CWE definitions, suggest potential definition expansion(s), and/or submit new definitions. General discussion of the vulnerabilities themselves is also welcome.</subtitle>
	
<entry>
	<id>tag:old.nabble.com,2006:post-26174629</id>
	<title>CWE Version 1.6 Now Available</title>
	<published>2009-11-02T19:53:01Z</published>
	<updated>2009-11-02T19:53:01Z</updated>
	<author>
		<name>Steven M. Christey-2</name>
	</author>
	<content type="html">CWE Version 1.6 [1] has been posted on the CWE List page. A detailed
&lt;br&gt;report [2] is available that lists specific changes between Version 1.5
&lt;br&gt;and Version 1.6.
&lt;br&gt;&lt;br&gt;The main changes include: (1) creation of 4 new entries with no entries
&lt;br&gt;deprecated; (2) cleanup of the general-purpose Other_Notes field in 84
&lt;br&gt;entries, which typically moved content into other more relevant fields
&lt;br&gt;within those entries, especially Common_Consequences; (3) modified
&lt;br&gt;descriptions for 49 entries stemming from the Other_Notes modification and
&lt;br&gt;continued efforts to establish a common vocabulary; (4) promotion of three
&lt;br&gt;entries from &amp;quot;Draft&amp;quot; to &amp;quot;Usable&amp;quot; status; and (5) updated relationships for
&lt;br&gt;50 entries, including a partial restructuring of CWE-119 to better handle
&lt;br&gt;closely-related buffer-overflow concepts. There were no schema changes in
&lt;br&gt;this version.
&lt;br&gt;&lt;br&gt;The new entries are:
&lt;br&gt;&lt;br&gt;CWE-786 Access of Memory Location Before Start of Buffer
&lt;br&gt;CWE-787 Out-of-bounds Write
&lt;br&gt;CWE-788 Access of Memory Location After End of Buffer
&lt;br&gt;CWE-789 Uncontrolled Memory Allocation
&lt;br&gt;&lt;br&gt;The &amp;quot;Stakeholder Field Priorities&amp;quot; document [3] has been modified to
&lt;br&gt;reflect additional stakeholders, new CWE fields, and changing priorities.
&lt;br&gt;The CWE/SANS Top 25 document has been updated to reflect the latest
&lt;br&gt;changes in names and attack patterns. PDF documents have been updated to
&lt;br&gt;display graphs of views such as the Research View (CWE-1000) and the
&lt;br&gt;Development View (CWE-699), and a &amp;quot;Printable CWE&amp;quot; document lists all of
&lt;br&gt;the entries in CWE.
&lt;br&gt;&lt;br&gt;Please send any comments or concerns to &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=26174629&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;cwe@...&lt;/a&gt;, or post them to
&lt;br&gt;this list.
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;Steve Christey
&lt;br&gt;CWE Technical Lead
&lt;br&gt;&lt;br&gt;&lt;br&gt;[1] &lt;a href=&quot;http://cwe.mitre.org/data/index.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/data/index.html&lt;/a&gt;&lt;br&gt;[2] &lt;a href=&quot;http://cwe.mitre.org/data/reports.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/data/reports.html&lt;/a&gt;&lt;br&gt;[3] &lt;a href=&quot;http://cwe.mitre.org/data/reports/stakeholder_field_priorities.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/data/reports/stakeholder_field_priorities.html&lt;/a&gt;&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/CWE-Version-1.6-Now-Available-tp26174629p26174629.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25721289</id>
	<title>OWASP Hartford: October 2009</title>
	<published>2009-10-02T12:28:13Z</published>
	<updated>2009-10-02T12:28:13Z</updated>
	<author>
		<name>owasp</name>
	</author>
	<content type="html">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 3.2//EN&quot;&gt;
&lt;HTML&gt;
&lt;HEAD&gt;
&lt;META HTTP-EQUIV=&quot;Content-Type&quot; CONTENT=&quot;text/html; charset=Windows-1252&quot;&gt;
&lt;META NAME=&quot;Generator&quot; CONTENT=&quot;MS Exchange Server version 6.5.7654.12&quot;&gt;
&lt;TITLE&gt;OWASP Hartford: October 2009&lt;/TITLE&gt;
&lt;/HEAD&gt;
&lt;BODY&gt;
&lt;!-- Converted from text/rtf format --&gt;

&lt;P&gt;&lt;FONT SIZE=2 FACE=&quot;Arial&quot;&gt;When: Tuesday, October 13, 2009 5:00 PM-7:00 PM (GMT-05:00) Eastern Time (US &amp;amp; Canada).&lt;/FONT&gt;

&lt;BR&gt;&lt;FONT SIZE=2 FACE=&quot;Arial&quot;&gt;Where: The Hartford: Tower Building, 22nd Floor&lt;/FONT&gt;
&lt;/P&gt;

&lt;P&gt;&lt;FONT SIZE=2 FACE=&quot;Arial&quot;&gt;*~*~*~*~*~*~*~*~*~*&lt;/FONT&gt;
&lt;/P&gt;

&lt;P&gt;&lt;FONT SIZE=2 FACE=&quot;Arial&quot;&gt;The Open Web Application Security Project (OWASP) is a worldwide free and open community focused on improving the security of application software. Our mission is to make application security &amp;quot;visible,&amp;quot; so that people and organizations can make informed decisions about application security risks. Everyone is free to participate in OWASP and all of our materials are available under a free and open software license. &lt;/FONT&gt;&lt;/P&gt;

&lt;P&gt;&lt;FONT SIZE=2 FACE=&quot;Arial&quot;&gt;The agenda for this meeting is posted at: &lt;A HREF=&quot;http://www.owasp.org/index.php/Hartford&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.owasp.org/index.php/Hartford&lt;/A&gt;&lt;/FONT&gt;
&lt;/P&gt;

&lt;P&gt;&lt;FONT SIZE=2 FACE=&quot;Arial&quot;&gt;To receive future invites, please subscribe to our mailing list at: &lt;A HREF=&quot;https://lists.owasp.org/mailman/listinfo/owasp-hartford&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;https://lists.owasp.org/mailman/listinfo/owasp-hartford&lt;/A&gt;&lt;/FONT&gt;&lt;/P&gt;

&lt;pre&gt;************************************************************
This communication, including attachments, is for the exclusive use of addressee and may contain proprietary, confidential and/or privileged information.  If you are not the intended recipient, any use, copying, disclosure, dissemination or distribution is strictly prohibited.  If you are not the intended recipient, please notify the sender immediately by return e-mail, delete this communication and destroy all copies.
************************************************************
&lt;/pre&gt;&lt;/BODY&gt;
&lt;/HTML&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/OWASP-Hartford%3A-October-2009-tp25721289p25721289.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-25719591</id>
	<title>Re: A Proposal to Precisely Define Weaknesses</title>
	<published>2009-10-02T10:35:54Z</published>
	<updated>2009-10-02T10:35:54Z</updated>
	<author>
		<name>Pascal Meunier</name>
	</author>
	<content type="html">Michael and Paul,
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Yours is an interesting proposal, and the goals are laudable. &amp;nbsp;I have
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; organized my comments by corresponding section in your proposal.
&lt;br&gt;&lt;br&gt;Section 1. 
&lt;br&gt;I accept the premise that careful definitions are better, within the limits of
&lt;br&gt;what is possible or practical. &amp;nbsp;
&lt;br&gt;&lt;br&gt;Section 2. 
&lt;br&gt;I find your examples of difficult cases interesting and well-chosen. &amp;nbsp;They
&lt;br&gt;illustrate things that IMO are wrong with not just the practices of many
&lt;br&gt;programmers, but also with the &amp;quot;C&amp;quot; language and its compilers. Inasmuch as the
&lt;br&gt;examples have several issues, asking which single weakness that code represents
&lt;br&gt;is itself an ill-posed question. &amp;nbsp;I would think that language and
&lt;br&gt;compiler/hardware bugs are out-of-scope for the CWE. &amp;nbsp;Yet, I believe that
&lt;br&gt;you are correct in that the CWE should be robust vs these difficulties.
&lt;br&gt;&lt;br&gt;The code in the SRD test case 201 is wrong at the semantics level, and at that
&lt;br&gt;level it is obviously a buffer overflow. &amp;nbsp;That is because the semantics of the
&lt;br&gt;type declaration are violated. I believe that the point of the example is that
&lt;br&gt;the compiler happens to allocate extra memory for efficiency reasons, so the
&lt;br&gt;&amp;quot;actual&amp;quot; buffer is not overflowed. &amp;nbsp;However, what is wrong here is that the
&lt;br&gt;combination of C language, compiler and architecture introduced an ambiguity
&lt;br&gt;about what constitutes the buffer. &amp;nbsp;The conceptual, &amp;quot;semantic buffer&amp;quot; is
&lt;br&gt;different from the actual one. &amp;nbsp;It's a fallacy to think that a program that
&lt;br&gt;doesn't trample other memory structures or doesn't crash, due to a happenstance
&lt;br&gt;combination of compiler and architecture, is correct. &amp;nbsp;IMO it is unfair to ask
&lt;br&gt;that the CWE definitions resolve ambiguities within languages and compilers
&lt;br&gt;themselves. &amp;nbsp;I think that the CWE should operate and apply at the semantic level
&lt;br&gt;of the code because this is where programmers do their work. &amp;nbsp;Ambiguities and
&lt;br&gt;bugs within specific languages and compilers should be the problem of the
&lt;br&gt;relevant standards bodies or compiler vendors. &amp;nbsp;I am tempted to say that the
&lt;br&gt;fact that the program doesn't crash or produce an error is a weakness in the
&lt;br&gt;specification of the &amp;quot;C&amp;quot; language ;). &amp;nbsp;
&lt;br&gt;&lt;br&gt;The example with alloca() makes it clear that rare cases can be overlooked
&lt;br&gt;when writing definitions for CWE. It's rare because its use is
&lt;br&gt;discouraged and it is not in POSIX.1-2001, according to various man pages.
&lt;br&gt;Consequently I find this oversight not upsetting, even though your point is
&lt;br&gt;well made. &amp;nbsp;I agree that it would be better if things like this didn't happen.
&lt;br&gt;&lt;br&gt;The SRD test case 188 is similar to 201 and rather obvious to me; &amp;nbsp;it is wrong
&lt;br&gt;at the semantics level, as there does not exist an element at index 17 for buf1,
&lt;br&gt;and at that level it is obviously a buffer overflow. &amp;nbsp;As an example possible
&lt;br&gt;consequence, with most compilers and in most environments the contents of buf2
&lt;br&gt;get overwritten, and if those contents had a security meaning then all kinds of
&lt;br&gt;bad things could happen. That the access doesn't go outside the struct and
&lt;br&gt;the program happens not to crash is irrelevant. &amp;nbsp;
&lt;br&gt;&lt;br&gt;So, how do we make the CWE robust vs these issues? &amp;nbsp;As a general comment on
&lt;br&gt;those examples, it seems that several were discussed because the consequences
&lt;br&gt;of the violations were possibly or likely benign. &amp;nbsp;I'd argue that the possible
&lt;br&gt;consequences don't matter, and it many cases they are hard to fathom anyway.
&lt;br&gt;What matters (but see below) is that at a semantic level, a close similarity is
&lt;br&gt;established between those violations and weaknesses known to produce
&lt;br&gt;vulnerable, exploitable code, for the purpose of being classified as instances
&lt;br&gt;of those weaknesses.
&lt;br&gt;&lt;br&gt;I love the example of a network programming structure with a payload, and how
&lt;br&gt;you describe it. It is obviously a hack, albeit a popular hack that works
&lt;br&gt;well and is convenient. &amp;nbsp;It is also the perfect counterexample to what I've
&lt;br&gt;said above. &amp;nbsp;The literal semantics of the code are violated, yet few people
&lt;br&gt;would consider this an example of CWE-121. &amp;nbsp;This is because at a higher level,
&lt;br&gt;we can figure out the intent of the programmer and that the code is safe.
&lt;br&gt;However, if we need to guess at programmer intent on a regular basis in order
&lt;br&gt;to figure out that something is or isn't a weakness, the task is much harder
&lt;br&gt;and difficult to automate. I believe, though, that a scanner could be programmed
&lt;br&gt;to treat an array with a declared size of zero as possibly being a declaration
&lt;br&gt;that the size is probably variable and will be determined later. If it is so
&lt;br&gt;popular, then perhaps the standard needs to be changed and allow a special
&lt;br&gt;notation for an array of a size TBD (to be determined), so programmers can
&lt;br&gt;write what they mean? I think that this is really a problem with standards and
&lt;br&gt;compilers, out of scope for the CWE to resolve. Nevertheless, to achieve the
&lt;br&gt;goal of robustness, the CWE folks are stuck with defining an augmented or
&lt;br&gt;variant &amp;quot;C&amp;quot; instead of the one defined in the standard. &amp;nbsp;If this example is
&lt;br&gt;only one of a few exceptions, though, it is manageable. &amp;nbsp;
&lt;br&gt;&lt;br&gt;Section 3. 
&lt;br&gt;a) I have reservations on the practicality of requiring the CWE definitions to
&lt;br&gt;be reviewed by experts external to MITRE. &amp;nbsp;The CVE had a review and vote model
&lt;br&gt;that was overwhelmed by the creation rate of new vulnerabilities. I don't
&lt;br&gt;expect that the number of CWE entries will be anywhere as high as the number of
&lt;br&gt;CVE entries, but in theory the number of ways in which people can get things
&lt;br&gt;wrong is very high and the known ones could keep increasing every year. The
&lt;br&gt;number of replies to your proposal might be indicative of the number of
&lt;br&gt;volunteers MITRE would get for reviewing CWE entries. &amp;nbsp;Still, the fact that the
&lt;br&gt;SC22/WG23 effort is making progress is encouraging. &amp;nbsp;I guess we'll really know
&lt;br&gt;only if the CWE folks actually make a request.
&lt;br&gt;&lt;br&gt;b) I'm slightly worried that focusing on a &amp;quot;prime definition&amp;quot; will set the stage
&lt;br&gt;for excessive rules- or wording- lawyering, instead of using &amp;quot;reasoned common
&lt;br&gt;sense&amp;quot;. &amp;nbsp;This phenomenon is common wherever a single prime definition exists.
&lt;br&gt;For example, in some games lacking examples of what the rules mean, the exact
&lt;br&gt;grammar and definitions of words get analysed to a ridiculous extent. &amp;nbsp;Let's
&lt;br&gt;mention also &amp;quot;legalese&amp;quot;, the distortion of human languages attempting to
&lt;br&gt;close loopholes and reach precise meanings. &amp;nbsp;Its existence is almost proof
&lt;br&gt;that if we want precise and correct prime definitions, we shouldn't use a
&lt;br&gt;natural language.
&lt;br&gt;&lt;br&gt;c) Another aspect is that whereas designating a single, prime definition removes
&lt;br&gt;ambiguity and inconsistencies from consideration, assuming that they are not
&lt;br&gt;contained within the prime definition itself, it also removes redundancy, which
&lt;br&gt;is very useful for catching errors. In a way, I see this proposal as having
&lt;br&gt;disturbing similarities to removing checksums from network messages, or
&lt;br&gt;considering them as wrong if a calculated checksum doesn't match, which defeats
&lt;br&gt;the purpose. The human mind uses many points of references to form a concept;
&lt;br&gt;I'm not sure that a single definition would be able to capture all the
&lt;br&gt;viewpoints and nuances of a problem. I see this as a different issue from your
&lt;br&gt;discussion point as to whether elements refer to completely orthogonal ideas.
&lt;br&gt;In Steve's answer, I note that indeed differences between fields can result in
&lt;br&gt;deprecating an entry. &amp;nbsp;This confirms the usefulness of redundancy in spotting
&lt;br&gt;&amp;quot;definitional confusion/vagueness&amp;quot;. &amp;nbsp;Granted, if things were done really well
&lt;br&gt;to start with, like you suggest, then perhaps the redundancy wouldn't be
&lt;br&gt;needed (and in a perfect world we wouldn't need backups ;-)). &amp;nbsp;I like the way
&lt;br&gt;it's been handled by the CWE team. &amp;nbsp;
&lt;br&gt;&lt;br&gt;d) A minor concern is that focusing on a single definition also devalues the
&lt;br&gt;other fields, so perhaps they will get less attention than they deserve. &amp;nbsp;I
&lt;br&gt;think all are useful for humans attempting to learn or understand what a
&lt;br&gt;particular weakness is. Could this, as a side effect, make the CWE slightly
&lt;br&gt;more difficult to use, e.g., because there would be fewer examples?
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;Pascal Meunier
&lt;br&gt;&lt;br&gt;&lt;br&gt;On Fri, 1 May 2009 14:51:02 -0400
&lt;br&gt;&amp;quot;Michael Koo&amp;quot; &amp;lt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=25719591&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;koo@...&lt;/a&gt;&amp;gt; wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; A Proposal to Precisely Define Weaknesses
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;by Paul E. Black
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 May 2009
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Although much work has been done, which has greatly improved the definitions
&lt;br&gt;&amp;gt; of source code weaknesses, there are still inconsistencies, ambiguities, and
&lt;br&gt;&amp;gt; errors. &amp;nbsp;Better definitions are needed as one element to speed the work of
&lt;br&gt;&amp;gt; detecting and preventing weaknesses.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; We propose, first, that one element of a CWE be designated the prime
&lt;br&gt;&amp;gt; definition. &amp;nbsp;If there is inconsistency between the prime definition and a
&lt;br&gt;&amp;gt; description, example, or definition in another element, the prime definition
&lt;br&gt;&amp;gt; is considered to be correct. &amp;nbsp;If there is an error, the prime definition is
&lt;br&gt;&amp;gt; the first to be fixed. &amp;nbsp;Other descriptions and definitions can later be
&lt;br&gt;&amp;gt; brought into alignment. &amp;nbsp;Second we propose a specific set of reviews and
&lt;br&gt;&amp;gt; other steps as necessary and sufficient to consider a prime definition to be
&lt;br&gt;&amp;gt; thoroughly reviewed.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; This document has three sections: motivation for precisely and accurately
&lt;br&gt;&amp;gt; defining weaknesses, comments on the current state of definitions, and the
&lt;br&gt;&amp;gt; proposal itself. &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; If you disagree (or agree!) &amp;nbsp;with the proposal or have suggestions, please
&lt;br&gt;&amp;gt; respond. &amp;nbsp;Feel free to share this.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; SECTION 1. WHY CAREFULLY DEFINE WEAKNESSES?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; An important prelude to preventing, mitigating, or detecting weaknesses in
&lt;br&gt;&amp;gt; software and systems is to have clear, unambiguous, widely-accepted
&lt;br&gt;&amp;gt; definitions of such weaknesses. &amp;nbsp;Consider the following questions that might
&lt;br&gt;&amp;gt; occur to someone learning about software weaknesses. &amp;nbsp;What precisely is a
&lt;br&gt;&amp;gt; buffer overflow? &amp;nbsp;Is it the same as a heap overflow or an unbounded
&lt;br&gt;&amp;gt; transfer? &amp;nbsp;Is one just a refinement of another? &amp;nbsp;If an integer overflow
&lt;br&gt;&amp;gt; leads to memory violation, which weakness is it? &amp;nbsp;Is it both or is there
&lt;br&gt;&amp;gt; some other relation between them? &amp;nbsp;Precise definitions could answer these
&lt;br&gt;&amp;gt; questions and others.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Many people have done excellent work toward clearly defining types of
&lt;br&gt;&amp;gt; weakness. &amp;nbsp;(Hereafter we usually use the term &amp;quot;weakness&amp;quot; to mean a weakness
&lt;br&gt;&amp;gt; class or type, not a particular instance of a weakness type.) Some papers
&lt;br&gt;&amp;gt; and work are &amp;quot;Seven Pernicious Kingdoms: A Taxonomy of Software Security
&lt;br&gt;&amp;gt; Errors&amp;quot; (Tsipenyuk, Chess, and McGraw), &amp;quot;The CLASP Application Security
&lt;br&gt;&amp;gt; Process&amp;quot;, (Viega), &amp;quot;The Preliminary List of Vulnerability Examples for
&lt;br&gt;&amp;gt; Researchers (PLOVER)&amp;quot; (Christey), &amp;quot;The Ten Most Critical Web Application
&lt;br&gt;&amp;gt; Security Vulnerabilities&amp;quot; (OWASP), &amp;quot;19 Deadly Sins of Software Security
&lt;br&gt;&amp;gt; Programming Flaws and How to Fix Them&amp;quot; (Howard, LeBlanc, and Viega), &amp;quot;A
&lt;br&gt;&amp;gt; Taxonomy of Computer Program Security Flaws, with Examples&amp;quot; (Landwehr, Bull,
&lt;br&gt;&amp;gt; McDermott, and Choi), (see &lt;a href=&quot;http://cwe.mitre.org/about/sources.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/about/sources.html&lt;/a&gt;&amp;nbsp;for more)
&lt;br&gt;&amp;gt; &amp;quot;Structured CWE Descriptions&amp;quot; (Christey, Harris, Heinbockel) available at
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://cwe.mitre.org/documents/structured_descriptions/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/documents/structured_descriptions/&lt;/a&gt;, ISO/IEC Project
&lt;br&gt;&amp;gt; 22.24772: Programming Language Vulnerabilities available at
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://aitc.aitcnet.org/isai/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://aitc.aitcnet.org/isai/&lt;/a&gt;&amp;nbsp;and many others. &amp;nbsp;KDM Analytics has produced
&lt;br&gt;&amp;gt; formal definitions of some 30 weaknesses.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Since 2006 MITRE has led the Common Weakness Enumeration (CWE) effort to
&lt;br&gt;&amp;gt; collect, reconcile, organize, and define weaknesses. &amp;nbsp;Not only has this work
&lt;br&gt;&amp;gt; improved and unified definitions, it has also led to discovery of
&lt;br&gt;&amp;gt; fundamental clarifying concepts, such as chains and composites of weaknesses
&lt;br&gt;&amp;gt; (&amp;quot;Chains and Composites&amp;quot;, Steve Christey,
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://cwe.mitre.org/data/reports/chains_and_composites.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/data/reports/chains_and_composites.html&lt;/a&gt;).
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Precise definitions can lead to further better understanding of weaknesses,
&lt;br&gt;&amp;gt; their causes, cures, and preventions.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; There are still inconsistencies and ambiguities within CWEs. &amp;nbsp;Consider that
&lt;br&gt;&amp;gt; a CWE may have many descriptive elements. &amp;nbsp;Some in CWE Version 1.0 are
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Black_Box_Definition (possibly more than one)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; White_Box_Definition (possibly more than one)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Description
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Description_Summary
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Extended_Description
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Compound_Element
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Name (Weakness)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Demonstrative_Example
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Observed_Example
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Note
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Theoretical_Note
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Could inconsistencies be eliminated by deleting all but one such element in
&lt;br&gt;&amp;gt; each CWE? &amp;nbsp;That is not practical. &amp;nbsp;One definition cannot serve all people in
&lt;br&gt;&amp;gt; all instances. &amp;nbsp;Training and reference needs succinct prose definitions and
&lt;br&gt;&amp;gt; examples. &amp;nbsp;Automated tools need a definition written in machine-readable
&lt;br&gt;&amp;gt; languages. &amp;nbsp;When discussion gets specific, people need the nuances and
&lt;br&gt;&amp;gt; details of what constitutes that weakness. &amp;nbsp;Proving that a weakness is
&lt;br&gt;&amp;gt; absent or is prevented by some approach needs a rigorous, mathematically
&lt;br&gt;&amp;gt; formal definition.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Improving the state-of-practice of software development to reduce instances
&lt;br&gt;&amp;gt; of weaknesses and the vulnerabilities they cause takes work from language
&lt;br&gt;&amp;gt; designers, compiler writers, educators, assurance tool developers, auditors
&lt;br&gt;&amp;gt; and developers of guidance, people who specify and contract software
&lt;br&gt;&amp;gt; development, researchers, vulnerability trackers, software engineers, and
&lt;br&gt;&amp;gt; many more. &amp;nbsp;If people in these roles disagree about what constitutes a
&lt;br&gt;&amp;gt; particular weakness, or even whether it is a weakness at all, communication
&lt;br&gt;&amp;gt; is difficult at best. &amp;nbsp;At worst they may work at cross purposes. &amp;nbsp;Broadly
&lt;br&gt;&amp;gt; accepted definitions should allow different groups to work together more
&lt;br&gt;&amp;gt; effectively.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Unambiguous, complete definitions allows those in the field to understand
&lt;br&gt;&amp;gt; precisely what different software assurance tools, services, technologies,
&lt;br&gt;&amp;gt; or methods can detect, mitigate, or prevent.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Formal definitions may allow tools to automatically check for weaknesses,
&lt;br&gt;&amp;gt; create wrappers to filter out attacks to exploit them, or even rewrite the
&lt;br&gt;&amp;gt; code to eliminate them.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; SECTION 2. DOES THE CURRENT METHOD NEED IMPROVEMENT?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Currently there isn't a documented process to validate weakness definitions.
&lt;br&gt;&amp;gt; Descriptions, definitions, and examples in the CWE have been reviewed and
&lt;br&gt;&amp;gt; improved by different entities and the quality and consistency have improved
&lt;br&gt;&amp;gt; dramatically over the years. &amp;nbsp;Yet, even casual examination shows that most,
&lt;br&gt;&amp;gt; if not all, CWEs need further work.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Given the number of CWEs and their range of complexity, frequency, and
&lt;br&gt;&amp;gt; severity, it is probably not worthwhile to precisely define every single
&lt;br&gt;&amp;gt; weakness. &amp;nbsp;But for those which need precise definitions, it is not clear
&lt;br&gt;&amp;gt; exactly what should be. &amp;nbsp;As with code, an essentially unlimited amount of
&lt;br&gt;&amp;gt; checking and review could be done for each weakness. &amp;nbsp;The community should
&lt;br&gt;&amp;gt; agree on the types and amounts of validation that are necessary and
&lt;br&gt;&amp;gt; sufficient.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; To be specific, currently every CWE has a summary description. &amp;nbsp;A CWE may
&lt;br&gt;&amp;gt; also have alternate term descriptions, demonstrative examples, or a white
&lt;br&gt;&amp;gt; box definition. &amp;nbsp;Thousands of these descriptions have been reviewed and
&lt;br&gt;&amp;gt; improved greatly. &amp;nbsp;But which ones are merely informative and which ones are
&lt;br&gt;&amp;gt; intended to be the carefully reviewed, precise and accurate? &amp;nbsp;Consider
&lt;br&gt;&amp;gt; CWE-121, Stack-based Buffer Overflow. &amp;nbsp;(Text taken from CWE version 1.3).
&lt;br&gt;&amp;gt; Here is the description summary:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;&amp;quot;A stack-based buffer overflow condition is a condition where the
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;buffer being overwritten is allocated on the stack (i.e., is a
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;local variable or, rarely, a parameter to a function).&amp;quot;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Here is the White Box Definition:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;quot;A buffer overflow where the buffer from the Buffer Write
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; Operation is statically allocated&amp;quot;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Is the following an instance of CWE-121? &amp;nbsp;Note that alloca() gets memory
&lt;br&gt;&amp;gt; from the stack, not the heap.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; #define BUFSIZE 256
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; char *buf;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; int main(int argc, char **argv) {
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; buf = (char *)alloca(BUFSIZE);
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; strcpy(buf, argv[1]);
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; }
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The description summary uses &amp;quot;i.e.&amp;quot; meaning &amp;quot;that is&amp;quot; or a restatement. &amp;nbsp;A
&lt;br&gt;&amp;gt; strict reading excludes this example because the buffer is only referenced
&lt;br&gt;&amp;gt; by a global variable.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The white box definition says the buffer is statically allocated, that is,
&lt;br&gt;&amp;gt; allocated automatically by the compiler or language support routine, not by
&lt;br&gt;&amp;gt; functions invoked at run-time, such as alloca().
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Again a strict reading excludes this example because the buffer is
&lt;br&gt;&amp;gt; dynamically allocated.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Yet most people would agree that the example code has an instance of
&lt;br&gt;&amp;gt; Stack-based Buffer Overflow and that the descriptions have minor
&lt;br&gt;&amp;gt; inaccuracies. &amp;nbsp;Even ignoring this particular example, we see there is
&lt;br&gt;&amp;gt; inconsistency between the descriptions.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The following code snippets highlight not merely quibbles about wording, but
&lt;br&gt;&amp;gt; raise the fundamental question of what CWE-121 means.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; typedef struct
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; {
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; char buf1[10];
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; char buf2[10];
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; } my_struct;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; my_struct s;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; s.buf1[17] = 'A';
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; (from SRD test case 188)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The C99 standard [1] Sect. 6.7.2.1 Structure and union specifiers, page 102,
&lt;br&gt;&amp;gt; para 5 says fields are &amp;quot;allocated in order&amp;quot;. &amp;nbsp;So buf2 makes the structure at
&lt;br&gt;&amp;gt; least big enough that the access doesn't go outside the structure. &amp;nbsp;Any
&lt;br&gt;&amp;gt; particular compiler probably allocates the structure consistently, so the
&lt;br&gt;&amp;gt; above code likely have a specific behavior in each environment, although it
&lt;br&gt;&amp;gt; might differ from environment to environment. &amp;nbsp;Is this an instance as
&lt;br&gt;&amp;gt; CWE-121?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; It is common in network programming to have structures and code like the
&lt;br&gt;&amp;gt; following:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; struct {
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; int header;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; char payload[ 0 ];
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; } *p;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; p = malloc(sizeof *p + 2);
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; p-&amp;gt;payload[0] = 'A';
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; p-&amp;gt;payload[1] = '\0';
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; (adapted from Aurelien Delaitre)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Nothing in the C standard justifies this code, but most compilers will treat
&lt;br&gt;&amp;gt; it reasonably. &amp;nbsp;Since the code does not strictly follow the C standard, is
&lt;br&gt;&amp;gt; its behavior undefined so that this should not be considered an instance of
&lt;br&gt;&amp;gt; CWE-121?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Compilers usually allocate structures in multiples of four bytes, so the
&lt;br&gt;&amp;gt; following code should be fine. &amp;nbsp;That is, there is memory for 12 characters
&lt;br&gt;&amp;gt; in the structure. &amp;nbsp;Should this example be considered to write outside of the
&lt;br&gt;&amp;gt; buffer or not? &amp;nbsp;On what grounds?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; typedef struct
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; {
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; int int_field;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; char buf[10];
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; } my_struct;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; my_struct s;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; s.buf[10] = 'A';
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; (from SRD test case 201)
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; We see that precise definitions are important to make consistent judgments.
&lt;br&gt;&amp;gt; We also see that it is very difficult to write a definition which is precise
&lt;br&gt;&amp;gt; and accurate. &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Given all the work which the CWE embodies, how can the effect of
&lt;br&gt;&amp;gt; inconsistencies be minimized? &amp;nbsp;Where should work be concentrated to achieve
&lt;br&gt;&amp;gt; good definitions? &amp;nbsp;All CWEs have a status of draft or incomplete. &amp;nbsp;How much
&lt;br&gt;&amp;gt; and what kind of work should be done before a definition is considered to be
&lt;br&gt;&amp;gt; &amp;quot;thoroughly reviewed&amp;quot;, that is, good enough for the community to move on to
&lt;br&gt;&amp;gt; another one? &amp;nbsp;What language, either formal (mathematically precise) or
&lt;br&gt;&amp;gt; prose, should be used to state definitions clearly and so the style is
&lt;br&gt;&amp;gt; similar across CWEs?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; What should be done to minimize assumptions or artifacts arising from the
&lt;br&gt;&amp;gt; use of a particular formal language or style?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; SECTION 3. THE PROPOSAL
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; This proposal is part of a vision to improve software assurance by having
&lt;br&gt;&amp;gt; widely-used clear definitions of software weakness classes.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The goals of this proposal are to
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; * increase precision (minimize ambiguity and inconsistency) in CWE
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; entries and
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; * increase accuracy (minimize mistakes indicated by broad agreement).
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The proposal has two points: (1) the need for an prime definition and
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; (2) a review process. &amp;nbsp;Each point has several parts or supporting clauses
&lt;br&gt;&amp;gt; which are somewhat independent.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; POINT ONE: The community should have one prime definition of each weakness.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; PROPOSAL CLAUSE 1: the Common Weakness Enumeration (CWE) is the repository
&lt;br&gt;&amp;gt; of the prime definition.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; PROPOSAL CLAUSE 2: each weakness has exactly one prime definition.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; All other notes, summaries, descriptions, categories, components, examples,
&lt;br&gt;&amp;gt; definitions, etc. are subordinate to it. &amp;nbsp;For instance, if a summary seems
&lt;br&gt;&amp;gt; to contradict the prime definition, the prime definition is assumed to be
&lt;br&gt;&amp;gt; correct and the summary should be reinterpreted or changed.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; There may be times when the prime definition is just wrong and needs to be
&lt;br&gt;&amp;gt; corrected (see review process below), but short of that, the prime
&lt;br&gt;&amp;gt; definition is authoritative.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The prime definition is a complete description of the weakness. &amp;nbsp;All details
&lt;br&gt;&amp;gt; and nuances are in that element. &amp;nbsp;One need not read any other element to
&lt;br&gt;&amp;gt; understand what is or is not an instance, although other elements may be
&lt;br&gt;&amp;gt; helpful as examples or restatements.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; It is important for the community to choose a prime definition so work can
&lt;br&gt;&amp;gt; be focused on it. &amp;nbsp;Having prime definitions lets us decide that a CWE is
&lt;br&gt;&amp;gt; precisely and accurately described. &amp;nbsp;Other summaries, descriptions, views,
&lt;br&gt;&amp;gt; names, etc. can be brought into agreement as time, resources, and need
&lt;br&gt;&amp;gt; arise.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The prime description will likely be legalistic and dry, like most formal
&lt;br&gt;&amp;gt; descriptions. &amp;nbsp;One would read something else to initially get a sense of
&lt;br&gt;&amp;gt; what it is or to be reminded of it. &amp;nbsp;Summaries, relationships, and notes
&lt;br&gt;&amp;gt; serve such purposes. &amp;nbsp;Rather the prime definition answers questions when
&lt;br&gt;&amp;gt; differences of opinion or interpretation arise.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; A clearly defined vocabulary is needed. &amp;nbsp;Likely there will be stock phrases,
&lt;br&gt;&amp;gt; too. &amp;nbsp;This vocabulary and the definitions themselves should be based on the
&lt;br&gt;&amp;gt; work already done by many contributors to the CWE.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; One example is &amp;quot;Structured CWE Descriptions&amp;quot; (Christey, Harris, Heinbockel),
&lt;br&gt;&amp;gt; available at &lt;a href=&quot;http://cwe.mitre.org/documents/structured_descriptions/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/documents/structured_descriptions/&lt;/a&gt;&amp;nbsp;Another
&lt;br&gt;&amp;gt; is the work by KDM Analytics. &amp;nbsp;Starting from scratch would be wasteful.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; DISCUSSION POINT: if elements refer to completely orthogonal ideas, there
&lt;br&gt;&amp;gt; could be more than one prime element and still has no chance of (internal)
&lt;br&gt;&amp;gt; contradiction. &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; We don't think this occurs in CWE.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; DISCUSSION POINT: &amp;quot;prime definition&amp;quot; is only one possible name. &amp;nbsp;Other
&lt;br&gt;&amp;gt; possibilities are master, attested, decisive, prevailing, key, normative,
&lt;br&gt;&amp;gt; authoritative, official, sanctioned, or commonly accepted element or
&lt;br&gt;&amp;gt; definition.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; PROPOSAL CLAUSE 3: different kinds of weaknesses are best expressed with
&lt;br&gt;&amp;gt; different prime elements.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Most weaknesses are manifest in code, like hard-coded password
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; (CWE-259) or leftover debug code (CWE-489). &amp;nbsp;(Note that these two are not
&lt;br&gt;&amp;gt; 100% discernible from code alone.) &amp;nbsp;However some weaknesses are &amp;quot;black box&amp;quot;,
&lt;br&gt;&amp;gt; behavioral, functional, or external weaknesses, like denial of service
&lt;br&gt;&amp;gt; (CWE-730), configuration (CWE-16), or violation of secure design principles
&lt;br&gt;&amp;gt; (CWE-657).
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; PROPOSAL CLAUSE 4: each kind of weakness (see CLAUSE 3) has a prime element.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; For instance, the prime definition for all weaknesses manifest in code might
&lt;br&gt;&amp;gt; be White_Box_Definition.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; DISCUSSION POINT: what is the right element for each kind of weakness? &amp;nbsp;For
&lt;br&gt;&amp;gt; weaknesses manifest in code White_Box_Definition seem most appropriate.
&lt;br&gt;&amp;gt; Application behavior could be described in Black_Box_Definition.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; POINT TWO: How should the Community Decide a Definition is Right?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; An implementation may be checked for correctness against its specification.
&lt;br&gt;&amp;gt; But how can a specification be checked? &amp;nbsp;The short answer is that it can't
&lt;br&gt;&amp;gt; be fully checked. &amp;nbsp;However, we can take steps to validate a definition and
&lt;br&gt;&amp;gt; minimize mistakes.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; PROPOSAL CLAUSE 5: a CWE prime definition is acceptable when the following
&lt;br&gt;&amp;gt; are done:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; (A) the definition is published on the CWE discussion list, and
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;there is no (or only limited) disagreement that it is precise
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;(unambiguous) and accurate (correct).
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; (B) the definition agrees with SC22/WG23 Programming Language
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;Vulnerabilities if there is a correspondence.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; (C) the definition is carefully reviewed by two experts, who find it
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;to be precise and accurate.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; (D) the definition is written in two different &amp;quot;executable&amp;quot; forms
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;which are tested and deemed to find/generate/mitigate the
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;weakness (and nothing else).
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; We think these steps are the minimum needed to come up with good
&lt;br&gt;&amp;gt; definitions. &amp;nbsp;We need the general consensus of the community to make sure it
&lt;br&gt;&amp;gt; is broadly agreeable. &amp;nbsp;We want definitions which are consistent with other
&lt;br&gt;&amp;gt; standards rather than creating yet another
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; (inconsistent) &amp;quot;standard&amp;quot;. &amp;nbsp;We need experts to make sure the definition says
&lt;br&gt;&amp;gt; the right thing. &amp;nbsp;Finally, we need executable forms to make sure the
&lt;br&gt;&amp;gt; definition is precise.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Since CWEs are still being developed and the community is self-selected, We
&lt;br&gt;&amp;gt; don't think unanimous agreement is needed.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Nevertheless, any objections should be taken very seriously. &amp;nbsp;The desired
&lt;br&gt;&amp;gt; goal is unanimity.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The community of concern is large and there are other efforts. &amp;nbsp;As much as
&lt;br&gt;&amp;gt; possible the definitions should be in harmony. &amp;nbsp;One particular effort is
&lt;br&gt;&amp;gt; PDTR 24772 a draft of which is document N0138 at
&lt;br&gt;&amp;gt; &lt;a href=&quot;http://aitc.aitcnet.org/isai/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://aitc.aitcnet.org/isai/&lt;/a&gt;&amp;nbsp; Here are some correspondences between CWEs
&lt;br&gt;&amp;gt; and entries in PDTR 24772:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 6.15 Numeric Conversion Errors [FLC]
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; CWE 192
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 6.17 Boundary Beginning Violation [XYX]
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; CWE 123
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; CWE 129
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 6.18 Unchecked Array Indexing [XYZ]
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; CWE 129
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 6.19 Buffer Overflow in Stack [XYW]
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; CWE 121
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; We need reviews from at least two very different experts to minimize the
&lt;br&gt;&amp;gt; chance that the definition only reflects the view of one person or one
&lt;br&gt;&amp;gt; group. &amp;nbsp;Why not three or more? &amp;nbsp;The only objective reason we offer is that
&lt;br&gt;&amp;gt; economy suggests the fewest possible, and two is the least number greater
&lt;br&gt;&amp;gt; than one.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Who are the experts? &amp;nbsp;We don't have specific people in mind. &amp;nbsp;It seems it
&lt;br&gt;&amp;gt; should be people who have a lot of experience in the field. &amp;nbsp;It also seems
&lt;br&gt;&amp;gt; like it should be people who have thought about such definitions, so its
&lt;br&gt;&amp;gt; likely to be authors, security researchers, and tool makers. &amp;nbsp;Maybe we
&lt;br&gt;&amp;gt; should designate a pool of experts and any two of them are acceptable. &amp;nbsp;(And
&lt;br&gt;&amp;gt; no objections from &amp;quot;experts&amp;quot;?) &amp;nbsp;Expert availability will probably be a
&lt;br&gt;&amp;gt; factor.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The definition should be &amp;quot;formalized&amp;quot; in at least two completely different
&lt;br&gt;&amp;gt; ways to minimize the chance of unstated assumptions or severe bias to one
&lt;br&gt;&amp;gt; form of expression. &amp;nbsp;Some ways may be a language for generating test cases,
&lt;br&gt;&amp;gt; rules for a source code scanner to find the weakness, or a purely formal
&lt;br&gt;&amp;gt; description in a highly mathematical notation for proving program
&lt;br&gt;&amp;gt; properties.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; The executable forms and the expert reviews should be completely
&lt;br&gt;&amp;gt; independent. &amp;nbsp;That is, a expert writing an &amp;quot;executable&amp;quot; form only counts as
&lt;br&gt;&amp;gt; an expert review (C above) or an executable (D above), but not both. &amp;nbsp;Also
&lt;br&gt;&amp;gt; the two experts should not be from the same organization.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; It was suggested that one more step be added: that the definition be
&lt;br&gt;&amp;gt; validated to accurately describe some subset of reported instances of the
&lt;br&gt;&amp;gt; weakness, like the CVE. &amp;nbsp;The aim is to make sure the definition corresponds
&lt;br&gt;&amp;gt; to real examples.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; This proposal does not address how the process would be executed, in
&lt;br&gt;&amp;gt; particular where the resources would come from. &amp;nbsp;Nevertheless, We think it
&lt;br&gt;&amp;gt; is important to begin by getting community agreement on these two points.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; -paul-
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; 
&lt;br&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/A-Proposal-to-Precisely-Define-Weaknesses-tp23338070p25719591.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-23771381</id>
	<title>CWE 1.4 released</title>
	<published>2009-05-28T15:34:29Z</published>
	<updated>2009-05-28T15:34:29Z</updated>
	<author>
		<name>Steven M. Christey-2</name>
	</author>
	<content type="html">CWE 1.4 has been released. &amp;nbsp;Changes include: (1) creation of 15 new
&lt;br&gt;entries, most of which are newly-identified weaknesses; (2) deprecation of
&lt;br&gt;one entry that inadvertently combined multiple weaknesses; (3) usage of a
&lt;br&gt;more established vocabulary in the names and descriptions of 89 entries;
&lt;br&gt;(4) updated relationships for 35 entries; (5) improvements and additions
&lt;br&gt;to demonstrative examples for 75 entries; (6) updated CAPEC attack
&lt;br&gt;patterns for 31 entries; and changes to 198 total entries.
&lt;br&gt;&lt;br&gt;A detailed report is available that lists specific changes between Version
&lt;br&gt;1.3 and Version 1.4:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://cwe.mitre.org/data/reports/diff_reports/v1.3_v1.4.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/data/reports/diff_reports/v1.3_v1.4.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;We've also updated the glossary for terms used in CWE (but please note
&lt;br&gt;these are still in development):
&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://cwe.mitre.org/documents/glossary/index.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/documents/glossary/index.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;We've also created new PDF files that contain the entire contents of CWE.
&lt;br&gt;Note that these &amp;quot;Printable CWE&amp;quot; documents are hundreds of pages long, so
&lt;br&gt;you may want to think twice before printing them:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://cwe.mitre.org/data/index.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/data/index.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;The CWE Top 25 document has also been updated to reflect the latest
&lt;br&gt;changes in names, mitigations, and attack patterns. &amp;nbsp;Note that mitigations
&lt;br&gt;were not affected much:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://cwe.mitre.org/top25/index.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/top25/index.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;There were no schema changes in this version.
&lt;br&gt;&lt;br&gt;The new entries are:
&lt;br&gt;&lt;br&gt;761 &amp;nbsp;	Free of Pointer not at Start of Buffer
&lt;br&gt;762 	Mismatched Memory Management Routines
&lt;br&gt;763 	Release of Invalid Pointer or Reference
&lt;br&gt;764 	Multiple Locks of a Critical Resource
&lt;br&gt;765 	Multiple Unlocks of a Critical Resource
&lt;br&gt;766 	Critical Variable Declared Public
&lt;br&gt;767 	Access to Critical Private Variable via Public Method
&lt;br&gt;768 	Incorrect Short Circuit Evaluation
&lt;br&gt;769 	File Descriptor Exhaustion
&lt;br&gt;770 	Allocation of Resources Without Limits or Throttling
&lt;br&gt;771 	Missing Reference to Active Allocated Resource
&lt;br&gt;772 	Missing Release of Resource after Effective Lifetime
&lt;br&gt;773 	Missing Reference to Active File Descriptor or Handle
&lt;br&gt;774 	Allocation of File Descriptors or Handles Without Limits or Throttling
&lt;br&gt;775 	Missing Release of File Descriptor or Handle after Effective Lifetime
&lt;br&gt;&lt;br&gt;The main additions are for throttling/limiting (as exploited by &amp;quot;resource
&lt;br&gt;exhaustion&amp;quot; attacks) and improper free/delete operations (which previously
&lt;br&gt;could only be classified under the high-level CWE-404). &amp;nbsp;These new entries
&lt;br&gt;reflect some of the changes that we are making to certain &amp;quot;regions&amp;quot; of
&lt;br&gt;CWE. &amp;nbsp;When we released 1.3, we performed a similar regional reorganization
&lt;br&gt;for error handling, as reflected in CWE-754 and CWE-755. &amp;nbsp;We plan to post
&lt;br&gt;short summaries that further explain this kind of organization.
&lt;br&gt;&lt;br&gt;This is the largest number of new weakness-focused entries since the
&lt;br&gt;release of CWE 1.0 last year. &amp;nbsp;(Past releases have often included many new
&lt;br&gt;categories in order to support new views.) &amp;nbsp;In the foreseeable future, we
&lt;br&gt;expect to add more weakness-focused entries as we simultaneously improve
&lt;br&gt;the quality and completeness of existing entries. &amp;nbsp;If you have any
&lt;br&gt;suggestions for new weaknesses or major gaps in CWE, feel free to contact
&lt;br&gt;us at &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23771381&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;cwe@...&lt;/a&gt;. &amp;nbsp;We can use non-disclosure agreements (NDA) if
&lt;br&gt;desired.
&lt;br&gt;&lt;br&gt;Finally, Bob Martin and I would like to thank CWE team members Janis
&lt;br&gt;Kenderdine, Conor Harris, Scott Bennett, and Tom Stracener for all their
&lt;br&gt;contributions to this version.
&lt;br&gt;&lt;br&gt;Thank you for your support of CWE!
&lt;br&gt;&lt;br&gt;&lt;br&gt;Steve Christey
&lt;br&gt;CWE Technical Lead
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/CWE-1.4-released-tp23771381p23771381.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-23378920</id>
	<title>Re: A Proposal to Precisely Define Weaknesses</title>
	<published>2009-05-04T16:58:26Z</published>
	<updated>2009-05-04T16:58:26Z</updated>
	<author>
		<name>Steven M. Christey-2</name>
	</author>
	<content type="html">Paul and Michael, thank you for raising these important issues along
&lt;br&gt;with your extensive commentary :-)
&lt;br&gt;&lt;br&gt;All - feel free to send any thoughts to this list or privately to
&lt;br&gt;&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=23378920&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;cwe@...&lt;/a&gt;.
&lt;br&gt;&lt;br&gt;I will respond to a small piece of Paul's proposal to help get the
&lt;br&gt;ball rolling. &amp;nbsp;This post will concentrate on where the MITRE team is
&lt;br&gt;with respect to the maturity of existing CWE definitions. &amp;nbsp;Later posts
&lt;br&gt;will cover Paul's suggestions from a process standpoint.
&lt;br&gt;&lt;br&gt;&amp;gt; We propose, first, that one element of a CWE be designated the prime
&lt;br&gt;&amp;gt; definition.
&lt;br&gt;&lt;br&gt;Our approach for the past year has been to treat the CWE
&lt;br&gt;Description_Summary element as an emerging &amp;quot;prime&amp;quot; definition. &amp;nbsp;We use
&lt;br&gt;the Extended_Summary to provide some additional details, informal
&lt;br&gt;examples, etc.
&lt;br&gt;&lt;br&gt;For Description_Summary, our goal has been to create a focused
&lt;br&gt;description that is as clear as possible, avoids vague terms, and
&lt;br&gt;omits as much extraneous information as possible. &amp;nbsp;We do this by
&lt;br&gt;trying to identify the core error, and to avoid conflating these with
&lt;br&gt;closely-related errors (e.g. chains) and attacks. &amp;nbsp;Recently, we have
&lt;br&gt;been avoiding identifying the typical consequence of the weakness,
&lt;br&gt;which is informally covered in the Extended_Summary element (and often
&lt;br&gt;detailed in the Common_Consequences element).
&lt;br&gt;&lt;br&gt;We also try to write Description_Summary as a single sentence, which
&lt;br&gt;forces us to concentrate on the core issue as much as possible. &amp;nbsp;One
&lt;br&gt;emerging style that has worked for us is to describe the software's
&lt;br&gt;erroneous behavior with respect to any associated resources that are
&lt;br&gt;affected by that behavior. &amp;nbsp;The reason *why* the behavior is erroneous
&lt;br&gt;is moved to the Extended_Summary.
&lt;br&gt;&lt;br&gt;We also believe that there needs to be very close alignment between
&lt;br&gt;the Name attribute and the Description_Summary.
&lt;br&gt;&lt;br&gt;Many of our description summaries have been inherited from previous
&lt;br&gt;efforts in which the names or definitions were not so precise; we did
&lt;br&gt;not help our own cause in earlier years when we wrote our own
&lt;br&gt;descriptions, either.
&lt;br&gt;&lt;br&gt;Starting with Draft 9, we have made significant improvements to many
&lt;br&gt;descriptions. &amp;nbsp;Since Draft 9 was released, we have modified the
&lt;br&gt;descriptions for 311 different entries, and we've modified the names
&lt;br&gt;for 98 entries. &amp;nbsp;If you read the difference reports
&lt;br&gt;(&lt;a href=&quot;http://cwe.mitre.org/data/reports.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/data/reports.html&lt;/a&gt;) you can see that Name and
&lt;br&gt;Description are often one of the most frequently updated elements for
&lt;br&gt;each new version.
&lt;br&gt;&lt;br&gt;There has been some tension in how to capture the Description_Summary
&lt;br&gt;effectively and clearly, without being too verbose or too difficult to
&lt;br&gt;understand. &amp;nbsp;As Paul has mentioned, CWE has multiple audiences. &amp;nbsp;In
&lt;br&gt;some cases, we can write a terse Description_Summary using
&lt;br&gt;vulnerability theory terms, but the casual reader might not understand
&lt;br&gt;most of the words in that description.
&lt;br&gt;&lt;br&gt;There are also significant challenges when trying to be more precise,
&lt;br&gt;in that we often realize that we're not sure what the actual CWE entry
&lt;br&gt;is really about! &amp;nbsp;Consider CWE-377 (currently named &amp;quot;Insecure
&lt;br&gt;Temporary File&amp;quot;). &amp;nbsp;Its description is: &amp;quot;Creating and using insecure
&lt;br&gt;temporary files can leave application and system data vulnerable to
&lt;br&gt;attack.&amp;quot; &amp;nbsp;The immediate question that comes to mind is - what is
&lt;br&gt;&amp;quot;insecure&amp;quot; about the temporary file? &amp;nbsp;It has bad permissions? &amp;nbsp;It's
&lt;br&gt;created in a directory with bad permissions? &amp;nbsp;Its name contains
&lt;br&gt;sensitive information? &amp;nbsp;It's subject to symlink following? &amp;nbsp;It's not
&lt;br&gt;deleted after use? &amp;nbsp;It's accidentally packaged up with other files
&lt;br&gt;before it's sent somewhere else? &amp;nbsp;This vague name and description are
&lt;br&gt;actually hiding several lower-level weaknesses - yet for certain
&lt;br&gt;audiences, these distinctions are not important, and to adopt a more
&lt;br&gt;precise definition would not help certain audiences.
&lt;br&gt;&lt;br&gt;The labor to come up with an acceptable Description_Summary for all
&lt;br&gt;CWE entries, estimating 30 minutes each, would be approximately 8
&lt;br&gt;staff weeks for weakness-focused entries. &amp;nbsp;Some of this labor has been
&lt;br&gt;spread over time, but there is still room for improvement. &amp;nbsp;And note
&lt;br&gt;that in many cases, it will take more than 30 minutes to get clarity -
&lt;br&gt;for example, the buffer overflow examples given by Paul.
&lt;br&gt;&lt;br&gt;To take Paul's example of the current CWE-121 description:
&lt;br&gt;&lt;br&gt;&amp;nbsp; A stack-based buffer overflow condition is a condition where the
&lt;br&gt;&amp;nbsp; buffer being overwritten is allocated on the stack (i.e., is a local
&lt;br&gt;&amp;nbsp; variable or, rarely, a parameter to a function).
&lt;br&gt;&lt;br&gt;Under current MITRE practices, ideally we would change this
&lt;br&gt;Description_Summary, perhaps in the following fashion (note: this is
&lt;br&gt;an informal example only):
&lt;br&gt;&lt;br&gt;&amp;nbsp; - the phrase regarding local variables and function parameters would
&lt;br&gt;&amp;nbsp; &amp;nbsp; be relocated elsewhere in CWE - probably to the
&lt;br&gt;&amp;nbsp; &amp;nbsp; Extended_Description
&lt;br&gt;&lt;br&gt;&amp;nbsp; - the &amp;quot;overwrite&amp;quot; phrase would be avoided or otherwise clarified
&lt;br&gt;&lt;br&gt;&amp;nbsp; - a next-generation description might be:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; The software allocates a buffer using memory that is stored on
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; the stack, but it writes to an address that is outside of the
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; implied boundaries of that buffer.
&lt;br&gt;&lt;br&gt;While such a description may still have some subtle problems, it is
&lt;br&gt;closer to our current guidelines for CWE descriptions: it focuses
&lt;br&gt;largely on behavior (&amp;quot;allocate&amp;quot;/&amp;quot;write&amp;quot;) and resources
&lt;br&gt;(&amp;quot;buffer&amp;quot;/&amp;quot;stack&amp;quot;), while avoiding specific examples or variants
&lt;br&gt;(&amp;quot;local variable&amp;quot;), while also attempting to more clearly identify
&lt;br&gt;concepts such as &amp;quot;overflow&amp;quot; and &amp;quot;overwrite&amp;quot; whose terms have many
&lt;br&gt;audience-specific interpretations.
&lt;br&gt;&lt;br&gt;Note that CWE-121 has another larger problem that we frequently
&lt;br&gt;wrestle with. &amp;nbsp;This CWE's abstraction has a particular perspective
&lt;br&gt;focused on the type of resource (i.e. &amp;quot;buffer on stack&amp;quot;) that leads to
&lt;br&gt;conceptual overlap with other resource-independent CWEs (like CWE-125
&lt;br&gt;&amp;quot;out-of-bounds read&amp;quot;). &amp;nbsp;This part of the tree, like many other parts
&lt;br&gt;of CWE, still needs additional research that more clearly identifies
&lt;br&gt;the various perspectives and &amp;quot;layers&amp;quot; that come from various CWE
&lt;br&gt;audiences. &amp;nbsp;The CWE content team is getting better at identifying when
&lt;br&gt;perspective/layering problems are preventing a clear identification of
&lt;br&gt;a weakness or set of related weaknesses, but fixing these problems is
&lt;br&gt;sometimes difficult.
&lt;br&gt;&lt;br&gt;As Paul has noted, there are many other fields that are related to
&lt;br&gt;other descriptive aspects of a weakness, such as relationship notes,
&lt;br&gt;background details, terminology notes, and white box definitions. &amp;nbsp;All
&lt;br&gt;of these have specific roles. &amp;nbsp;They have not been the highest priority
&lt;br&gt;to us, but we clean them up or fill them out when we run across them
&lt;br&gt;(especially when they are in Other_Notes, which historically was a
&lt;br&gt;general-purpose field before we extended the schema for Draft 9 and
&lt;br&gt;version 1.0).
&lt;br&gt;&lt;br&gt;&amp;gt; If there is inconsistency between the prime definition and a
&lt;br&gt;&amp;gt; description, example, or definition in another element, the prime
&lt;br&gt;&amp;gt; definition is considered to be correct.
&lt;br&gt;&lt;br&gt;This is roughly the approach that we have taken. &amp;nbsp;However, in some
&lt;br&gt;cases, we may believe that the prime definition is excessively vague
&lt;br&gt;or inconsistent with the rest of the CWE entry. &amp;nbsp;We will sometimes
&lt;br&gt;deprecate an entry outright if, as a whole, the entry can be
&lt;br&gt;interpreted to cover multiple distinct weaknesses (assuming the entry
&lt;br&gt;is not a category or higher-level asbtraction). &amp;nbsp;As a result of the
&lt;br&gt;deprecation, we may split it into newer entries that are more clearly
&lt;br&gt;written.
&lt;br&gt;&lt;br&gt;Also, when there is a mismatch between the Name and the Description,
&lt;br&gt;we will strongly consider deprecating the entry, since it is clear to
&lt;br&gt;me that many people map to CWE identifiers based only on the name
&lt;br&gt;without reading the description.
&lt;br&gt;&lt;br&gt;A current example of this problem is CWE-217, which has a very general
&lt;br&gt;name of &amp;quot;Failure to Protect Stored Data from Modification,&amp;quot; which was
&lt;br&gt;inherited from CLASP. &amp;nbsp;But the rest of the original CLASP item - and
&lt;br&gt;much of CWE-217 itself - is focused on a very low-level Java problem
&lt;br&gt;(actually, if you look at the demonstrative examples, it's about a
&lt;br&gt;couple distinct problems). &amp;nbsp;CWE-217 will be deprecated in the next
&lt;br&gt;version, with a couple replacements that are much more clear.
&lt;br&gt;&lt;br&gt;Another example of definitional confusion/vagueness is CWE-391. &amp;nbsp;As
&lt;br&gt;its maintenance notes currently say: &amp;quot;This entry needs significant
&lt;br&gt;modification. It currently combines information from three different
&lt;br&gt;taxonomies, but each taxonomy is talking about a slightly different
&lt;br&gt;issue.&amp;quot; &amp;nbsp;However, for us to fully deal with CWE-391, we have been
&lt;br&gt;forced into defining a general model for error handling, which is
&lt;br&gt;incomplete because of perspective/layering problems (see CWE-754 and
&lt;br&gt;CWE-755 for a start).
&lt;br&gt;&lt;br&gt;&amp;gt;A clearly defined vocabulary is needed. &amp;nbsp;Likely there will be stock
&lt;br&gt;&amp;gt;phrases, too. &amp;nbsp;This vocabulary and the definitions themselves should
&lt;br&gt;&amp;gt;be based on the work already done by many contributors to the CWE.
&lt;br&gt;&lt;br&gt;We expect to be updating the vulnerability theory document
&lt;br&gt;(&lt;a href=&quot;http://cwe.mitre.org/documents/vulnerability_theory/intro.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/documents/vulnerability_theory/intro.html&lt;/a&gt;) in
&lt;br&gt;the coming months, which handles some of the gaps.
&lt;br&gt;&lt;br&gt;In addition, we have begun maintaining a glossary of terms here:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://cwe.mitre.org/documents/glossary/index.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/documents/glossary/index.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;While these are not perfect, and they are often still evolving, these
&lt;br&gt;reflect some of the ongoing vocabulary that we are trying to develop.
&lt;br&gt;&lt;br&gt;As Paul has noted, there is other work being done by other
&lt;br&gt;contributors to CWE that can be leveraged or consulted. &amp;nbsp;Since CWE
&lt;br&gt;operates within multiple audiences, this will sometimes be a difficult
&lt;br&gt;task. &amp;nbsp;For example, the current ISO/IEC Project 22.24772 document
&lt;br&gt;appears to use the term &amp;quot;encapsulation&amp;quot; in a different way than
&lt;br&gt;McGraw/Chess/Tsipenyuk did, which was also different than how others
&lt;br&gt;may define it. &amp;nbsp;(Look for my &amp;quot;what is encapsulation?&amp;quot; post coming
&lt;br&gt;sometime in 2009). &amp;nbsp;When terms like this become overloaded, the
&lt;br&gt;solution for one audience will not necessarily work for another
&lt;br&gt;audience.
&lt;br&gt;&lt;br&gt;The main point of this post was to provide some context: what our
&lt;br&gt;current approach to CWE descriptions has been, and some of the
&lt;br&gt;challenges that will be faced if the community decides that it is
&lt;br&gt;important to adopt a &amp;quot;prime definition.&amp;quot;
&lt;br&gt;&lt;br&gt;Any and all feedback is welcome. &amp;nbsp;Thanks again to Paul and Mike for
&lt;br&gt;raising this question. &amp;nbsp;I look forward to everyone's thoughts.
&lt;br&gt;&lt;br&gt;- Steve
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/A-Proposal-to-Precisely-Define-Weaknesses-tp23338070p23378920.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-23338070</id>
	<title>A Proposal to Precisely Define Weaknesses</title>
	<published>2009-05-01T11:51:02Z</published>
	<updated>2009-05-01T11:51:02Z</updated>
	<author>
		<name>Michael Koo</name>
	</author>
	<content type="html">&lt;html xmlns:v=&quot;urn:schemas-microsoft-com:vml&quot; xmlns:o=&quot;urn:schemas-microsoft-com:office:office&quot; xmlns:w=&quot;urn:schemas-microsoft-com:office:word&quot; xmlns:m=&quot;http://schemas.microsoft.com/office/2004/12/omml&quot; xmlns=&quot;http://www.w3.org/TR/REC-html40&quot;&gt;

&lt;head&gt;
&lt;meta http-equiv=Content-Type content=&quot;text/html; charset=us-ascii&quot;&gt;
&lt;meta name=Generator content=&quot;Microsoft Word 12 (filtered medium)&quot;&gt;

&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:shapedefaults v:ext=&quot;edit&quot; spidmax=&quot;1026&quot; /&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
 &lt;o:shapelayout v:ext=&quot;edit&quot;&gt;
  &lt;o:idmap v:ext=&quot;edit&quot; data=&quot;1&quot; /&gt;
 &lt;/o:shapelayout&gt;&lt;/xml&gt;&lt;![endif]--&gt;
&lt;/head&gt;

&lt;body lang=EN-US link=blue vlink=purple&gt;

&lt;div class=Section1&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
A Proposal to Precisely Define Weaknesses&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;
by Paul E. Black&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
1 May 2009&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;Although much work has been done, which has greatly
improved the definitions of source code weaknesses, there are still
inconsistencies, ambiguities, and errors.&amp;nbsp; Better definitions are needed
as one element to speed the work of detecting and preventing weaknesses.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;We propose, first, that one element of a CWE be
designated the prime definition.&amp;nbsp; If there is inconsistency between the
prime definition and a description, example, or definition in another element,
the prime definition is considered to be correct.&amp;nbsp; If there is an error,
the prime definition is the first to be fixed.&amp;nbsp; Other descriptions and
definitions can later be brought into alignment.&amp;nbsp; Second we propose a
specific set of reviews and other steps as necessary and sufficient to consider
a prime definition to be thoroughly reviewed.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;This document has three sections: motivation for
precisely and accurately defining weaknesses, comments on the current state of
definitions, and the proposal itself.&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;If you disagree (or agree!)&amp;nbsp; with the proposal or
have suggestions, please respond.&amp;nbsp; Feel free to share this.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;SECTION 1. WHY CAREFULLY DEFINE WEAKNESSES?&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;An important prelude to preventing, mitigating, or
detecting weaknesses in software and systems is to have clear, unambiguous,
widely-accepted definitions of such weaknesses.&amp;nbsp; Consider the following
questions that might occur to someone learning about software weaknesses.&amp;nbsp;
What precisely is a buffer overflow?&amp;nbsp; Is it the same as a heap overflow or
an unbounded transfer?&amp;nbsp; Is one just a refinement of another?&amp;nbsp; If an
integer overflow leads to memory violation, which weakness is it?&amp;nbsp; Is it
both or is there some other relation between them?&amp;nbsp; Precise definitions
could answer these questions and others.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;Many people have done excellent work toward clearly defining
types of weakness.&amp;nbsp; (Hereafter we usually use the term
&amp;quot;weakness&amp;quot; to mean a weakness class or type, not a particular
instance of a weakness type.) Some papers and work are &amp;quot;Seven Pernicious
Kingdoms: A Taxonomy of Software Security Errors&amp;quot; (Tsipenyuk, Chess, and
McGraw), &amp;quot;The CLASP Application Security Process&amp;quot;, (Viega), &amp;quot;The
Preliminary List of Vulnerability Examples for Researchers (PLOVER)&amp;quot;
(Christey), &amp;quot;The Ten Most Critical Web Application Security
Vulnerabilities&amp;quot; (OWASP), &amp;quot;19 Deadly Sins of Software Security
Programming Flaws and How to Fix Them&amp;quot; (Howard, LeBlanc, and Viega),
&amp;quot;A Taxonomy of Computer Program Security Flaws, with Examples&amp;quot;
(Landwehr, Bull, McDermott, and Choi), (see &lt;a href=&quot;http://cwe.mitre.org/about/sources.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/about/sources.html&lt;/a&gt;
for more) &amp;quot;Structured CWE Descriptions&amp;quot; (Christey, Harris,
Heinbockel) available at &lt;a href=&quot;http://cwe.mitre.org/documents/structured_descriptions/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/documents/structured_descriptions/&lt;/a&gt;,
ISO/IEC Project 22.24772: Programming Language Vulnerabilities available at &lt;a href=&quot;http://aitc.aitcnet.org/isai/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://aitc.aitcnet.org/isai/&lt;/a&gt; and many
others.&amp;nbsp; KDM Analytics has produced formal definitions of some 30
weaknesses.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;Since 2006 MITRE has led the Common Weakness Enumeration
(CWE) effort to collect, reconcile, organize, and define weaknesses.&amp;nbsp; Not
only has this work improved and unified definitions, it has also led to discovery
of fundamental clarifying concepts, such as chains and composites of weaknesses
(&amp;quot;Chains and Composites&amp;quot;, Steve Christey, &lt;a href=&quot;http://cwe.mitre.org/data/reports/chains_and_composites.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/data/reports/chains_and_composites.html&lt;/a&gt;).&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;Precise definitions can lead to further better
understanding of weaknesses, their causes, cures, and preventions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;There are still inconsistencies and ambiguities within
CWEs.&amp;nbsp; Consider that a CWE may have many descriptive elements.&amp;nbsp; Some
in CWE Version 1.0 are&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Black_Box_Definition (possibly more
than one)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; White_Box_Definition (possibly more
than one)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Description&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Description_Summary&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Extended_Description&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Compound_Element&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Name (Weakness)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Demonstrative_Example&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Observed_Example&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Theoretical_Note&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;Could inconsistencies be eliminated by deleting all but
one such element in each CWE?&amp;nbsp; That is not practical.&amp;nbsp; One definition
cannot serve all people in all instances.&amp;nbsp; Training and reference needs
succinct prose definitions and examples.&amp;nbsp; Automated tools need a
definition written in machine-readable languages.&amp;nbsp; When discussion gets
specific, people need the nuances and details of what constitutes that
weakness.&amp;nbsp; Proving that a weakness is absent or is prevented by some
approach needs a rigorous, mathematically formal definition.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;Improving the state-of-practice of software development
to reduce instances of weaknesses and the vulnerabilities they cause takes work
from language designers, compiler writers, educators, assurance tool
developers, auditors and developers of guidance, people who specify and
contract software development, researchers, vulnerability trackers, software
engineers, and many more.&amp;nbsp; If people in these roles disagree about what
constitutes a particular weakness, or even whether it is a weakness at all,
communication is difficult at best.&amp;nbsp; At worst they may work at cross
purposes.&amp;nbsp; Broadly accepted definitions should allow different groups to
work together more effectively.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;Unambiguous, complete definitions allows those in the
field to understand precisely what different software assurance tools,
services, technologies, or methods can detect, mitigate, or prevent.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;Formal definitions may allow tools to automatically check
for weaknesses, create wrappers to filter out attacks to exploit them, or even
rewrite the code to eliminate them.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;SECTION 2. DOES THE CURRENT METHOD NEED IMPROVEMENT?&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;Currently there isn't a documented process to validate
weakness definitions.&amp;nbsp; Descriptions, definitions, and examples in the CWE
have been reviewed and improved by different entities and the quality and
consistency have improved dramatically over the years.&amp;nbsp; Yet, even casual
examination shows that most, if not all, CWEs need further work.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;Given the number of CWEs and their range of complexity,
frequency, and severity, it is probably not worthwhile to precisely define
every single weakness.&amp;nbsp; But for those which need precise definitions, it
is not clear exactly what should be.&amp;nbsp; As with code, an essentially
unlimited amount of checking and review could be done for each weakness.&amp;nbsp;
The community should agree on the types and amounts of validation that are
necessary and sufficient.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;To be specific, currently every CWE has a summary
description.&amp;nbsp; A CWE may also have alternate term descriptions,
demonstrative examples, or a white box definition.&amp;nbsp; Thousands of these
descriptions have been reviewed and improved greatly.&amp;nbsp; But which ones are
merely informative and which ones are intended to be the carefully reviewed,
precise and accurate?&amp;nbsp; Consider CWE-121, Stack-based Buffer
Overflow.&amp;nbsp; (Text taken from CWE version 1.3).&amp;nbsp; Here is the
description summary:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp; &amp;quot;A stack-based buffer overflow
condition is a condition where the&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp; buffer being overwritten is allocated on the
stack (i.e., is a&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp; local variable or, rarely, a parameter to a
function).&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;Here is the White Box Definition:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;A buffer overflow where the
buffer from the Buffer Write&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Operation is statically
allocated&amp;quot;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;Is the following an instance of CWE-121?&amp;nbsp; Note that
alloca() gets memory from the stack, not the heap.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;#define BUFSIZE 256&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;char *buf;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;int main(int argc, char **argv) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; buf = (char *)alloca(BUFSIZE);&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; strcpy(buf, argv[1]);&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;The description summary uses &amp;quot;i.e.&amp;quot; meaning
&amp;quot;that is&amp;quot; or a restatement.&amp;nbsp; A strict reading excludes this
example because the buffer is only referenced by a global variable.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;The white box definition says the buffer is statically
allocated, that is, allocated automatically by the compiler or language support
routine, not by functions invoked at run-time, such as alloca().&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;Again a strict reading excludes this example because the
buffer is dynamically allocated.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;Yet most people would agree that the example code has an
instance of Stack-based Buffer Overflow and that the descriptions have minor
inaccuracies.&amp;nbsp; Even ignoring this particular example, we see there is
inconsistency between the descriptions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;The following code snippets highlight not merely quibbles
about wording, but raise the fundamental question of what CWE-121 means.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;typedef struct&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp; char buf1[10];&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp; char buf2[10];&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;} my_struct;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp; my_struct s;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp; s.buf1[17] = 'A';&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;(from SRD test case 188)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;The C99 standard [1] Sect. 6.7.2.1 Structure and union specifiers,
page 102, para 5 says fields are &amp;quot;allocated in order&amp;quot;.&amp;nbsp; So buf2
makes the structure at least big enough that the access doesn't go outside the
structure.&amp;nbsp; Any particular compiler probably allocates the structure
consistently, so the above code likely have a specific behavior in each
environment, although it might differ from environment to environment.&amp;nbsp; Is
this an instance as CWE-121?&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;It is common in network programming to have structures
and code like the following:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; struct {&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int header;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; char payload[ 0 ];&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; } *p;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p = malloc(sizeof *p + 2);&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p-&amp;gt;payload[0] = 'A';&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; p-&amp;gt;payload[1] = '\0';&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;(adapted from Aurelien Delaitre)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;Nothing in the C standard justifies this code, but most
compilers will treat it reasonably.&amp;nbsp; Since the code does not strictly
follow the C standard, is its behavior undefined so that this should not be
considered an instance of CWE-121?&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;Compilers usually allocate structures in multiples of
four bytes, so the following code should be fine.&amp;nbsp; That is, there is memory
for 12 characters in the structure.&amp;nbsp; Should this example be considered to
write outside of the buffer or not?&amp;nbsp; On what grounds?&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;typedef struct&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp; int int_field;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp; char buf[10];&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;} my_struct;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp; my_struct s;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp; s.buf[10] = 'A';&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;(from SRD test case 201)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;We see that precise definitions are important to make
consistent judgments.&amp;nbsp; We also see that it is very difficult to write a
definition which is precise and accurate.&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;Given all the work which the CWE embodies, how can the
effect of inconsistencies be minimized?&amp;nbsp; Where should work be concentrated
to achieve good definitions?&amp;nbsp; All CWEs have a status of draft or
incomplete.&amp;nbsp; How much and what kind of work should be done before a
definition is considered to be &amp;quot;thoroughly reviewed&amp;quot;, that is, good
enough for the community to move on to another one?&amp;nbsp; What language, either
formal (mathematically precise) or prose, should be used to state definitions
clearly and so the style is similar across CWEs?&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;What should be done to minimize assumptions or artifacts
arising from the use of a particular formal language or style?&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;SECTION 3. THE PROPOSAL&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;This proposal is part of a vision to improve software
assurance by having widely-used clear definitions of software weakness classes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;The goals of this proposal are to&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp; * increase precision (minimize ambiguity and
inconsistency) in CWE&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; entries and&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp; * increase accuracy (minimize mistakes indicated
by broad agreement).&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;The proposal has two points: (1) the need for an prime
definition and&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;(2) a review process.&amp;nbsp; Each point has several parts
or supporting clauses which are somewhat independent.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;POINT ONE: The community should have one prime definition
of each weakness.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;PROPOSAL CLAUSE 1: the Common Weakness Enumeration (CWE)
is the repository of the prime definition.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;PROPOSAL CLAUSE 2: each weakness has exactly one prime
definition.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;All other notes, summaries, descriptions, categories,
components, examples, definitions, etc. are subordinate to it.&amp;nbsp; For
instance, if a summary seems to contradict the prime definition, the prime
definition is assumed to be correct and the summary should be reinterpreted or
changed.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp; There may be times when the prime definition is
just wrong and needs to be corrected (see review process below), but short of
that, the prime definition is authoritative.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;The prime definition is a complete description of the
weakness.&amp;nbsp; All details and nuances are in that element.&amp;nbsp; One need not
read any other element to understand what is or is not an instance, although
other elements may be helpful as examples or restatements.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;It is important for the community to choose a prime
definition so work can be focused on it.&amp;nbsp; Having prime definitions lets us
decide that a CWE is precisely and accurately described.&amp;nbsp; Other summaries,
descriptions, views, names, etc. can be brought into agreement as time,
resources, and need arise.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;The prime description will likely be legalistic and dry,
like most formal descriptions.&amp;nbsp; One would read something else to initially
get a sense of what it is or to be reminded of it.&amp;nbsp; Summaries,
relationships, and notes serve such purposes.&amp;nbsp; Rather the prime definition
answers questions when differences of opinion or interpretation arise.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;A clearly defined vocabulary is needed.&amp;nbsp; Likely
there will be stock phrases, too.&amp;nbsp; This vocabulary and the definitions
themselves should be based on the work already done by many contributors to the
CWE.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;One example is &amp;quot;Structured CWE Descriptions&amp;quot;
(Christey, Harris, Heinbockel), available at &lt;a href=&quot;http://cwe.mitre.org/documents/structured_descriptions/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/documents/structured_descriptions/&lt;/a&gt;
Another is the work by KDM Analytics.&amp;nbsp; Starting from scratch would be
wasteful.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;DISCUSSION POINT: if elements refer to completely
orthogonal ideas, there could be more than one prime element and still has no
chance of (internal) contradiction.&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;We don't think this occurs in CWE.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;DISCUSSION POINT: &amp;quot;prime definition&amp;quot; is only
one possible name.&amp;nbsp; Other possibilities are master, attested, decisive,
prevailing, key, normative, authoritative, official, sanctioned, or commonly
accepted element or definition.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;PROPOSAL CLAUSE 3: different kinds of weaknesses are best
expressed with different prime elements.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;Most weaknesses are manifest in code, like hard-coded
password&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;(CWE-259) or leftover debug code (CWE-489).&amp;nbsp; (Note
that these two are not 100% discernible from code alone.)&amp;nbsp; However some
weaknesses are &amp;quot;black box&amp;quot;, behavioral, functional, or external
weaknesses, like denial of service (CWE-730), configuration (CWE-16), or
violation of secure design principles (CWE-657).&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;PROPOSAL CLAUSE 4: each kind of weakness (see CLAUSE 3)
has a prime element.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;For instance, the prime definition for all weaknesses
manifest in code might be White_Box_Definition.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;DISCUSSION POINT: what is the right element for each kind
of weakness?&amp;nbsp; For weaknesses manifest in code White_Box_Definition seem
most appropriate.&amp;nbsp; Application behavior could be described in
Black_Box_Definition.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;POINT TWO: How should the Community Decide a Definition
is Right?&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;An implementation may be checked for correctness against
its specification.&amp;nbsp; But how can a specification be checked?&amp;nbsp; The
short answer is that it can't be fully checked.&amp;nbsp; However, we can take
steps to validate a definition and minimize mistakes.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;PROPOSAL CLAUSE 5: a CWE prime definition is acceptable
when the following are done:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp; (A) the definition is published on the CWE
discussion list, and&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; there is no (or only limited)
disagreement that it is precise&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (unambiguous) and accurate
(correct).&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp; (B) the definition agrees with SC22/WG23
Programming Language&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Vulnerabilities if there is a
correspondence.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp; (C) the definition is carefully reviewed by two
experts, who find it&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to be precise and accurate.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp; (D) the definition is written in two different
&amp;quot;executable&amp;quot; forms&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; which are tested and deemed to
find/generate/mitigate the&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; weakness (and nothing else).&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;We think these steps are the minimum needed to come up
with good definitions.&amp;nbsp; We need the general consensus of the community to
make sure it is broadly agreeable.&amp;nbsp; We want definitions which are
consistent with other standards rather than creating yet another&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;(inconsistent) &amp;quot;standard&amp;quot;.&amp;nbsp; We need
experts to make sure the definition says the right thing.&amp;nbsp; Finally, we
need executable forms to make sure the definition is precise.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;Since CWEs are still being developed and the community is
self-selected, We don't think unanimous agreement is needed.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;Nevertheless, any objections should be taken very
seriously.&amp;nbsp; The desired goal is unanimity.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;The community of concern is large and there are other
efforts.&amp;nbsp; As much as possible the definitions should be in harmony.&amp;nbsp;
One particular effort is PDTR 24772 a draft of which is document N0138 at &lt;a href=&quot;http://aitc.aitcnet.org/isai/&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://aitc.aitcnet.org/isai/&lt;/a&gt;&amp;nbsp;
Here are some correspondences between CWEs and entries in PDTR 24772:&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;6.15 Numeric Conversion Errors [FLC]&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CWE 192&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;6.17 Boundary Beginning Violation [XYX]&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CWE 123&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CWE 129&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;6.18 Unchecked Array Indexing [XYZ]&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CWE 129&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;6.19 Buffer Overflow in Stack [XYW]&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CWE 121&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;We need reviews from at least two very different experts
to minimize the chance that the definition only reflects the view of one person
or one group.&amp;nbsp; Why not three or more?&amp;nbsp; The only objective reason we
offer is that economy suggests the fewest possible, and two is the least number
greater than one.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;Who are the experts?&amp;nbsp; We don't have specific people
in mind.&amp;nbsp; It seems it should be people who have a lot of experience in the
field.&amp;nbsp; It also seems like it should be people who have thought about such
definitions, so its likely to be authors, security researchers, and tool
makers.&amp;nbsp; Maybe we should designate a pool of experts and any two of them
are acceptable.&amp;nbsp; (And no objections from &amp;quot;experts&amp;quot;?)&amp;nbsp;
Expert availability will probably be a factor.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;The definition should be &amp;quot;formalized&amp;quot; in at
least two completely different ways to minimize the chance of unstated
assumptions or severe bias to one form of expression.&amp;nbsp; Some ways may be a
language for generating test cases, rules for a source code scanner to find the
weakness, or a purely formal description in a highly mathematical notation for
proving program properties.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;The executable forms and the expert reviews should be
completely independent.&amp;nbsp; That is, a expert writing an
&amp;quot;executable&amp;quot; form only counts as an expert review (C above) or an
executable (D above), but not both.&amp;nbsp; Also the two experts should not be
from the same organization.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;It was suggested that one more step be added: that the
definition be validated to accurately describe some subset of reported
instances of the weakness, like the CVE.&amp;nbsp; The aim is to make sure the
definition corresponds to real examples.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;This proposal does not address how the process would be
executed, in particular where the resources would come from.&amp;nbsp;
Nevertheless, We think it is important to begin by getting community agreement
on these two points.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoPlainText&gt;-paul-&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;

&lt;p class=MsoNormal&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;/body&gt;

&lt;/html&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/A-Proposal-to-Precisely-Define-Weaknesses-tp23338070p23338070.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-19976807</id>
	<title>Re: More frequent CWE releases and CWE versioning</title>
	<published>2008-10-14T09:10:01Z</published>
	<updated>2008-10-14T09:10:01Z</updated>
	<author>
		<name>Steven M. Christey-2</name>
	</author>
	<content type="html">On Tue, 14 Oct 2008, Pascal Meunier wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; I'm sorry, that was sloppy thinking on my part. &amp;nbsp;I was grouping schemas
&lt;br&gt;&amp;gt; and views together, whereas when you say &amp;quot;schema&amp;quot; you clearly have only
&lt;br&gt;&amp;gt; something like the XML schema definition in mind. &amp;nbsp;I thought it would be
&lt;br&gt;&amp;gt; interesting to separate changes in relationships defined in views from
&lt;br&gt;&amp;gt; changes in the CWE entries themselves, and to keep track of each
&lt;br&gt;&amp;gt; category separately.
&lt;br&gt;&lt;br&gt;An interesting point - if you only care mostly about one view, then you'd
&lt;br&gt;want to know what's changed within that view. &amp;nbsp;I've been considering
&lt;br&gt;view-specific diff reports that highlight which relationships were added
&lt;br&gt;or removed; these could be part of the larger diff. &amp;nbsp;Within the XML
&lt;br&gt;itself, the individual view node could potentially record its own
&lt;br&gt;&amp;quot;sub-version&amp;quot; that changes whenever the view changes (alternately, the
&lt;br&gt;modification record in the content history could be updated).
&lt;br&gt;&lt;br&gt;Would people find it useful to be able to track when a view's
&lt;br&gt;relationships have changed?
&lt;br&gt;&lt;br&gt;- Steve
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/More-frequent-CWE-releases-and-CWE-versioning-tp19923201p19976807.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-19976669</id>
	<title>Re: More frequent CWE releases and CWE versioning</title>
	<published>2008-10-14T09:03:00Z</published>
	<updated>2008-10-14T09:03:00Z</updated>
	<author>
		<name>Pascal Meunier-3</name>
	</author>
	<content type="html">Steven M. Christey wrote, On 10/13/2008 09:28 PM:
&lt;br&gt;&lt;br&gt;(...)
&lt;br&gt;&lt;br&gt;&amp;gt; When you talk about views changing, do you mean the XML downloads of
&lt;br&gt;&amp;gt; specific views? &amp;nbsp;Or when we change relationships within views? &amp;nbsp;I view the
&lt;br&gt;&amp;gt; latter as a content change. &amp;nbsp;The former is basically just part of our web
&lt;br&gt;&amp;gt; downloads that are automatically generated from the core XML.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&lt;br&gt;I'm sorry, that was sloppy thinking on my part. &amp;nbsp;I was grouping schemas
&lt;br&gt;and views together, whereas when you say &amp;quot;schema&amp;quot; you clearly have only
&lt;br&gt;something like the XML schema definition in mind. &amp;nbsp;I thought it would be
&lt;br&gt;interesting to separate changes in relationships defined in views from
&lt;br&gt;changes in the CWE entries themselves, and to keep track of each
&lt;br&gt;category separately. &amp;nbsp; The noNamespaceSchemaLocation attribute doesn't
&lt;br&gt;allow for that.
&lt;br&gt;&lt;br&gt;Regards,
&lt;br&gt;Pascal
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/More-frequent-CWE-releases-and-CWE-versioning-tp19923201p19976669.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-19965686</id>
	<title>Re: More frequent CWE releases and CWE versioning</title>
	<published>2008-10-13T18:28:48Z</published>
	<updated>2008-10-13T18:28:48Z</updated>
	<author>
		<name>Steven M. Christey-2</name>
	</author>
	<content type="html">On Sun, 12 Oct 2008, Pascal Meunier wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; IMO ideally you need two version numbers. &amp;nbsp;You need a schema/view
&lt;br&gt;&amp;gt; version and a content version.
&lt;br&gt;&lt;br&gt;The raw XML already references the schema in the noNamespaceSchemaLocation
&lt;br&gt;attribute, and we hope that the schema won't change so often. &amp;nbsp;So, I've
&lt;br&gt;been viewing this as sufficient information. &amp;nbsp;However, we expect to force
&lt;br&gt;a major content version change if the schema also changes significantly.
&lt;br&gt;&lt;br&gt;That said, we expect to be making small modifications to the schema in the
&lt;br&gt;next month or so - basically, we want to add a couple new values to the
&lt;br&gt;Introductory_Phase element. &amp;nbsp;We expect we'll have similar small schema
&lt;br&gt;changes as we add new programming languages to the Language element under
&lt;br&gt;Applicable_Platforms.
&lt;br&gt;&lt;br&gt;&amp;gt; &amp;nbsp;In option 1, a change in a view can be
&lt;br&gt;&amp;gt; confused with a major change in individual CWE entries.
&lt;br&gt;&lt;br&gt;We will need to be more precise about what should constitute a &amp;quot;major&amp;quot;
&lt;br&gt;change versus a &amp;quot;minor&amp;quot; change. &amp;nbsp;View maintenance is largely a matter of
&lt;br&gt;modifying relationships between CWE entries (and/or editing the view node
&lt;br&gt;itself).
&lt;br&gt;&lt;br&gt;&amp;gt; This is how it could work in practice:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; -The XML download could be named cwec_s1.0_c1.0.xml
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;The schema is currently at 4.0, so using your scheme, the download would
&lt;br&gt;be named:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;cwec_s4.0_c1.0.xml
&lt;br&gt;&lt;br&gt;since the schema is currently at 4.0:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://cwedev1.mitre.org/data/xsd/cwe_schema_v4.0.xsd&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwedev1.mitre.org/data/xsd/cwe_schema_v4.0.xsd&lt;/a&gt;&lt;br&gt;&lt;br&gt;If we go this route, I'd advocate listing the content version first, then
&lt;br&gt;the schema version, since I'd expect that the content version would be the
&lt;br&gt;most important to people.
&lt;br&gt;&lt;br&gt;So if we changed the version to 1.0.1, we'd have:
&lt;br&gt;&lt;br&gt;&amp;nbsp; cwec_c1.0.1_s4.0.xml
&lt;br&gt;&lt;br&gt;Either way, that seems like a lot of dots and numbers, so its not
&lt;br&gt;aesthetically pleasing to me.
&lt;br&gt;&lt;br&gt;&amp;gt; -I suspect it would be better (less ambiguous) if the content version
&lt;br&gt;&amp;gt; would never reset when you modify the schema or views, so if you had
&lt;br&gt;&amp;gt; schema/views 1.0 and content 1.6, if you adopt schema/views 2.0 then the
&lt;br&gt;&amp;gt; content version would be at least 1.6, possibly 1.7 or higher depending
&lt;br&gt;&amp;gt; on the extent of changes.
&lt;br&gt;&lt;br&gt;I would expect this to be the case. &amp;nbsp;The schema and content versions are
&lt;br&gt;closely related, but they are clearly separable in my mind.
&lt;br&gt;&lt;br&gt;When you talk about views changing, do you mean the XML downloads of
&lt;br&gt;specific views? &amp;nbsp;Or when we change relationships within views? &amp;nbsp;I view the
&lt;br&gt;latter as a content change. &amp;nbsp;The former is basically just part of our web
&lt;br&gt;downloads that are automatically generated from the core XML.
&lt;br&gt;&lt;br&gt;&amp;gt; Files with only the differences or a list of updated CWEs between
&lt;br&gt;&amp;gt; content versions would be a bonus.
&lt;br&gt;&lt;br&gt;The diff's will list the updated CWEs. &amp;nbsp;I don't think we can produce files
&lt;br&gt;with only the differences at this stage, but we'll definitely consider it
&lt;br&gt;for the future.
&lt;br&gt;&lt;br&gt;- Steve
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/More-frequent-CWE-releases-and-CWE-versioning-tp19923201p19965686.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-19923201</id>
	<title>More frequent CWE releases and CWE versioning</title>
	<published>2008-10-10T11:04:09Z</published>
	<updated>2008-10-10T11:04:09Z</updated>
	<author>
		<name>Steven M. Christey-2</name>
	</author>
	<content type="html">All,
&lt;br&gt;&lt;br&gt;We are planning to release a new version of CWE on Tuesday, October 14.
&lt;br&gt;But before we do so, we'd like to get your opinion on how we should label
&lt;br&gt;things when CWE data changes.
&lt;br&gt;&lt;br&gt;This new version does not have the large number of changes that we saw
&lt;br&gt;occurring between drafts. &amp;nbsp;The schema remains the same. &amp;nbsp;We've updated
&lt;br&gt;a few dozen CWE entries and added a new entry, but otherwise the
&lt;br&gt;content is the same.
&lt;br&gt;&lt;br&gt;For the foreseeable future, we are planning a more frequent update
&lt;br&gt;schedule - currently estimated at once a month, although the frequency may
&lt;br&gt;vary depending on &amp;quot;quality-based&amp;quot; criteria or external deadlines.
&lt;br&gt;&lt;br&gt;So, we now face a question of the best way to capture these ongoing
&lt;br&gt;versions.
&lt;br&gt;&lt;br&gt;The CWE schema supports two separate elements that could be used for
&lt;br&gt;versioning:
&lt;br&gt;&lt;br&gt;&amp;nbsp; Catalog_Version - a string
&lt;br&gt;&lt;br&gt;&amp;nbsp; Catalog_Date - a date
&lt;br&gt;&lt;br&gt;In the past, we've only used the Catalog_Version - so currently, it's
&lt;br&gt;at &amp;quot;1.0.&amp;quot;
&lt;br&gt;&lt;br&gt;&lt;br&gt;We believe there are two main choices for how we can handle versions
&lt;br&gt;in the future. &amp;nbsp;We wanted to get feedback from the researcher list
&lt;br&gt;because you are some of our most active users of CWE.
&lt;br&gt;&lt;br&gt;The options are:
&lt;br&gt;&lt;br&gt;1) Versions for each change
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;Use Catalog_Version to contain sub-versions for every new release
&lt;br&gt;&amp;nbsp; &amp;nbsp;of CWE, no matter how small the change; and use larger versions to
&lt;br&gt;&amp;nbsp; &amp;nbsp;reflect significant content changes, such as major changes to an
&lt;br&gt;&amp;nbsp; &amp;nbsp;important view.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;The Catalog_Date would be filled out, but only as a convenience for
&lt;br&gt;&amp;nbsp; &amp;nbsp;users, so that they don't have to go to the CWE web site to figure
&lt;br&gt;&amp;nbsp; &amp;nbsp;out what date CWE was released on.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;So, the new release would be labeled &amp;quot;1.0.1&amp;quot;
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;The XML download would be cwec_v1.0.1.xml
&lt;br&gt;&lt;br&gt;&lt;br&gt;2) Versions for significant changes
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;Catalog_Version would not be modified if only small changes
&lt;br&gt;&amp;nbsp; &amp;nbsp;occurred, as will be the case for October 14. &amp;nbsp;We would only modify
&lt;br&gt;&amp;nbsp; &amp;nbsp;the version number when significant content changes occur, as
&lt;br&gt;&amp;nbsp; &amp;nbsp;mentioned previously.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;The Catalog_Date would be changed whenever content changed within
&lt;br&gt;&amp;nbsp; &amp;nbsp;the same version, so that people who care about the small
&lt;br&gt;&amp;nbsp; &amp;nbsp;differences can check to see if their copy of CWE needs updating.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;So, the new release would remain labeled &amp;quot;1.0&amp;quot;, and the
&lt;br&gt;&amp;nbsp; &amp;nbsp;Catalog_Date would be &amp;quot;2008-10-14&amp;quot;. &amp;nbsp;The XML download would remain
&lt;br&gt;&amp;nbsp; &amp;nbsp;at cwec_v1.0.xml.
&lt;br&gt;&lt;br&gt;&lt;br&gt;By creating new versions for each change, including minor changes, this
&lt;br&gt;would ensure that there is no confusion between copies of CWE; any two
&lt;br&gt;parties who say they use &amp;quot;CWE 1.0.x&amp;quot; would be using the exact same data.
&lt;br&gt;However, casual CWE users would not understand the rationale for why the
&lt;br&gt;versions are updated, so they might update their data more frequently than
&lt;br&gt;necessary.
&lt;br&gt;&lt;br&gt;By limiting new versions to significant changes only, then any version
&lt;br&gt;change will send a strong signal that it's important for people to update
&lt;br&gt;their copy of CWE. &amp;nbsp;People who care about minor versions can still use the
&lt;br&gt;date field if they want.
&lt;br&gt;&lt;br&gt;Note that in either case, we will be providing version-to-version diffs on
&lt;br&gt;the web site.
&lt;br&gt;&lt;br&gt;What would work best for you? &amp;nbsp;Do you expect to follow every single update
&lt;br&gt;of CWE, or only the most significant changes?
&lt;br&gt;&lt;br&gt;&lt;br&gt;Thanks,
&lt;br&gt;Steve
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/More-frequent-CWE-releases-and-CWE-versioning-tp19923201p19923201.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-19458893</id>
	<title>1.0 confusion</title>
	<published>2008-09-12T08:55:56Z</published>
	<updated>2008-09-12T08:55:56Z</updated>
	<author>
		<name>Chris Eng</name>
	</author>
	<content type="html">Posting this to the list for further discussion.
&lt;br&gt;&amp;nbsp;
&lt;br&gt;&lt;br&gt;-----Original Message-----
&lt;br&gt;From: Steven M. Christey [mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=19458893&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;coley@...&lt;/a&gt;] 
&lt;br&gt;Sent: Friday, September 12, 2008 11:52 AM
&lt;br&gt;To: Chris Eng
&lt;br&gt;Cc: Steven M. Christey; Robert A. Martin
&lt;br&gt;Subject: Re: 1.0 confusion
&lt;br&gt;&lt;br&gt;&lt;br&gt;Chris,
&lt;br&gt;&lt;br&gt;Would you mind posting this question to the research list? &amp;nbsp;Others will
&lt;br&gt;probably run into similar questions.
&lt;br&gt;&lt;br&gt;&amp;gt; 1) Why does each Relationship node have a View_ID and a
&lt;br&gt;&amp;gt; Relationship_Target?
&lt;br&gt;&lt;br&gt;A Relationship only exists within the context of a particular view.
&lt;br&gt;This
&lt;br&gt;technically begin in Draft 9 but wasn't necessarily that noticeable
&lt;br&gt;until
&lt;br&gt;1.0.
&lt;br&gt;&lt;br&gt;&amp;gt; &amp;nbsp;If I am trying to figure out who is the most applicable parent for a
&lt;br&gt;&amp;gt; given node, how do I prioritize if there are multiple ChildOf
&lt;br&gt;&amp;gt; Relationships?
&lt;br&gt;&lt;br&gt;1) You pick a view, X, through which you plan to navigate, then you pick
&lt;br&gt;ChildOf in that view.
&lt;br&gt;&lt;br&gt;2) If there are multiple ChildOf in view X (i.e. where
&lt;br&gt;Relationship_View_ID=X), then you pick the relationship with
&lt;br&gt;ordinal=primary for that view. &amp;nbsp;There's only one primary allowed per
&lt;br&gt;(relationship:view) tuple in each node. &amp;nbsp;If there's multiple
&lt;br&gt;ordinals=primary, then each one is in a separate view.
&lt;br&gt;&lt;br&gt;The primary navigational views in CWE 1.0 are View 1000 (Research
&lt;br&gt;Concepts) and view 699 (Development Concepts; the main CWE organization
&lt;br&gt;before 1.0). &amp;nbsp;In general, deferring to view 1000 instead of 699 is more
&lt;br&gt;likely to get you closely-related entries - however, that's based on
&lt;br&gt;view-1000's perspective of the world.
&lt;br&gt;&lt;br&gt;Note that we only have relationships in a single direction in the XML.
&lt;br&gt;We plan on publishing XML with bidirectional relationships, which should
&lt;br&gt;minimize programming effort in some cases.
&lt;br&gt;&lt;br&gt;[Note to Bob and self: we should probably have a way of more cleanly
&lt;br&gt;capturing only primary relationships for people who don't want to do
&lt;br&gt;multi-parent navigation].
&lt;br&gt;&lt;br&gt;&amp;gt; 2) I am trying to figure out how to take the OWASP views and generate
&lt;br&gt;a
&lt;br&gt;&amp;gt; list of all the CWE nodes that belong to it, which we will then use
&lt;br&gt;for
&lt;br&gt;&amp;gt; our reporting. &amp;nbsp;I thought I could start with all the nodes that are
&lt;br&gt;&amp;gt; listed explicitly as part of CWE 723, for example, and then add all
&lt;br&gt;the
&lt;br&gt;&amp;gt; descendants of those nodes. But when I do that, I end up missing some
&lt;br&gt;&amp;gt; nodes, such as CWE 73 which should be part of OWASP A2-2004.
&lt;br&gt;&lt;br&gt;A very interesting problem that I don't have a fully-automated answer
&lt;br&gt;for.
&lt;br&gt;&lt;br&gt;In general, you could use something we informally call &amp;quot;view-hopping,&amp;quot;
&lt;br&gt;although there can be limitations.
&lt;br&gt;&lt;br&gt;Let's say you're following view 711, the 2004 OWASP Top Ten. &amp;nbsp;Once you
&lt;br&gt;run
&lt;br&gt;out of &amp;quot;711&amp;quot; child relationships to follow, you could then &amp;quot;hop&amp;quot; over to
&lt;br&gt;view-1000 (natural hierarchy) relationships.
&lt;br&gt;&lt;br&gt;So navigating under view-711 from cwe-723, you'll reach a child CWE-330
&lt;br&gt;(randomness). &amp;nbsp;This has no cildren under view-711, but if you &amp;quot;hop&amp;quot; to
&lt;br&gt;relationships under view 1000, CWE-329 Not Using a Random IV with CBC
&lt;br&gt;Mode
&lt;br&gt;and many other variants starts to show up.
&lt;br&gt;&lt;br&gt;View-hopping probably makes the most sense under view-1000, since it is
&lt;br&gt;focused on closely related weaknesses instead of arbitrary categories.
&lt;br&gt;&lt;br&gt;But there are limitations here, and the example you used, CWE-73, is one
&lt;br&gt;of them. &amp;nbsp;You won't find it under view A2 (as you saw), and it's not a
&lt;br&gt;descendant under view-1000 either, because the Research Concept view
&lt;br&gt;doesn't treat CWE-73 as an instance of input validation. &amp;nbsp;However, you
&lt;br&gt;do
&lt;br&gt;reach CWE-20 through the 699 Development Concepts view.
&lt;br&gt;&lt;br&gt;&amp;nbsp; 711 --&amp;gt; 722 (A1 - Unvalidated Input) [VIEW 711]
&lt;br&gt;&lt;br&gt;&amp;nbsp; 722 has child 20 (Insufficient Input Validation) &amp;nbsp;[VIEW 711]
&lt;br&gt;&lt;br&gt;&amp;nbsp; 20 has many children under VIEW 1000... but not 73
&lt;br&gt;&lt;br&gt;&amp;nbsp; 20 also has children under VIEW 699... including 73
&lt;br&gt;&lt;br&gt;But since view 1000 and view 699 are organized so differently, I can see
&lt;br&gt;how you'd wind up in trouble if you just navigated both of them
&lt;br&gt;automatically.
&lt;br&gt;&lt;br&gt;If you're going the opposite direction, maybe you could try something
&lt;br&gt;like:
&lt;br&gt;&lt;br&gt;&amp;nbsp; 73
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; view 1000: ChildOf CWE-610 (which is ChildOf 664, no OWASP cat's
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;in the path)
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; view 699: ChildOf CWE-20 [under 699]
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CWE-20 ChildOf CWE-722 [under 711]
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CWE-722 is A1-2004
&lt;br&gt;&lt;br&gt;So 73 is part of A1-2004.
&lt;br&gt;&lt;br&gt;I don't think there's a fully automated solution here, but if you
&lt;br&gt;navigate
&lt;br&gt;up view-1000 relationships *and* view-699 relationships, you're likely
&lt;br&gt;to
&lt;br&gt;find what you want.
&lt;br&gt;&lt;br&gt;&amp;gt; 3) You have CWE 79 (XSS) listed under OWASP A1-2004. &amp;nbsp;But XSS is
&lt;br&gt;really
&lt;br&gt;&amp;gt; an Output Validation problem, not Input Validation, plus it has its
&lt;br&gt;own
&lt;br&gt;&amp;gt; OWASP category dedicated to it, OWASP A4-2004.
&lt;br&gt;&lt;br&gt;This is because when I created 711, I made a literal mapping from what
&lt;br&gt;the
&lt;br&gt;OWASP document said to what CWEs were available. &amp;nbsp;I agree that XSS is
&lt;br&gt;more
&lt;br&gt;related to output than input (we say &amp;quot;sanitization&amp;quot; instead of
&lt;br&gt;&amp;quot;validation&amp;quot; because things like encoding/escaping don't feel like
&lt;br&gt;&amp;quot;validation&amp;quot;). &amp;nbsp;However, the OWASP 2004 document specifically lists XSS
&lt;br&gt;under its A1 category.
&lt;br&gt;&lt;br&gt;The ordinal=primary for XSS, though, is for the A4 XSS relationship.
&lt;br&gt;&lt;br&gt;Hope this all makes sense.
&lt;br&gt;&lt;br&gt;- Steve
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/1.0-confusion-tp19458893p19458893.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-19406270</id>
	<title>Release of CWE 1.0</title>
	<published>2008-09-09T21:49:35Z</published>
	<updated>2008-09-09T21:49:35Z</updated>
	<author>
		<name>Steven M. Christey-2</name>
	</author>
	<content type="html">All,
&lt;br&gt;&lt;br&gt;CWE 1.0 has been released!
&lt;br&gt;&lt;br&gt;We've added a lot of pages to the site. &amp;nbsp;Many new pages have undergone
&lt;br&gt;a redesign; you might need to refresh your browser cache to see the
&lt;br&gt;new presentation.
&lt;br&gt;&lt;br&gt;The most efficient way for you to access what you want is probably
&lt;br&gt;through the links provided in this email, much of which is also
&lt;br&gt;reflected in this page:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://cwe.mitre.org/data/reports/major_chgs_1.0.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/data/reports/major_chgs_1.0.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;Major changes have been made to the CWE schema, which will be much
&lt;br&gt;more stable than previous versions. It is expected that the schema
&lt;br&gt;will not change in any substantial fashion for the near future. The
&lt;br&gt;new schema addresses the main outstanding limitations of past
&lt;br&gt;versions, provides internal consistency, fixes outstanding
&lt;br&gt;limitations, and supports ease of content editing by the CWE team. We
&lt;br&gt;thank Sean Barnum of Cigital for his active contributions in this
&lt;br&gt;area.
&lt;br&gt;&lt;br&gt;Schema change summary:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://cwe.mitre.org/data/reports/diff_xsd_3.0_4.0.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/data/reports/diff_xsd_3.0_4.0.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;Schema documentation:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://cwe.mitre.org/documents/schema/index.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/documents/schema/index.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;Engagement with key stakeholders in the community has led to
&lt;br&gt;additional content enhancements in CWE 1.0. Many entries contain
&lt;br&gt;modifications that were contributed by external parties.
&lt;br&gt;&lt;br&gt;&amp;nbsp; * Cigital provided additional demonstrative examples, mitigations,
&lt;br&gt;&amp;nbsp; &amp;nbsp; and times of introduction.
&lt;br&gt;&lt;br&gt;&amp;nbsp; * KDM Analytics provided additional white box definitions.
&lt;br&gt;&lt;br&gt;&amp;nbsp; * Veracode suggested the creation of an OWASP Top Ten 2004 view
&lt;br&gt;&amp;nbsp; &amp;nbsp; (CWE-711) because of its use in PCI, and they provided supporting
&lt;br&gt;&amp;nbsp; &amp;nbsp; CWE mappings.
&lt;br&gt;&lt;br&gt;Links: everywhere. &amp;nbsp;Look at the Modification credits in the Content
&lt;br&gt;History sections of individual entries.
&lt;br&gt;&lt;br&gt;Engagement with members of the community has also resulted in
&lt;br&gt;significant enhancements to the Development Concepts (CWE-699) and
&lt;br&gt;Research Concepts (CWE-1000) views, which are the most heavily
&lt;br&gt;featured on the CWE web site. We have also created a Seven Pernicious
&lt;br&gt;Kingdoms view (CWE-700). &amp;nbsp;A comparison of these views is available, as
&lt;br&gt;well as a description of how they evolved. We are especially grateful
&lt;br&gt;for feedback from representatives from Cigital, Fortify, and Veracode.
&lt;br&gt;&lt;br&gt;Development Concepts view (check out the graph tab):
&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://cwe.mitre.org/data/definitions/699.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/data/definitions/699.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;Research Concepts view (check out the graph tab):
&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://cwe.mitre.org/data/definitions/1000.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/data/definitions/1000.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;Evolution of the views:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://cwe.mitre.org/documents/views/view-evolution.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/documents/views/view-evolution.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;Comparison:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://cwe.mitre.org/documents/views/view-comparison.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/documents/views/view-comparison.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;List of all views:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://cwe.mitre.org/data/index.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/data/index.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;In addition to 39 new entries, all 695 entries from CWE Draft 9 have
&lt;br&gt;been modified in some fashion, mostly from external contributions and
&lt;br&gt;from relationship changes in support of various views.
&lt;br&gt;&lt;br&gt;Detailed change report:
&lt;br&gt;&lt;br&gt;&amp;nbsp; content: &amp;nbsp;&lt;a href=&quot;http://cwe.mitre.org/data/reports/diff_draft_9_v1.0.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/data/reports/diff_draft_9_v1.0.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; schema: &lt;a href=&quot;http://cwe.mitre.org/data/reports/diff_xsd_3.0_4.0.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/data/reports/diff_xsd_3.0_4.0.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;There are additional documents that have been published, including:
&lt;br&gt;&lt;br&gt;&amp;nbsp;(1) an analysis of CWE's ability to support tool mappings, of
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;interest to tool vendors, academic researchers, and tool
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;analysts:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://cwe.mitre.org/documents/mapping_analysis/index.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/documents/mapping_analysis/index.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;(2) PDF graphical depictions of various CWE views, including
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;quot;coverage graphs&amp;quot; that show how members of one view are located
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;within another view:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://cwe.mitre.org/data/pdfs.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/data/pdfs.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;(3) an evolving glossary of terms:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://cwe.mitre.org/documents/glossary/index.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/documents/glossary/index.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Of course, the work doesn't end here, but we believe that CWE 1.0 is a
&lt;br&gt;significant improvement to the past drafts of CWE. It would not be
&lt;br&gt;possible without hard work from the community and the CWE team. Bob
&lt;br&gt;Martin and Steve Christey would like to thank CWE team members Janis
&lt;br&gt;Kenderdine, Conor Harris, and Mark Loveless for all their efforts in
&lt;br&gt;bringing CWE to a new level of maturity.
&lt;br&gt;&lt;br&gt;As always, feedback is welcome here on the list or to &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=19406270&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;cwe@...&lt;/a&gt;.
&lt;br&gt;&lt;br&gt;Enjoy!
&lt;br&gt;&lt;br&gt;&lt;br&gt;Steve Christey, CWE Technical Lead
&lt;br&gt;Bob Martin, CWE Project Lead
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Release-of-CWE-1.0-tp19406270p19406270.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-19406267</id>
	<title>RE: CWE 1.0 to be released Tuesday, September 9, 2008</title>
	<published>2008-09-09T21:48:57Z</published>
	<updated>2008-09-09T21:48:57Z</updated>
	<author>
		<name>Steven M. Christey-2</name>
	</author>
	<content type="html">On Tue, 9 Sep 2008, paulslewis66 &amp;nbsp;wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; May I ask if CWE references will be included within the XML CVE feeds in
&lt;br&gt;&amp;gt; a similar way the searchable database is?
&lt;br&gt;&lt;br&gt;We do not track CWE references within CVE. &amp;nbsp;You're probably talking about
&lt;br&gt;NIST's NVD (nvd.nist.gov), which is an extension of CVE. &amp;nbsp;NVD has been
&lt;br&gt;mapping to CWE on individual pages, but it is not yet included in their
&lt;br&gt;downloads. &amp;nbsp;However, NVD has stated that they will start including CWE
&lt;br&gt;names in the downloads within a matter of weeks.
&lt;br&gt;&lt;br&gt;For those who were not aware of NVD's use of CWE, see:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://nvd.nist.gov/cwe.cfm&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://nvd.nist.gov/cwe.cfm&lt;/a&gt;&lt;br&gt;&lt;br&gt;The current selection of CWE identifiers used in NVD faces many of the
&lt;br&gt;same issues that have been brought up by Information-technology Promotion
&lt;br&gt;Agency, Japan (IPA), specifically that sometimes you can't assign CWE
&lt;br&gt;identifiers when you are dealing with incomplete third-party vulnerability
&lt;br&gt;information. &amp;nbsp;We are aware of this limitation and hope to address it in
&lt;br&gt;the coming months.
&lt;br&gt;&lt;br&gt;- Steve
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/CWE-1.0-to-be-released-Tuesday%2C-September-9%2C-2008-tp19338912p19406267.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-19387399</id>
	<title>RE: CWE 1.0 to be released Tuesday, September 9, 2008</title>
	<published>2008-09-09T00:38:18Z</published>
	<updated>2008-09-09T00:38:18Z</updated>
	<author>
		<name>paulslewis66</name>
	</author>
	<content type="html">Hello,
&lt;br&gt;&lt;br&gt;May I ask if CWE references will be included within the XML CVE feeds in a similar way the searchable database is?
&lt;br&gt;&lt;br&gt;many thanks
&lt;br&gt;&lt;br&gt;Paul S Lewis
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/CWE-1.0-to-be-released-Tuesday%2C-September-9%2C-2008-tp19338912p19387399.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-19365390</id>
	<title>Re: Some asking about CWE.</title>
	<published>2008-09-07T20:35:58Z</published>
	<updated>2008-09-07T20:35:58Z</updated>
	<author>
		<name>Tadashi Yamagishi</name>
	</author>
	<content type="html">Dear Mr. Steven M. Christey,
&lt;br&gt;&lt;br&gt;I am very appreciate all your help.
&lt;br&gt;I am looking forward to the CWE Version 1.0 release. 
&lt;br&gt;&lt;br&gt;We(IPA) think that we will adopt CWE.
&lt;br&gt;We would like to participate in the following CWE community initiative. 
&lt;br&gt;&lt;a href=&quot;http://cwe.mitre.org/community/index.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/community/index.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;Could you add our organization to the CWE community initiative ?
&lt;br&gt;Information-technology Promotion Agency, Japan (IPA)
&lt;br&gt;&lt;a href=&quot;http://www.ipa.go.jp/index-e.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.ipa.go.jp/index-e.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;Thank you again for your explanation about questions.
&lt;br&gt;&lt;br&gt;Sincerely yours,
&lt;br&gt;Tadashi Yamagishi
&lt;br&gt;IT Security Center (ISEC)
&lt;br&gt;Information-technology Promotion Agency, Japan (IPA)
&lt;br&gt;E-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=19365390&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;t-yamagi@...&lt;/a&gt;
&lt;br&gt;&lt;br&gt;Steven M. Christey wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; On Mon, 25 Aug 2008, Tadashi Yamagishi wrote:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; Question1:About Hierarchy diagram.
&lt;br&gt;&amp;gt;&amp;gt; I made CWE-635(Weaknesses Used by NVD) a hierarchy diagram
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;referring to cwe_classification_tree.pdf.
&lt;br&gt;&amp;gt;&amp;gt; The hierarchy diagram is appended.
&lt;br&gt;&amp;gt;&amp;gt; cwe_classification_tree.pdf shows the following.
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;CWE-20 is a child of CWE-19.
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;CWE-22 is a child of CWE-21.
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;CWE-134 is a child of CWE-133.
&lt;br&gt;&amp;gt;&amp;gt; However, CWE-1000(Natural Hierarchy) shows another parents.
&lt;br&gt;&amp;gt;&amp;gt; I am confused. Are two or more parents permitted in CWE ?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Yes. &amp;nbsp;This is for two reasons:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; (1) there are multiple ways of looking at the same weakness, so we want
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; to support these different ways. &amp;nbsp;So, different views can express
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; different relationships.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; (2) Some weaknesses can be fairly complex, so they can be classified in
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; different ways, even within the same view. &amp;nbsp;Ideally, it would be
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; good to have a view in which every weakness can have only one
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; parent. &amp;nbsp;This is very difficult to achieve in practice; we think
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; that the concept of chains and composites helps to explain why
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; this classification is so difficult. &amp;nbsp;We are making significant
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; progress within the &amp;quot;natural hierarchy&amp;quot; (view 1000), but we
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; will not have this finished by the release of CWE 1.0.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; Question2:About the classification of Dos( Denial of Service ).
&lt;br&gt;&amp;gt;&amp;gt; DoS is not classified in CWE.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; DoS is not classified because it's a &amp;quot;consequence&amp;quot; of some weakness - just
&lt;br&gt;&amp;gt; like &amp;quot;loss of integrity&amp;quot; is a consequence. &amp;nbsp;In CWE 1.0, we will have
&lt;br&gt;&amp;gt; multiple ways of trying to determine which weaknesses can lead to a DoS:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;- a new OWASP Top Ten 2004 view has category A9, Denial of Service.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp;- as a result of schema changes in 1.0, our Consequence element has
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;been improved so that you will be able to search CWE for
&lt;br&gt;&amp;gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;Consequence_Scope = Availability.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; How do you classify it when the cause of the DoS is not understood
&lt;br&gt;&amp;gt;&amp;gt; &amp;nbsp;in the vulnerability report?
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; This is a very difficult question, and I'm not sure how to handle it. &amp;nbsp;In
&lt;br&gt;&amp;gt; the case of databases of public vulnerabilities (like NVD), the databases
&lt;br&gt;&amp;gt; often don't have solid information about the underlying weaknesses that
&lt;br&gt;&amp;gt; led to the vulnerability. &amp;nbsp;Sometimes, the only vulnerability information
&lt;br&gt;&amp;gt; is something like &amp;quot;Product X can crash from a malformed packet&amp;quot; - you
&lt;br&gt;&amp;gt; might see this in a software vendor advisory, for example.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; Since the &amp;quot;DoS&amp;quot; phrase alone doesn't talk about any specific weakness, CWE
&lt;br&gt;&amp;gt; is not currently capable of modeling it.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; This is an example of a challenge: how should you map to CWE when you're
&lt;br&gt;&amp;gt; dealing with issues that aren't exactly weaknesses? &amp;nbsp;We hope to be able to
&lt;br&gt;&amp;gt; develop methods of handling these kinds of issues. &amp;nbsp;In fact, one of the
&lt;br&gt;&amp;gt; upcoming white papers will cover some of the common difficulties that
&lt;br&gt;&amp;gt; people will face when mapping to CWE. &amp;nbsp;In addition, sometime after the
&lt;br&gt;&amp;gt; release of CWE 1.0, we will try to improve the current NVD classifications
&lt;br&gt;&amp;gt; so that they are more suitable for handling incomplete vulnerability
&lt;br&gt;&amp;gt; information. &amp;nbsp;Hopefully we will be able to address this issue somehow.
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; - Steve
&lt;br&gt;&amp;gt; 
&lt;br&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Some-asking-about-CWE.-tp19140863p19365390.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-19339182</id>
	<title>Re: Some asking about CWE.</title>
	<published>2008-09-05T13:46:23Z</published>
	<updated>2008-09-05T13:46:23Z</updated>
	<author>
		<name>Steven M. Christey-2</name>
	</author>
	<content type="html">On Mon, 25 Aug 2008, Tadashi Yamagishi wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; Question1:About Hierarchy diagram.
&lt;br&gt;&amp;gt; I made CWE-635(Weaknesses Used by NVD) a hierarchy diagram
&lt;br&gt;&amp;gt; &amp;nbsp;referring to cwe_classification_tree.pdf.
&lt;br&gt;&amp;gt; The hierarchy diagram is appended.
&lt;br&gt;&amp;gt; cwe_classification_tree.pdf shows the following.
&lt;br&gt;&amp;gt; &amp;nbsp;CWE-20 is a child of CWE-19.
&lt;br&gt;&amp;gt; &amp;nbsp;CWE-22 is a child of CWE-21.
&lt;br&gt;&amp;gt; &amp;nbsp;CWE-134 is a child of CWE-133.
&lt;br&gt;&amp;gt; However, CWE-1000(Natural Hierarchy) shows another parents.
&lt;br&gt;&amp;gt; I am confused. Are two or more parents permitted in CWE ?
&lt;/div&gt;&lt;br&gt;Yes. &amp;nbsp;This is for two reasons:
&lt;br&gt;&lt;br&gt;&amp;nbsp; (1) there are multiple ways of looking at the same weakness, so we want
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; to support these different ways. &amp;nbsp;So, different views can express
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; different relationships.
&lt;br&gt;&lt;br&gt;&amp;nbsp; (2) Some weaknesses can be fairly complex, so they can be classified in
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; different ways, even within the same view. &amp;nbsp;Ideally, it would be
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; good to have a view in which every weakness can have only one
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; parent. &amp;nbsp;This is very difficult to achieve in practice; we think
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; that the concept of chains and composites helps to explain why
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; this classification is so difficult. &amp;nbsp;We are making significant
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; progress within the &amp;quot;natural hierarchy&amp;quot; (view 1000), but we
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; will not have this finished by the release of CWE 1.0.
&lt;br&gt;&lt;br&gt;&amp;gt; Question2:About the classification of Dos( Denial of Service ).
&lt;br&gt;&amp;gt; DoS is not classified in CWE.
&lt;br&gt;&lt;br&gt;DoS is not classified because it's a &amp;quot;consequence&amp;quot; of some weakness - just
&lt;br&gt;like &amp;quot;loss of integrity&amp;quot; is a consequence. &amp;nbsp;In CWE 1.0, we will have
&lt;br&gt;multiple ways of trying to determine which weaknesses can lead to a DoS:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;- a new OWASP Top Ten 2004 view has category A9, Denial of Service.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;- as a result of schema changes in 1.0, our Consequence element has
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;been improved so that you will be able to search CWE for
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Consequence_Scope = Availability.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;gt; How do you classify it when the cause of the DoS is not understood
&lt;br&gt;&amp;gt; &amp;nbsp;in the vulnerability report?
&lt;br&gt;&lt;br&gt;This is a very difficult question, and I'm not sure how to handle it. &amp;nbsp;In
&lt;br&gt;the case of databases of public vulnerabilities (like NVD), the databases
&lt;br&gt;often don't have solid information about the underlying weaknesses that
&lt;br&gt;led to the vulnerability. &amp;nbsp;Sometimes, the only vulnerability information
&lt;br&gt;is something like &amp;quot;Product X can crash from a malformed packet&amp;quot; - you
&lt;br&gt;might see this in a software vendor advisory, for example.
&lt;br&gt;&lt;br&gt;Since the &amp;quot;DoS&amp;quot; phrase alone doesn't talk about any specific weakness, CWE
&lt;br&gt;is not currently capable of modeling it.
&lt;br&gt;&lt;br&gt;This is an example of a challenge: how should you map to CWE when you're
&lt;br&gt;dealing with issues that aren't exactly weaknesses? &amp;nbsp;We hope to be able to
&lt;br&gt;develop methods of handling these kinds of issues. &amp;nbsp;In fact, one of the
&lt;br&gt;upcoming white papers will cover some of the common difficulties that
&lt;br&gt;people will face when mapping to CWE. &amp;nbsp;In addition, sometime after the
&lt;br&gt;release of CWE 1.0, we will try to improve the current NVD classifications
&lt;br&gt;so that they are more suitable for handling incomplete vulnerability
&lt;br&gt;information. &amp;nbsp;Hopefully we will be able to address this issue somehow.
&lt;br&gt;&lt;br&gt;&lt;br&gt;- Steve
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Some-asking-about-CWE.-tp19140863p19339182.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-19338912</id>
	<title>CWE 1.0 to be released Tuesday, September 9, 2008</title>
	<published>2008-09-05T13:29:09Z</published>
	<updated>2008-09-05T13:29:09Z</updated>
	<author>
		<name>Steven M. Christey-2</name>
	</author>
	<content type="html">All,
&lt;br&gt;&lt;br&gt;We will be releasing CWE 1.0 on Tuesday, September 9.
&lt;br&gt;&lt;br&gt;While we had a goal for everything to be finished by the end of August, we
&lt;br&gt;want CWE 1.0 to be as stable as possible, especially with respect to the
&lt;br&gt;schema. &amp;nbsp;Ironing out the issues with the schema has taken more time than
&lt;br&gt;we wanted, plus we have added a number of new elements.
&lt;br&gt;&lt;br&gt;During our interactions with various community members over the summer,
&lt;br&gt;we've realized that it would be best for us to write a number of white
&lt;br&gt;papers, as well as creating some new views. &amp;nbsp;These were somewhat
&lt;br&gt;unexpected additions that came in July and August, so this introduced more
&lt;br&gt;work than we had originally expected.
&lt;br&gt;&lt;br&gt;We didn't want to release CWE 1.0 too early, only to make some more
&lt;br&gt;changes soon after we released it because it was incomplete. &amp;nbsp;So we've
&lt;br&gt;slipped in our schedule, but the quality will be higher.
&lt;br&gt;&lt;br&gt;This is our biggest release to date, and we believe that it will be worth
&lt;br&gt;the wait. &amp;nbsp;Thank you for your patience.
&lt;br&gt;&lt;br&gt;&lt;br&gt;- Steve
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/CWE-1.0-to-be-released-Tuesday%2C-September-9%2C-2008-tp19338912p19338912.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-19140863</id>
	<title>Some asking about CWE.</title>
	<published>2008-08-25T02:52:26Z</published>
	<updated>2008-08-25T02:52:26Z</updated>
	<author>
		<name>Tadashi Yamagishi</name>
	</author>
	<content type="html">Dear CWE group,
&lt;br&gt;&lt;br&gt;I am Tadashi Yamagishi
&lt;br&gt;&amp;nbsp;in Information-technology Promotion Agency, Japan (IPA).
&lt;br&gt;We(IPA) have Vulnerability Countermeasure
&lt;br&gt;&amp;nbsp;Information Database (JVN iPedia) for Japanese IT user.
&lt;br&gt;&lt;a href=&quot;http://jvndb.jvn.jp/index_en.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jvndb.jvn.jp/index_en.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;JVN iPedia adapted CVSS(Common Vulnerability Scoring System) last year.
&lt;br&gt;The next step, I think that JVN iPedia need CWE.
&lt;br&gt;I am studying CWE draft 9 now.
&lt;br&gt;I have three questions about CWE.
&lt;br&gt;&lt;br&gt;Question1:About Hierarchy diagram.
&lt;br&gt;I made CWE-635(Weaknesses Used by NVD) a hierarchy diagram
&lt;br&gt;&amp;nbsp;referring to cwe_classification_tree.pdf. 
&lt;br&gt;The hierarchy diagram is appended.
&lt;br&gt;cwe_classification_tree.pdf shows the following.
&lt;br&gt;&amp;nbsp;CWE-20 is a child of CWE-19.
&lt;br&gt;&amp;nbsp;CWE-22 is a child of CWE-21.
&lt;br&gt;&amp;nbsp;CWE-134 is a child of CWE-133.
&lt;br&gt;However, CWE-1000(Natural Hierarchy) shows another parents.
&lt;br&gt;I am confused. Are two or more parents permitted in CWE ?
&lt;br&gt;I think that cwe_classification_tree.pdf and CWE-1000
&lt;br&gt;&amp;nbsp;are comprehensible when it is the same.
&lt;br&gt;&lt;br&gt;Question2:About the classification of Dos( Denial of Service ).
&lt;br&gt;DoS is not classified in CWE.
&lt;br&gt;How do you classify it when the cause of the DoS is not understood
&lt;br&gt;&amp;nbsp;in the vulnerability report?
&lt;br&gt;&lt;br&gt;Question3:About XSS vulnerabilities.
&lt;br&gt;There are lots of XSS vulnerabilities
&lt;br&gt;&amp;nbsp;by the UTF-7 encoded string problems in Japan.
&lt;br&gt;for example:
&lt;br&gt;&amp;nbsp; CVE - CVE-2008-1468
&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-1468&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-1468&lt;/a&gt;&lt;br&gt;&amp;nbsp; JVNDB-2008-000018 - JVN iPedia
&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://jvndb.jvn.jp/contents/en/2008/JVNDB-2008-000018.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://jvndb.jvn.jp/contents/en/2008/JVNDB-2008-000018.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; CVE - CVE-2008-2168
&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-2168&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-2168&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; CVE - CVE-2008-0005
&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-0005&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-0005&lt;/a&gt;&lt;br&gt;&lt;br&gt;I want to classify the detail of XSS. 
&lt;br&gt;Can I choose a CWE-ID more detail than CWE-79
&lt;br&gt;&amp;nbsp;about XSS(UTF-7 encoded string problems)?
&lt;br&gt;&lt;br&gt;I look forward to your reply.
&lt;br&gt;&lt;br&gt;Sincerely yours,
&lt;br&gt;Tadashi Yamagishi
&lt;br&gt;IT Security Center (ISEC)
&lt;br&gt;Information-technology Promotion Agency, Japan (IPA)
&lt;br&gt;E-mail: &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=19140863&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;t-yamagi@...&lt;/a&gt;
&lt;br&gt;&lt;br /&gt; &lt;div class=&quot;small&quot;&gt;&lt;br/&gt;&lt;img src=&quot;http://old.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;CWE_635.PNG&lt;/strong&gt; (17K) &lt;a href=&quot;http://old.nabble.com/attachment/19140863/0/CWE_635.PNG&quot; target=&quot;_top&quot;&gt;Download Attachment&lt;/a&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Some-asking-about-CWE.-tp19140863p19140863.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-18734670</id>
	<title>FW: Natural Hierarchy email</title>
	<published>2008-07-30T07:32:42Z</published>
	<updated>2008-07-30T07:32:42Z</updated>
	<author>
		<name>Harris, Conor O.</name>
	</author>
	<content type="html">Hi All,
&lt;br&gt;&lt;br&gt;In earlier CWE drafts, the CWE hierarchy was mostly based on weakness
&lt;br&gt;abstractions - that is parent / child relationships were focused on the
&lt;br&gt;abstraction of the core weakness being addressed by each. But
&lt;br&gt;weaknesses in some areas of the hierarchy were grouped together based
&lt;br&gt;on a common attribute such as language, resource or consequence, the
&lt;br&gt;relevance of which can change based on the context of the weakness
&lt;br&gt;occurrence or the perspective of the viewer. As a result, weaknesses
&lt;br&gt;were sometimes children of categories that had little to do with the
&lt;br&gt;underlying problem, but provided a convenient way in which to view
&lt;br&gt;issues from certain perspectives. &amp;nbsp;While these perspective and context
&lt;br&gt;based views into CWE are very useful for some, a view based solely on
&lt;br&gt;weaknesses and their abstractions is also needed.
&lt;br&gt;&lt;br&gt;In an effort to provide this additional perspective into CWE, the CWE
&lt;br&gt;team began adding additional relationships to some entries in the
&lt;br&gt;release of draft 9. These relationships are based on the fundamental
&lt;br&gt;weakness behind each entry and how it relates to other weaknesses in
&lt;br&gt;terms of abstraction and small variations on similar issues. We are
&lt;br&gt;attempting to identify relationships that are as independent of
&lt;br&gt;specific language, technology, programming idiom, and resource as
&lt;br&gt;possible.
&lt;br&gt;&lt;br&gt;The slight shift in focus between drafts 7 and 8 led to several new
&lt;br&gt;schema constructs being added for draft 9, one of which being the Class
&lt;br&gt;/ Base / Variant attribute added to the weaknesses structure - a
&lt;br&gt;derivation of the draft 8 Grouping attribute - in order to facilitate
&lt;br&gt;the abstraction-based relationships. The CWE team has expanded on this
&lt;br&gt;for the release of version 1.0, and can be demonstrated in part by the
&lt;br&gt;top level of the natural hierarchy, view-1000, and a small subset of
&lt;br&gt;their children shown below.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp;* Range Errors
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Unbounded Transfer ('Classic Buffer Overflow')
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Incorrect Offset into a File
&lt;br&gt;&amp;nbsp;* Equivalence [Draft Concept for 1.0]
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Insufficient Comparison
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Failure to Resolve Case Sensitivity
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Encoding Error
&lt;br&gt;&amp;nbsp;* Incorrect Calculation
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Off-by-one Error
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Divide by Zero
&lt;br&gt;&amp;nbsp;* Failure to Fulfill API Contract (aka 'API Abuse')
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Failure to Follow Specification
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Failure to Provide Specified Functionality
&lt;br&gt;&amp;nbsp;* Coding Rule Violation
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Violation of Secure Design Principles
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Use of Inherently Dangerous Function
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Use of Potentially Dangerous Function
&lt;br&gt;&amp;nbsp;* Security Features (Protection Mechanism Failure) [Merging is new for
&lt;br&gt;1.0]
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Incomplete Blacklist
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Weak Encryption
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Insufficient Authentication
&lt;br&gt;&amp;nbsp;* Use of Insufficiently Random Values
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Insufficient Entropy
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Small Space of Random Values
&lt;br&gt;&amp;nbsp;* Interaction Error
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Compiler Removal of Code to Clear Buffers
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Interpretation Conflict
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Reliance on Data Memory Layout
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Behavioral Change in New Version or Environment
&lt;br&gt;&amp;nbsp;* Insufficient Control of &amp;nbsp;Resource Through its Lifetime
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Improper Resource Shutdown or Release
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Incorrect or Incomplete Initialization
&lt;br&gt;&amp;nbsp; &amp;nbsp;o External Influence of Sphere Definition
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Incorrect Resource Transfer Between Spheres
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Operation on Resource in Wrong Phase of Lifetime
&lt;br&gt;&amp;nbsp;* Insufficient Control Flow Management
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Insufficient Synchronization
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Always-Incorrect Control Flow Implementation
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Incorrect Behavior Order
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Deployment of Wrong Handler
&lt;br&gt;&amp;nbsp;* Failure to Handle Exceptional Conditions
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Missing Error Handling Mechanism
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Unexpected Status Code or Return Value
&lt;br&gt;&amp;nbsp;* Failure to Maintain Cohesion in Structured Messages or Data [New
&lt;br&gt;Concept for 1.0]
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Failure to Sanitize Special Elements
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Deletion of Data Structure Sentinel
&lt;br&gt;&amp;nbsp; &amp;nbsp;o Improper Null Termination
&lt;br&gt;&lt;br&gt;&lt;br&gt;It is important to emphasize that CWE will still be navigable by common
&lt;br&gt;attributes, such as language, consequence and platform after the
&lt;br&gt;release of CWE version 1.0 through various &amp;quot;views&amp;quot;. Prior relationships
&lt;br&gt;were preserved in the development of the natural hierarchy and can
&lt;br&gt;still be viewed from the individual CWE Definition pages or through an
&lt;br&gt;alternate view where the relationships carry more meaning. For example,
&lt;br&gt;CWE will be supporting a Programming Concepts view as well as a 7
&lt;br&gt;Pernicious Kingdoms view starting with version 1.0. 
&lt;br&gt;&lt;br&gt;The 7 Pernicious Kingdom view will be based on the original 7PK paper
&lt;br&gt;and is focused primarily on usefulness to developers and grouping
&lt;br&gt;weaknesses by categories. The Programming Concepts view will be an
&lt;br&gt;expansion of sorts from the 7PK view which will incorporate the
&lt;br&gt;additional content that has been added to CWE. These views will
&lt;br&gt;accommodate navigation similar to previous drafts of CWE using
&lt;br&gt;categories such as pointer issues, mobile code issues, error handling,
&lt;br&gt;data handling, cleansing, comparison and canonicalization, time and
&lt;br&gt;state, temporary file issues, and channel and path errors. Different
&lt;br&gt;views allow for the organization of the content in the manner that
&lt;br&gt;makes the most sense for the intended audience of each view. 
&lt;br&gt;&lt;br&gt;The natural hierarchy as described above is the result of a
&lt;br&gt;reorganization of the draft 8 hierarchy. We focused more on
&lt;br&gt;abstractions of the core issues behind each weakness to try to unify
&lt;br&gt;the perspective throughout the natural hierarchy. This entails moving
&lt;br&gt;away from relationships based on weakness context, environment, or
&lt;br&gt;technologies. In draft 8 of CWE, for example, CWE-5 Misconfiguration:
&lt;br&gt;Data Transmission without Encryption is a child of CWE-4 J2EE
&lt;br&gt;Environment Issues. While this is a useful relationship, especially for
&lt;br&gt;a J2EE developer, CWE-4 is a technology specific grouping of CWE-5 and
&lt;br&gt;there may or may not be any relationship between CWE-5 and its siblings
&lt;br&gt;other than a common technology. In version 1.0 of CWE, an additional
&lt;br&gt;&amp;quot;ChildOf&amp;quot; relationship was added to CWE-5 relating it to CWE-319
&lt;br&gt;Plaintext Transmission of Sensitive Data because CWE-5 is a technology
&lt;br&gt;specific variant of the more abstract weakness, CWE-319. It is
&lt;br&gt;important to note that CWE-5 is still a &amp;quot;ChildOf&amp;quot; CWE-4. This
&lt;br&gt;relationship is maintained in a different &amp;quot;View&amp;quot;, another schema
&lt;br&gt;construct added for draft 9.
&lt;br&gt;&lt;br&gt;To further illustrate these changes, CWE-444 HTTP Request Smuggling was
&lt;br&gt;a child of CWE-442 Web Problems in draft 8. Once again, this
&lt;br&gt;relationship might be a useful way for a web developer to come across
&lt;br&gt;relevant problems, but it doesn't tell us very much about the more
&lt;br&gt;abstract issue behind CWE-444 nor does it give us any indication as to
&lt;br&gt;how CWE-444 is related to its siblings aside from web technologies. For
&lt;br&gt;draft 9, a relationship was added to CWE-444 making it a &amp;quot;ChildOf&amp;quot;
&lt;br&gt;CWE-436 Interpretation Conflict, which is more aligned with the
&lt;br&gt;fundamental problem behind CWE-444.
&lt;br&gt;&lt;br&gt;A hierarchy focused on abstraction can allow for more intuitive and
&lt;br&gt;consistent navigation of the CWE tree from top to bottom. This approach
&lt;br&gt;may be more useful to researchers, educators and coverage mapping for
&lt;br&gt;code analysis tool vendors. Organizing the weaknesses hierarchically by
&lt;br&gt;abstraction helps the CWE team identify gaps and inconsistencies in CWE
&lt;br&gt;and it also helps tool vendors identify gaps in their mappings. For
&lt;br&gt;example, duplicates CWE-132 Miscalculated Null Termination and CWE-170
&lt;br&gt;Improper Null Termination used to be in disjoint segments of the
&lt;br&gt;hierarchy. When reorganized by core weakness, they fell in the same
&lt;br&gt;location; thus identifying the content of each entry as duplicates was
&lt;br&gt;much more obvious. Furthermore, applying &amp;quot;Chains&amp;quot; and &amp;quot;Composites&amp;quot; to
&lt;br&gt;an abstraction-based hierarchy can be useful for identifying higher
&lt;br&gt;level trends in weakness occurrences, potential mitigation strategies
&lt;br&gt;and their impact, and is another useful mechanism for finding gaps in
&lt;br&gt;CWE coverage. In addition, these concepts have helped us to understand
&lt;br&gt;why classification has been such a difficult challenge in the past.
&lt;br&gt;&lt;br&gt;Another benefit of collocating similar core weaknesses is the ease of
&lt;br&gt;applying a consistent vocabulary across CWE. Weaknesses that had no
&lt;br&gt;relationships before are brought together and allow the CWE team to see
&lt;br&gt;inconspicuous relationships and trends. For example, CWE-696 Incorrect
&lt;br&gt;Behavior Order was created as a weakness class for several entries
&lt;br&gt;where the fundamental problem was performing operations in the
&lt;br&gt;incorrect sequence. The first level of children of CWE-696 under the
&lt;br&gt;natural hierarchy now read:
&lt;br&gt;&lt;br&gt;*	CWE-179 Incorrect Behavior Order: Early Validation
&lt;br&gt;*	CWE-408 Incorrect Behavior Order: Early Amplification
&lt;br&gt;*	CWE-551 Incorrect Behavior Order: Authorization Before Parsing
&lt;br&gt;and Canonicalization
&lt;br&gt;&lt;br&gt;As a result, when we peer into other views of CWE and come across these
&lt;br&gt;weaknesses, we can immediately identify what the core issue is.
&lt;br&gt;&lt;br&gt;The natural hierarchy view is simply one view meant to unify the
&lt;br&gt;weaknesses within CWE in a way that can be understood by a broad
&lt;br&gt;audience based on underlying factors of each weakness rather than the
&lt;br&gt;context in which the weakness occurs or how the weakness can be
&lt;br&gt;mitigated. By ignoring such variables as environment, consequence,
&lt;br&gt;mitigation, attacks, and relationship impact, we have been able to find
&lt;br&gt;the factors that make each weakness unique and canonical. Likewise, we
&lt;br&gt;have been able to identify gaps and create a more mature CWE model,
&lt;br&gt;have identified areas for further research, and laid the groundwork for
&lt;br&gt;a more solid understanding of the complexity of weaknesses and their
&lt;br&gt;impact. With such a foundation we can then start adding in the
&lt;br&gt;previously discounted variables to create a more complex and thorough
&lt;br&gt;understanding of issues caused by the existence of these weaknesses.
&lt;br&gt;&lt;br&gt;Any thoughts, suggestions or concerns are welcome, either to this
&lt;br&gt;thread or &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=18734670&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;cwe@...&lt;/a&gt;.
&lt;br&gt;&lt;br&gt;-Conor Harris
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/FW%3A-Natural-Hierarchy-email-tp18734670p18734670.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-18365850</id>
	<title>RE: Industry Analyst Coverage of CWE</title>
	<published>2008-07-09T09:40:26Z</published>
	<updated>2008-07-09T09:40:26Z</updated>
	<author>
		<name>McGovern, James F (HTSC, IT)</name>
	</author>
	<content type="html">&amp;nbsp;You typically start this process by filling out the briefing requests
&lt;br&gt;on each analyst site:
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://www.forrester.com/Briefing/Process&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.forrester.com/Briefing/Process&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://www.burtongroup.com/Contact/VendorBriefing.aspx&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.burtongroup.com/Contact/VendorBriefing.aspx&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://www.gartner.com/it/about/vbriefings_faq.jsp&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://www.gartner.com/it/about/vbriefings_faq.jsp&lt;/a&gt;&lt;br&gt;&lt;br&gt;-----Original Message-----
&lt;br&gt;From: Robert A. Martin [mailto:&lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=18365850&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;ramartin@...&lt;/a&gt;] 
&lt;br&gt;Sent: Wednesday, July 09, 2008 12:24 PM
&lt;br&gt;To: McGovern, James F (HTSC, IT); &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=18365850&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;cwe-research-list@...&lt;/a&gt;
&lt;br&gt;Subject: Re: Industry Analyst Coverage of CWE
&lt;br&gt;&lt;br&gt;Hi James,
&lt;br&gt;&lt;br&gt;That would be something we would be interested in doing but probably
&lt;br&gt;through direct discussion with specific interested individuals at each
&lt;br&gt;organization.
&lt;br&gt;&lt;br&gt;Anyone with suggestions on who to work with at these or other such
&lt;br&gt;groups or on ideas about how to educate them about CWE please feel free
&lt;br&gt;to contact me directly or through this list.
&lt;br&gt;&lt;br&gt;We know some of the appropriate people but would welcome suggestions and
&lt;br&gt;ideas.
&lt;br&gt;&lt;br&gt;Bob Martin
&lt;br&gt;CWE Project Leader
&lt;br&gt;&lt;br&gt;&lt;br&gt;At 11:57 AM -0400 7/9/08, McGovern, James F (HTSC, IT) wrote:
&lt;br&gt;&amp;gt; &amp;nbsp;As soon as the next version of CWE is released, is there an 
&lt;br&gt;&amp;gt;equivalent plan to communicate this to Gartner, Forrester and The
&lt;br&gt;Burton Group?
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;***********************************************************************
&lt;br&gt;&amp;gt;** This communication, including attachments, is for the exclusive use 
&lt;br&gt;&amp;gt;of addressee and may contain proprietary, confidential and/or 
&lt;br&gt;&amp;gt;privileged information. &amp;nbsp;If you are not the intended recipient, any 
&lt;br&gt;&amp;gt;use, copying, disclosure, dissemination or distribution is strictly 
&lt;br&gt;&amp;gt;prohibited. &amp;nbsp;If you are not the intended recipient, please notify the 
&lt;br&gt;&amp;gt;sender immediately by return e-mail, delete this communication and 
&lt;br&gt;&amp;gt;destroy all copies.
&lt;br&gt;&amp;gt;***********************************************************************
&lt;br&gt;&amp;gt;**
&lt;/div&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;*************************************************************************
&lt;br&gt;This communication, including attachments, is
&lt;br&gt;for the exclusive use of addressee and may contain proprietary,
&lt;br&gt;confidential and/or privileged information. &amp;nbsp;If you are not the intended
&lt;br&gt;recipient, any use, copying, disclosure, dissemination or distribution is
&lt;br&gt;strictly prohibited. &amp;nbsp;If you are not the intended recipient, please notify
&lt;br&gt;the sender immediately by return e-mail, delete this communication and
&lt;br&gt;destroy all copies.
&lt;br&gt;*************************************************************************
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Identifying-Perspective-Issues-in-CWE-tp18245971p18365850.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-18365481</id>
	<title>Re: Industry Analyst Coverage of CWE</title>
	<published>2008-07-09T09:24:24Z</published>
	<updated>2008-07-09T09:24:24Z</updated>
	<author>
		<name>Robert A. Martin</name>
	</author>
	<content type="html">Hi James,
&lt;br&gt;&lt;br&gt;That would be something we would be interested in doing but probably 
&lt;br&gt;through direct discussion with specific interested individuals at 
&lt;br&gt;each organization.
&lt;br&gt;&lt;br&gt;Anyone with suggestions on who to work with at these or other such 
&lt;br&gt;groups or on ideas about how to educate them about CWE please feel 
&lt;br&gt;free to contact me directly or through this list.
&lt;br&gt;&lt;br&gt;We know some of the appropriate people but would welcome suggestions and ideas.
&lt;br&gt;&lt;br&gt;Bob Martin
&lt;br&gt;CWE Project Leader
&lt;br&gt;&lt;br&gt;&lt;br&gt;At 11:57 AM -0400 7/9/08, McGovern, James F (HTSC, IT) wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; &amp;nbsp;As soon as the next version of CWE is released, is there an equivalent
&lt;br&gt;&amp;gt;plan to communicate this to Gartner, Forrester and The Burton Group?
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt;*************************************************************************
&lt;br&gt;&amp;gt;This communication, including attachments, is
&lt;br&gt;&amp;gt;for the exclusive use of addressee and may contain proprietary,
&lt;br&gt;&amp;gt;confidential and/or privileged information. &amp;nbsp;If you are not the intended
&lt;br&gt;&amp;gt;recipient, any use, copying, disclosure, dissemination or distribution is
&lt;br&gt;&amp;gt;strictly prohibited. &amp;nbsp;If you are not the intended recipient, please notify
&lt;br&gt;&amp;gt;the sender immediately by return e-mail, delete this communication and
&lt;br&gt;&amp;gt;destroy all copies.
&lt;br&gt;&amp;gt;*************************************************************************
&lt;br&gt;&lt;/div&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Identifying-Perspective-Issues-in-CWE-tp18245971p18365481.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-18364907</id>
	<title>Industry Analyst Coverage of CWE</title>
	<published>2008-07-09T08:57:59Z</published>
	<updated>2008-07-09T08:57:59Z</updated>
	<author>
		<name>McGovern, James F (HTSC, IT)</name>
	</author>
	<content type="html">&amp;nbsp;As soon as the next version of CWE is released, is there an equivalent
&lt;br&gt;plan to communicate this to Gartner, Forrester and The Burton Group?
&lt;br&gt;&lt;br&gt;&lt;br&gt;*************************************************************************
&lt;br&gt;This communication, including attachments, is
&lt;br&gt;for the exclusive use of addressee and may contain proprietary,
&lt;br&gt;confidential and/or privileged information. &amp;nbsp;If you are not the intended
&lt;br&gt;recipient, any use, copying, disclosure, dissemination or distribution is
&lt;br&gt;strictly prohibited. &amp;nbsp;If you are not the intended recipient, please notify
&lt;br&gt;the sender immediately by return e-mail, delete this communication and
&lt;br&gt;destroy all copies.
&lt;br&gt;*************************************************************************
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Identifying-Perspective-Issues-in-CWE-tp18245971p18364907.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-18329530</id>
	<title>Re: Suggestion of Repositioning CWE #244</title>
	<published>2008-07-07T17:11:42Z</published>
	<updated>2008-07-07T17:11:42Z</updated>
	<author>
		<name>Steven M. Christey-2</name>
	</author>
	<content type="html">On Thu, 3 Jul 2008, ljknews wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; At 3:08 PM -0400 7/3/08, koo wrote:
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; &amp;gt; We suggest that CWE #244, Failure to Clear Heap Memory Before Release,
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; It seems to me that it would be sufficient for the operating
&lt;br&gt;&amp;gt; system to clear the memory before reallocation to a process.
&lt;br&gt;&lt;br&gt;One thing that I try to do when thinking about classification within CWE
&lt;br&gt;is to separate the solution from the weakness itself. &amp;nbsp;Most weaknesses
&lt;br&gt;could have multiple solutions.
&lt;br&gt;&lt;br&gt;&amp;gt; Is there a separate item for clearing stack memory ? &amp;nbsp;That
&lt;br&gt;&amp;gt; would seem vulnerable in the same ways.
&lt;br&gt;&lt;br&gt;We don't have a CWE that's about stack memory.
&lt;br&gt;&lt;br&gt;But, this raises an abstraction question that we've been dealing with, and
&lt;br&gt;which I touched on in the fall of 2007.
&lt;br&gt;&lt;br&gt;The general question is: do we create an individual CWE for stack memory?
&lt;br&gt;How about the other resource types that were mentioned by Robert Seacord?
&lt;br&gt;&lt;br&gt;Both &amp;quot;failure to clear stack memory&amp;quot; and &amp;quot;failure to clear heap memory&amp;quot;
&lt;br&gt;are related to resources. &amp;nbsp;Their common parent is &amp;quot;memory,&amp;quot; which we
&lt;br&gt;currently think of as a fairly basic resource that's reasonable to cover
&lt;br&gt;in CWE. &amp;nbsp;So maybe there's a conceptual parent, &amp;quot;failure to clear memory.&amp;quot;
&lt;br&gt;Then you could go up another level, to the general concept of &amp;quot;resource&amp;quot;,
&lt;br&gt;i.e. &amp;quot;failure to clear resource&amp;quot; (which is basically a rephrasing of 404
&lt;br&gt;and/or 459).
&lt;br&gt;&lt;br&gt;This &amp;quot;resource-specific abstraction&amp;quot; happens in other places in CWE, for
&lt;br&gt;example CWE-122 (Heap-based buffer overflow) and CWE-121 (Stack-based
&lt;br&gt;buffer overflow), as well as the various descendants of CWE-552 Files or
&lt;br&gt;Directories Accessible to External Parties; each descendant covers a
&lt;br&gt;different type of file, such as a backup or log file.
&lt;br&gt;&lt;br&gt;The general issue is, how specific must we get in order to create CWEs?
&lt;br&gt;This was discussed in the fall. &amp;nbsp;A combinatorial explosion could result if
&lt;br&gt;we go too deep; we lose expressiveness if we're not specific enough.
&lt;br&gt;This problem is now less severe since we have abstraction levels (Class,
&lt;br&gt;Base, Variant) - we'll usually label resource-specific abstractions as
&lt;br&gt;variants, so these could be removed from various views that don't want to
&lt;br&gt;go that deep. &amp;nbsp;It might also be useful to label the &amp;quot;dimension&amp;quot; along
&lt;br&gt;which variants can occur, such as &amp;quot;resource-specific.&amp;quot;
&lt;br&gt;&lt;br&gt;If we have this type of data available, then we don't need to reach the
&lt;br&gt;same depth across all of CWE. &amp;nbsp;We could add new nodes on an &amp;quot;as-needed&amp;quot;
&lt;br&gt;basis if there is sufficient demand for it, and those nodes would exist in
&lt;br&gt;some views, but not others.
&lt;br&gt;&lt;br&gt;In this particular case, the question is - is there a need to create
&lt;br&gt;separate CWE entries for the failure to &amp;quot;clear&amp;quot; different types of memory,
&lt;br&gt;and/or the different types of resources in general?
&lt;br&gt;&lt;br&gt;- Steve
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Suggestion-of-Repositioning-CWE--244-tp18266404p18329530.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-18329319</id>
	<title>Re: Suggestion of Repositioning CWE #244</title>
	<published>2008-07-07T16:51:58Z</published>
	<updated>2008-07-07T16:51:58Z</updated>
	<author>
		<name>Steven M. Christey-2</name>
	</author>
	<content type="html">On Thu, 3 Jul 2008, koo wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; We suggest that CWE #244, Failure to Clear Heap Memory Before Release, also
&lt;br&gt;&amp;gt; be a child of CWE #226, Sensitive Information Uncleared Before Release.
&lt;br&gt;&amp;gt; #244 is just the specific case of (mis)using realloc() for sensitive
&lt;br&gt;&amp;gt; information.
&lt;br&gt;&lt;br&gt;This makes sense. &amp;nbsp;Pending further commentary from the researcher list, we
&lt;br&gt;will do this.
&lt;br&gt;&lt;br&gt;&amp;gt; They are both children of CWE #633, Weaknesses that Affect Memory, but
&lt;br&gt;&amp;gt; don't have any other connection in the CWE that we can see.
&lt;br&gt;&lt;br&gt;This is a good example of the kind of &amp;quot;cleanup&amp;quot; and mapping task that we
&lt;br&gt;are hoping to partially address with improved mapping guidance and
&lt;br&gt;organizational views such as the natural hierarchy. &amp;nbsp;We hope that the
&lt;br&gt;natural hierarchy would provide a mechanism for more easily finding these
&lt;br&gt;relationships.
&lt;br&gt;&lt;br&gt;&amp;gt; For that matter we suggest #244 NOT be a child of #404, Improper Resource
&lt;br&gt;&amp;gt; Shutdown or Release. &amp;nbsp;#404 is about freeing what you allocate, unlocking
&lt;br&gt;&amp;gt; what you lock, etc. - it can lead to memory leak or resource leak.
&lt;br&gt;&lt;br&gt;We intend for 404 to be a pretty high-level entry that covers any
&lt;br&gt;situation in which the developer does not properly &amp;quot;get rid of&amp;quot; resources
&lt;br&gt;such as memory, locks, files, processes, and connections. &amp;nbsp;Note how this
&lt;br&gt;is separable from the *consequences* of those actions, such as information
&lt;br&gt;leaks or resource consumption. It might be good for us to modify 404 to
&lt;br&gt;better emphasize how we view it.
&lt;br&gt;&lt;br&gt;&amp;gt; #244 talks about sensitive information being exposed because it is not
&lt;br&gt;&amp;gt; erased from a resource before being released.
&lt;br&gt;&lt;br&gt;Here, #244 suffers a little bit from a perspective problem.
&lt;br&gt;Specifically, it is currently written to emphasize the information leak,
&lt;br&gt;instead of the root cause of using memory allocation routines that might
&lt;br&gt;release memory back to the OS in an uncontrolled fashion.
&lt;br&gt;&lt;br&gt;So, the descriptive text for 244 would need to be modified a bit to &amp;quot;fix&amp;quot;
&lt;br&gt;the perspective to focus more on the weakness.
&lt;br&gt;&lt;br&gt;Now, about the relationships between 226, 244, and 404.
&lt;br&gt;&lt;br&gt;As you observed, 226 and 244 don't share any parents besides CWE-633,
&lt;br&gt;Weaknesses that Affect Memory. &amp;nbsp;226 is currently classified under CWE-200,
&lt;br&gt;Information Leak. &amp;nbsp;But &amp;quot;information leak&amp;quot; is usually a consequence (i.e.,
&lt;br&gt;resultant) - so it's typically the final link of a chain. &amp;nbsp;While we
&lt;br&gt;currently say that 226 is a ChildOf information leak, it would be better
&lt;br&gt;represented as a CanPrecede relationship.
&lt;br&gt;&lt;br&gt;We then face the question of where 226 fits under the natural hierarchy,
&lt;br&gt;since neither of its two parents are &amp;quot;natural parents:&amp;quot; 630 is actually a
&lt;br&gt;view, and 200 is a chaining relationship, not a parent/child relationship.
&lt;br&gt;&lt;br&gt;We still think that 244 belongs somewhere under 404, probably as a
&lt;br&gt;grandchild through its ChildOf relationship with 226 (i.e. 244 as a
&lt;br&gt;ChildOf 226, and 226 as a ChildOf 404). &amp;nbsp;404 itself is a child of 664,
&lt;br&gt;Insufficient Control of a Resource Through its Lifetime, which we view as
&lt;br&gt;a likely &amp;quot;pillar&amp;quot; (top-level node) of the natural hierarchy.
&lt;br&gt;&lt;br&gt;There is another perspective issue to consider. &amp;nbsp;Some might argue that
&lt;br&gt;244, which is specifically about using realloc() to resize buffers, should
&lt;br&gt;fall under CWE-227, API Abuse. &amp;nbsp;This is how it was categorized in Seven
&lt;br&gt;Pernicious Kingdoms, for example. &amp;nbsp;CWE 1.0 will support a Seven Pernicious
&lt;br&gt;Kingroms view (CWE-700, specifically) that will preserve this
&lt;br&gt;relationship. &amp;nbsp;However, we are also trying to figure out how to clearly
&lt;br&gt;define CWE-227 in a way that doesn't effectively include everything that's
&lt;br&gt;a weakness - after all, writing code that allows writing outside of a
&lt;br&gt;memory buffer could distincly be counted as &amp;quot;API abuse&amp;quot; as well. &amp;nbsp;We think
&lt;br&gt;that CWE-227 has a place in the natural hierarchy, but that means that 244
&lt;br&gt;would have multiple natural parents. &amp;nbsp;Currently, we are allowing this to
&lt;br&gt;happen - so &amp;quot;hierarchy&amp;quot; is currently a misnomer.
&lt;br&gt;&lt;br&gt;I hope this addresses your questions and helps to illuminate some of the
&lt;br&gt;issues we face leading up to CWE 1.0.
&lt;br&gt;&lt;br&gt;- Steve
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Suggestion-of-Repositioning-CWE--244-tp18266404p18329319.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-18317801</id>
	<title>Re: Suggestion of Repositioning CWE #244</title>
	<published>2008-07-07T07:15:10Z</published>
	<updated>2008-07-07T07:15:10Z</updated>
	<author>
		<name>Robert C. Seacord</name>
	</author>
	<content type="html">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD HTML 4.01 Transitional//EN&quot;&gt;
&lt;html&gt;
&lt;head&gt;
  &lt;meta content=&quot;text/html;charset=ISO-8859-15&quot; http-equiv=&quot;Content-Type&quot;&gt;
&lt;/head&gt;
&lt;body bgcolor=&quot;#ffffff&quot; text=&quot;#000000&quot;&gt;
&lt;br&gt;
Pascal &amp;amp; everyone,&lt;br&gt;
&lt;br&gt;
Here is the recommendation we wrote for this rule for the C programming
language:&lt;br&gt;
&lt;br&gt;
&lt;span class=&quot;topBarDiv fontSizeSmaller&quot;&gt;&lt;a href=&quot;https://www.securecoding.cert.org/confluence/display/seccode/MEM03-A.+Clear+sensitive+information+stored+in+reusable+resources+returned+for+reuse&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;MEM03-A.
Clear sensitive information stored in reusable resources returned for
reuse&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Besides the neat use if alliteration, we list the following examples of
reusable resources:&lt;/span&gt;&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;dynamically allocated memory&lt;/li&gt;
  &lt;li&gt;statically allocated memory&lt;/li&gt;
  &lt;li&gt;automatically allocated (stack) memory&lt;/li&gt;
  &lt;li&gt;memory caches&lt;/li&gt;
  &lt;li&gt;disk&lt;/li&gt;
  &lt;li&gt;disk caches&lt;/li&gt;
&lt;/ul&gt;
thanks,&lt;br&gt;
rCs&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;blockquote cite=&quot;mid:48720C9E.80106@cerias.net&quot; type=&quot;cite&quot;&gt;
  &lt;pre wrap=&quot;&quot;&gt;ljknews wrote:
  &lt;/pre&gt;
  &lt;blockquote type=&quot;cite&quot;&gt;
    &lt;pre wrap=&quot;&quot;&gt;At 3:08 PM -0400 7/3/08, koo wrote:

    &lt;/pre&gt;
    &lt;blockquote type=&quot;cite&quot;&gt;
      &lt;pre wrap=&quot;&quot;&gt;We suggest that CWE #244, Failure to Clear Heap Memory Before Release,
      &lt;/pre&gt;
    &lt;/blockquote&gt;
    &lt;pre wrap=&quot;&quot;&gt;It seems to me that it would be sufficient for the operating
system to clear the memory before reallocation to a process.
Why be concerned about the state when no process can access
it ?

    &lt;/pre&gt;
  &lt;/blockquote&gt;
  &lt;pre wrap=&quot;&quot;&gt;&lt;!----&gt;Can you, or should you, as the paranoid secure programmer of an
application, trust the OS to do wipe heap memory before it passes the
memory on to another process or even uses it itself?

  &lt;/pre&gt;
  &lt;blockquote type=&quot;cite&quot;&gt;
    &lt;pre wrap=&quot;&quot;&gt;Is there a separate item for clearing stack memory ?  That
would seem vulnerable in the same way
    &lt;/pre&gt;
  &lt;/blockquote&gt;
  &lt;pre wrap=&quot;&quot;&gt;&lt;!----&gt;
There probably should be one, c.f. GCC Mudflap Pointer Debugging, the
-wipe-stack option at &lt;a class=&quot;moz-txt-link-freetext&quot; href=&quot;http://gcc.gnu.org/wiki/Mudflap_Pointer_Debugging&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gcc.gnu.org/wiki/Mudflap_Pointer_Debugging&lt;/a&gt;

Koo's suggestion makes sense to me (moving 244).

Cheers,
Pascal
  &lt;/pre&gt;
&lt;/blockquote&gt;
&lt;br&gt;
&lt;br&gt;
&lt;pre class=&quot;moz-signature&quot; cols=&quot;72&quot;&gt;-- 
Robert C. Seacord
Senior Vulnerability Analyst
CERT/CC 

Work: 412-268-7608
FAX: 412-268-6989&lt;/pre&gt;
&lt;/body&gt;
&lt;/html&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Suggestion-of-Repositioning-CWE--244-tp18266404p18317801.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-18316228</id>
	<title>Re: Suggestion of Repositioning CWE #244</title>
	<published>2008-07-07T05:59:09Z</published>
	<updated>2008-07-07T05:59:09Z</updated>
	<author>
		<name>ljknews</name>
	</author>
	<content type="html">At 8:31 AM -0400 7/7/08, Pascal Meunier wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; ljknews wrote:
&lt;br&gt;&amp;gt;&amp;gt; At 3:08 PM -0400 7/3/08, koo wrote:
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt;&amp;gt; We suggest that CWE #244, Failure to Clear Heap Memory Before Release,
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; It seems to me that it would be sufficient for the operating
&lt;br&gt;&amp;gt;&amp;gt; system to clear the memory before reallocation to a process.
&lt;br&gt;&amp;gt;&amp;gt; Why be concerned about the state when no process can access
&lt;br&gt;&amp;gt;&amp;gt; it ?
&lt;br&gt;&amp;gt;&amp;gt; 
&lt;br&gt;&amp;gt; Can you, or should you, as the paranoid secure programmer of an
&lt;br&gt;&amp;gt; application, trust the OS to do wipe heap memory before it passes the
&lt;br&gt;&amp;gt; memory on to another process or even uses it itself?
&lt;/div&gt;&lt;br&gt;On the operating system I use, absolutely.
&lt;br&gt;-- 
&lt;br&gt;Larry Kilgallen
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Suggestion-of-Repositioning-CWE--244-tp18266404p18316228.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-18315570</id>
	<title>Re: Suggestion of Repositioning CWE #244</title>
	<published>2008-07-07T05:28:59Z</published>
	<updated>2008-07-07T05:28:59Z</updated>
	<author>
		<name>Pascal Meunier-3</name>
	</author>
	<content type="html">ljknews wrote:
&lt;br&gt;&amp;gt; At 3:08 PM -0400 7/3/08, koo wrote:
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt;&amp;gt; We suggest that CWE #244, Failure to Clear Heap Memory Before Release,
&lt;br&gt;&amp;gt; 
&lt;br&gt;&amp;gt; It seems to me that it would be sufficient for the operating
&lt;br&gt;&amp;gt; system to clear the memory before reallocation to a process.
&lt;br&gt;&amp;gt; Why be concerned about the state when no process can access
&lt;br&gt;&amp;gt; it ?
&lt;br&gt;&amp;gt; 
&lt;br&gt;Can you, or should you, as the paranoid secure programmer of an
&lt;br&gt;application, trust the OS to do wipe heap memory before it passes the
&lt;br&gt;memory on to another process or even uses it itself?
&lt;br&gt;&lt;br&gt;&amp;gt; Is there a separate item for clearing stack memory ? &amp;nbsp;That
&lt;br&gt;&amp;gt; would seem vulnerable in the same way
&lt;br&gt;&lt;br&gt;There probably should be one, c.f. GCC Mudflap Pointer Debugging, the
&lt;br&gt;-wipe-stack option at &lt;a href=&quot;http://gcc.gnu.org/wiki/Mudflap_Pointer_Debugging&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://gcc.gnu.org/wiki/Mudflap_Pointer_Debugging&lt;/a&gt;&lt;br&gt;&lt;br&gt;Koo's suggestion makes sense to me (moving 244).
&lt;br&gt;&lt;br&gt;Cheers,
&lt;br&gt;Pascal
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Suggestion-of-Repositioning-CWE--244-tp18266404p18315570.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-18267915</id>
	<title>Re: Suggestion of Repositioning CWE #244</title>
	<published>2008-07-03T13:37:46Z</published>
	<updated>2008-07-03T13:37:46Z</updated>
	<author>
		<name>ljknews</name>
	</author>
	<content type="html">At 3:08 PM -0400 7/3/08, koo wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; We suggest that CWE #244, Failure to Clear Heap Memory Before Release,
&lt;br&gt;&lt;br&gt;It seems to me that it would be sufficient for the operating
&lt;br&gt;system to clear the memory before reallocation to a process.
&lt;br&gt;Why be concerned about the state when no process can access
&lt;br&gt;it ?
&lt;br&gt;&lt;br&gt;Is there a separate item for clearing stack memory ? &amp;nbsp;That
&lt;br&gt;would seem vulnerable in the same ways.
&lt;br&gt;-- 
&lt;br&gt;Larry Kilgallen
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Suggestion-of-Repositioning-CWE--244-tp18266404p18267915.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-18266404</id>
	<title>Suggestion of Repositioning CWE #244</title>
	<published>2008-07-03T12:08:50Z</published>
	<updated>2008-07-03T12:08:50Z</updated>
	<author>
		<name>Michael Koo</name>
	</author>
	<content type="html">&lt;html&gt;

&lt;head&gt;
&lt;META HTTP-EQUIV=&quot;Content-Type&quot; CONTENT=&quot;text/html; charset=us-ascii&quot;&gt;


&lt;meta name=Generator content=&quot;Microsoft Word 10 (filtered)&quot;&gt;



&lt;/head&gt;

&lt;body lang=EN-US link=blue vlink=purple&gt;

&lt;div class=Section1&gt;

&lt;p class=MsoNormal style='text-autospace:none'&gt;&lt;font size=2 face=&quot;Courier New&quot;&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Courier New&quot;'&gt;We suggest that CWE #244,
Failure to Clear Heap Memory Before Release, also be a child of CWE #226,
Sensitive Information Uncleared Before Release.&amp;nbsp; #244 is just the specific
case of (mis)using realloc() for sensitive information.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal style='text-autospace:none'&gt;&lt;font size=2 face=&quot;Courier New&quot;&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Courier New&quot;'&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal style='text-autospace:none'&gt;&lt;font size=2 face=&quot;Courier New&quot;&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Courier New&quot;'&gt;They are both children of
CWE #633, Weaknesses that Affect Memory, but don't have any other connection in
the CWE that we can see.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal style='text-autospace:none'&gt;&lt;font size=2 face=&quot;Courier New&quot;&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Courier New&quot;'&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal style='text-autospace:none'&gt;&lt;font size=2 face=&quot;Courier New&quot;&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Courier New&quot;'&gt;For that matter we suggest
#244 NOT be a child of #404, Improper Resource Shutdown or Release.&amp;nbsp; #404
is about freeing what you allocate, unlocking what you lock, etc. - it can lead
to memory leak or resource leak.&amp;nbsp; #244 talks about sensitive information being
exposed because it is not erased from a resource before being released.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal style='text-autospace:none'&gt;&lt;font size=2 face=&quot;Courier New&quot;&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Courier New&quot;'&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal style='text-autospace:none'&gt;&lt;font size=2 face=&quot;Courier New&quot;&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Courier New&quot;'&gt;For your convenience, here
are the URLs and descriptions&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal style='text-autospace:none'&gt;&lt;font size=2 face=&quot;Courier New&quot;&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Courier New&quot;'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href=&quot;http://cwe.mitre.org/data/definitions/244.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/data/definitions/244.html&lt;/a&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal style='text-autospace:none'&gt;&lt;font size=2 face=&quot;Courier New&quot;&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Courier New&quot;'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
Using realloc() to resize buffers that store sensitive&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal style='text-autospace:none'&gt;&lt;font size=2 face=&quot;Courier New&quot;&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Courier New&quot;'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
information can leave the sensitive information exposed to&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal style='text-autospace:none'&gt;&lt;font size=2 face=&quot;Courier New&quot;&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Courier New&quot;'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
attack, because it is not removed from memory.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal style='text-autospace:none'&gt;&lt;font size=2 face=&quot;Courier New&quot;&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Courier New&quot;'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href=&quot;http://cwe.mitre.org/data/definitions/226.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/data/definitions/226.html&lt;/a&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal style='text-autospace:none'&gt;&lt;font size=2 face=&quot;Courier New&quot;&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Courier New&quot;'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
The software does not fully clear previously used information in&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal style='text-autospace:none'&gt;&lt;font size=2 face=&quot;Courier New&quot;&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Courier New&quot;'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
a data structure, file, or other resource, before making that&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal style='text-autospace:none'&gt;&lt;font size=2 face=&quot;Courier New&quot;&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Courier New&quot;'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
resource available to a party in another control sphere.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal style='text-autospace:none'&gt;&lt;font size=2 face=&quot;Courier New&quot;&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Courier New&quot;'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href=&quot;http://cwe.mitre.org/data/definitions/404.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/data/definitions/404.html&lt;/a&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal style='text-autospace:none'&gt;&lt;font size=2 face=&quot;Courier New&quot;&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Courier New&quot;'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
The program fails to release - or incorrectly releases - a&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal style='text-autospace:none'&gt;&lt;font size=2 face=&quot;Courier New&quot;&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Courier New&quot;'&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
system resource before it is made available for re-use.&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal style='text-autospace:none'&gt;&lt;font size=2 face=&quot;Courier New&quot;&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Courier New&quot;'&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal style='text-autospace:none'&gt;&lt;font size=2 face=&quot;Courier New&quot;&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Courier New&quot;'&gt;&amp;nbsp;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal style='text-autospace:none'&gt;&lt;font size=2 face=&quot;Courier New&quot;&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Courier New&quot;'&gt;Michael Koo &lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p class=MsoNormal style='text-autospace:none'&gt;&lt;font size=2 face=&quot;Courier New&quot;&gt;&lt;span style='font-size:10.0pt;font-family:&quot;Courier New&quot;'&gt;on Behalf of SAMATE Team&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;

&lt;/div&gt;

&lt;/body&gt;

&lt;/html&gt;
</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Suggestion-of-Repositioning-CWE--244-tp18266404p18266404.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-18245971</id>
	<title>Identifying Perspective Issues in CWE</title>
	<published>2008-07-02T13:22:08Z</published>
	<updated>2008-07-02T13:22:08Z</updated>
	<author>
		<name>Steven M. Christey-2</name>
	</author>
	<content type="html">All,
&lt;br&gt;&lt;br&gt;As we've been developing the natural hierarchy, we've started paying
&lt;br&gt;more attention to the problem in which CWE supports multiple different
&lt;br&gt;perspectives. &amp;nbsp;This is posing challenges for developing the natural
&lt;br&gt;hierarchy, but it is also reflected in how tools map to CWE.
&lt;br&gt;&lt;br&gt;The purpose of this message is to raise awareness about these
&lt;br&gt;challenges, and to solicit feedback from CWE researchers on ways of
&lt;br&gt;handling these.
&lt;br&gt;&lt;br&gt;Here's a live example to work with. &amp;nbsp;A fairly well-known research team
&lt;br&gt;called Security Reason recently released an advisory that maps to a
&lt;br&gt;CWE number:
&lt;br&gt;&lt;br&gt;&amp;nbsp; CVE-2008-2665
&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-2665&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-2665&lt;/a&gt;&lt;br&gt;&lt;br&gt;&amp;nbsp; PHP 5.2.6 posix_access() (posix ext) safe_mode bypass
&lt;br&gt;&amp;nbsp; URL:&lt;a href=&quot;http://securityreason.com/achievement_securityalert/54&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://securityreason.com/achievement_securityalert/54&lt;/a&gt;&lt;br&gt;&lt;br&gt;In short, PHP's safe mode feature is a protection mechanism. &amp;nbsp;It is
&lt;br&gt;can limit which OS resources can be accessed by a PHP application,
&lt;br&gt;such as files or potentially dangerous functions. &amp;nbsp;The PHP interpreter
&lt;br&gt;uses an incorrect order of behaviors related to canonicalization,
&lt;br&gt;causing its safe mode check to be insufficient. &amp;nbsp;This could allow an
&lt;br&gt;attacker to conduct path traversal attacks against applications.
&lt;br&gt;&lt;br&gt;Here, Security Reason mapped to CWE-264, which is a Category for
&lt;br&gt;&amp;quot;Permissions, Privileges, and Access Controls.&amp;quot; &amp;nbsp;They presumably did
&lt;br&gt;this mapping because of the emphasis on bypassing safe mode - or,
&lt;br&gt;because it's in the NVD Slice, which Bob Martin and I have been
&lt;br&gt;advocating as a reasonable mapping system. &amp;nbsp;At any rate, the &amp;quot;safe
&lt;br&gt;mode&amp;quot; functionality is the LOCATION of the issue - a protection
&lt;br&gt;mechanism intended to provide access control. &amp;nbsp;It is not really
&lt;br&gt;talking about WHAT the issue actually is.
&lt;br&gt;&lt;br&gt;Many people probably would have mapped this same issue to CWE-22 for
&lt;br&gt;path traversal, which is the ultimate consequence. &amp;nbsp;(For those who are
&lt;br&gt;interested in chains, notice how path traversal is the end link in
&lt;br&gt;this case.)
&lt;br&gt;&lt;br&gt;Alternately, you could map to the more generic &amp;quot;protection mechanism
&lt;br&gt;failure&amp;quot; (CWE-693), a new entry, which might be regarded as a
&lt;br&gt;&amp;quot;property of the consequence,&amp;quot; or alternately, an intermediate link in
&lt;br&gt;a chain.
&lt;br&gt;&lt;br&gt;Then there's another weakness that people often call the &amp;quot;root cause.&amp;quot;
&lt;br&gt;It appears that some inputs are checked against safe mode, but then
&lt;br&gt;those inputs are later canonicalized in a way that generates a result
&lt;br&gt;that bypasses safe mode. &amp;nbsp;This is CWE-180, &amp;quot;Incorrect Behavior Order:
&lt;br&gt;Validate Before Canonicalize.&amp;quot; &amp;nbsp;This entry's perspective is largely
&lt;br&gt;based on &amp;quot;code properties&amp;quot; - i.e., it basically involves properties of
&lt;br&gt;code that are effectively independent of the types of security
&lt;br&gt;problems they introduce (Consider CWE-227, API Abuse, as another
&lt;br&gt;example of an entry focused on code properties. &amp;nbsp;The implications of
&lt;br&gt;the API abuse will vary widely depending on the functionality and
&lt;br&gt;assumptions of the API).
&lt;br&gt;&lt;br&gt;So, we have at least 4 potential CWEs that this issue could be mapped
&lt;br&gt;to, because each CWE is written from different perspectives, or
&lt;br&gt;applies to different parts of the chain. &amp;nbsp;This should have obvious
&lt;br&gt;implications for understanding tool capabilities. &amp;nbsp;If one tool maps to
&lt;br&gt;CWE-x, and another tool maps to CWE-y, then it will appear like two
&lt;br&gt;unrelated problems are being covered, when they might just be
&lt;br&gt;different pieces of the same problem.
&lt;br&gt;&lt;br&gt;The question becomes, which mapping should tool vendors or researchers
&lt;br&gt;use, and in which context? &amp;nbsp;Ideally, we would like mapping to be
&lt;br&gt;repeatable, i.e. independent of who's doing the mapping.
&lt;br&gt;&lt;br&gt;Should CWE get rid of CWE-264 entirely, since it's a category?
&lt;br&gt;Absolutely not! &amp;nbsp;It's a very useful way to group things in a way that
&lt;br&gt;reflects how humans think, and essential for some views. &amp;nbsp;And in the
&lt;br&gt;CVE/NVD world where you don't have much information, and you only want
&lt;br&gt;a couple dozen CWE's to map to, it serves its purpose well. &amp;nbsp;But,
&lt;br&gt;neither does CWE-264 belong in the natural hierarchy, because it's not
&lt;br&gt;about a specific type of weakness. &amp;nbsp;So, we're moving it out of the
&lt;br&gt;natural hierarchy (along with other categories), into a new view that
&lt;br&gt;we're informally referring to as a &amp;quot;programming concepts&amp;quot; view.
&lt;br&gt;&lt;br&gt;What about defining guidelines that would map to CWE-22 (path
&lt;br&gt;traversal)? &amp;nbsp;This is probably how most people would map these days.
&lt;br&gt;One could argue that CWE-22 should only be applied in cases where
&lt;br&gt;there's a failure to even TRY to prevent '..' and related sequences.
&lt;br&gt;In this specific case though, in my personal opinion, the most
&lt;br&gt;appropriate mapping is CWE-180, the root cause.
&lt;br&gt;&lt;br&gt;So - even if we establish mapping guidelines that say &amp;quot;stay away from
&lt;br&gt;categories,&amp;quot; a mapper would still be looking at a couple different
&lt;br&gt;weaknesses. &amp;nbsp;If we suggest: &amp;quot;stay away from categories AND
&lt;br&gt;consequences,&amp;quot; then the mapper would (hopefully) arrive at CWE-180 as
&lt;br&gt;well. &amp;nbsp;This assumes that the person doing the mapping is following
&lt;br&gt;these guidelines, however - which in practice doesn't always happen.
&lt;br&gt;&lt;br&gt;Suggesting that a mapper should &amp;quot;find the root cause&amp;quot; might be more
&lt;br&gt;useful, but that would require a certain mindset that not all mappers
&lt;br&gt;are familiar with, especially if they conduct application
&lt;br&gt;vulnerability research. &amp;nbsp;In addition, tools aren't necessarily focused
&lt;br&gt;on root causes. &amp;nbsp;If we go in this direction, then we might want to
&lt;br&gt;actively discourage mapping to weaknesses that are solely (or
&lt;br&gt;primarily) about consequences, such as NULL pointer dereferences.
&lt;br&gt;&lt;br&gt;Then there's another possible guideline - &amp;quot;map to everything that
&lt;br&gt;matches.&amp;quot; &amp;nbsp;This has certain strengths and limitations. &amp;nbsp;It would
&lt;br&gt;effectively support audiences with multiple perspectives, so it would
&lt;br&gt;be useful for people to understand the general contents of a single
&lt;br&gt;tool or repository. &amp;nbsp;But it probably wouldn't work well for a deep
&lt;br&gt;analysis of multiple tools.
&lt;br&gt;&lt;br&gt;The issues I've discussed are illustrative; I don't expect us to come
&lt;br&gt;up with any quick and easy answers.
&lt;br&gt;&lt;br&gt;But, now that we're more specifically aware that we have these perspective
&lt;br&gt;challenges, we are working on identifying and labeling the different
&lt;br&gt;perspectives that are currently being used in CWE. &amp;nbsp;We are currently
&lt;br&gt;examining various tool repositories to provide real-world examples for us
&lt;br&gt;to work with. &amp;nbsp;This effort won't be complete for the release of CWE 1.0,
&lt;br&gt;but I'd like to be able to describe the problem in an understandable way.
&lt;br&gt;&lt;br&gt;Any suggestions or concerns are more than welcome, whether to this list or
&lt;br&gt;to &lt;a href=&quot;http://old.nabble.com/user/SendEmail.jtp?type=post&amp;post=18245971&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;cwe@...&lt;/a&gt;.
&lt;br&gt;&lt;br&gt;- Steve
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Identifying-Perspective-Issues-in-CWE-tp18245971p18245971.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-18220461</id>
	<title>Upcoming plans for CWE 1.0</title>
	<published>2008-07-01T09:45:42Z</published>
	<updated>2008-07-01T09:45:42Z</updated>
	<author>
		<name>Steven M. Christey-2</name>
	</author>
	<content type="html">All,
&lt;br&gt;&lt;br&gt;MITRE plans to release CWE 1.0 sometime in August. &amp;nbsp;Here is a summary
&lt;br&gt;of our main goals for that release.
&lt;br&gt;&lt;br&gt;1) Finish existing systemic changes. &amp;nbsp;We want CWE 1.0 to represent a
&lt;br&gt;&amp;nbsp; &amp;nbsp;stable point in CWE's development, which means finalizing the
&lt;br&gt;&amp;nbsp; &amp;nbsp;systemic changes that we've been making over the past year or two.
&lt;br&gt;&amp;nbsp; &amp;nbsp;For this, we are de-prioritizing general &amp;quot;content maintenance&amp;quot; -
&lt;br&gt;&amp;nbsp; &amp;nbsp;i.e., localized modification of individual entries - except as
&lt;br&gt;&amp;nbsp; &amp;nbsp;those modifications might relate to the systemic changes. &amp;nbsp;After
&lt;br&gt;&amp;nbsp; &amp;nbsp;CWE 1.0 is released, we plan to move more into a content
&lt;br&gt;&amp;nbsp; &amp;nbsp;development and refinement mode, in which there will be greater
&lt;br&gt;&amp;nbsp; &amp;nbsp;emphasis on accuracy and completeness of individual entries.
&lt;br&gt;&lt;br&gt;2) Stable schema. &amp;nbsp;We have been making significant schema changes over
&lt;br&gt;&amp;nbsp; &amp;nbsp;the past year, primarily to support our development of views, as
&lt;br&gt;&amp;nbsp; &amp;nbsp;well as the needs of new stakeholders. &amp;nbsp;Our primary goal for CWE
&lt;br&gt;&amp;nbsp; &amp;nbsp;1.0 is to have the schema be stable. &amp;nbsp;We are conducting an internal
&lt;br&gt;&amp;nbsp; &amp;nbsp;review and have outlined the major limitations that still need to
&lt;br&gt;&amp;nbsp; &amp;nbsp;be addressed.
&lt;br&gt;&lt;br&gt;3) Viable views. &amp;nbsp;We have been developing the view concept and
&lt;br&gt;&amp;nbsp; &amp;nbsp;implementation for almost a year now, and we think we finally have
&lt;br&gt;&amp;nbsp; &amp;nbsp;a handle on how we want to support them. &amp;nbsp;So CWE 1.0 will have
&lt;br&gt;&amp;nbsp; &amp;nbsp;multiple views that support different use-cases and stakeholders,
&lt;br&gt;&amp;nbsp; &amp;nbsp;and the schema infrastructure will be in place to support adding
&lt;br&gt;&amp;nbsp; &amp;nbsp;more views without requiring schema modifications.
&lt;br&gt;&lt;br&gt;4) Refinement of the Natural Hierarchy. &amp;nbsp;We have come to realize that
&lt;br&gt;&amp;nbsp; &amp;nbsp;we need to do a better job of communicating what we're trying to
&lt;br&gt;&amp;nbsp; &amp;nbsp;accomplish with the Natural Hierarchy (CWE-1000). &amp;nbsp;In short, we are
&lt;br&gt;&amp;nbsp; &amp;nbsp;attempting to build a classification scheme based on inherent
&lt;br&gt;&amp;nbsp; &amp;nbsp;features of weaknesses of large portions of CWE weaknesses, and
&lt;br&gt;&amp;nbsp; &amp;nbsp;their inter-relationships. &amp;nbsp;My personal hope is that it will take
&lt;br&gt;&amp;nbsp; &amp;nbsp;Seven Pernicious Kingdoms and CLASP one step further. &amp;nbsp;All past
&lt;br&gt;&amp;nbsp; &amp;nbsp;versions of CWE have had multiple ways of grouping weaknesses
&lt;br&gt;&amp;nbsp; &amp;nbsp;together that would lead to difficulty or inconsistency in
&lt;br&gt;&amp;nbsp; &amp;nbsp;performing mappings. &amp;nbsp;It would also be difficult to infer where
&lt;br&gt;&amp;nbsp; &amp;nbsp;knowledge gaps existed. &amp;nbsp;The MITRE team has found that the ongoing
&lt;br&gt;&amp;nbsp; &amp;nbsp;development of the natural hierarchy has helped us significantly in
&lt;br&gt;&amp;nbsp; &amp;nbsp;understanding much of what we have in CWE, and why. &amp;nbsp;Academic
&lt;br&gt;&amp;nbsp; &amp;nbsp;researchers might be especially interested in its development.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;Ironically, the natural hierarchy might not seem so &amp;quot;natural&amp;quot; to
&lt;br&gt;&amp;nbsp; &amp;nbsp;regular developers; so, we need to actively support the developer
&lt;br&gt;&amp;nbsp; &amp;nbsp;view. &amp;nbsp;This is one major challenge that we face.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;In the coming weeks, we will be releasing a more detailed white
&lt;br&gt;&amp;nbsp; &amp;nbsp;paper to the community on MITRE's goals for the natural hierarchy.
&lt;br&gt;&amp;nbsp; &amp;nbsp;Traces of it exist in CWE Draft 9, but it is far from complete (and
&lt;br&gt;&amp;nbsp; &amp;nbsp;we've since made significant inroads in our 1.0 development). &amp;nbsp;To
&lt;br&gt;&amp;nbsp; &amp;nbsp;get an idea of where we are headed, see: CWE-664 (&amp;quot;Insufficient
&lt;br&gt;&amp;nbsp; &amp;nbsp;Control of a Resource Through its Lifetime&amp;quot;), CWE-682 (&amp;quot;Incorrect
&lt;br&gt;&amp;nbsp; &amp;nbsp;Calculation&amp;quot;), and CWE-691 (&amp;quot;Insufficient Control Flow
&lt;br&gt;&amp;nbsp; &amp;nbsp;Management&amp;quot;). &amp;nbsp;If you are particularly interested in this effort,
&lt;br&gt;&amp;nbsp; &amp;nbsp;then contact us offline and we will give you our current status.
&lt;br&gt;&lt;br&gt;5) More active community engagement. &amp;nbsp;Leading up to CWE 1.0, we will
&lt;br&gt;&amp;nbsp; &amp;nbsp;be actively engaging community members on important issues for CWE.
&lt;br&gt;&amp;nbsp; &amp;nbsp;This discussion list will be one of the main places in which we
&lt;br&gt;&amp;nbsp; &amp;nbsp;solicit feedback. &amp;nbsp;So, this summer is the time to voice any
&lt;br&gt;&amp;nbsp; &amp;nbsp;concerns you have.
&lt;br&gt;&lt;br&gt;6) Resolution of outstanding issues. &amp;nbsp;In the fall of 2007, we brought
&lt;br&gt;&amp;nbsp; &amp;nbsp;up various issues related to CWE content maintenance, including
&lt;br&gt;&amp;nbsp; &amp;nbsp;which types of issues we should include, and what level of
&lt;br&gt;&amp;nbsp; &amp;nbsp;abstraction we should use. &amp;nbsp;We will be actively resolving many of
&lt;br&gt;&amp;nbsp; &amp;nbsp;those issues. &amp;nbsp;See the Working Documents section at
&lt;br&gt;&amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://cwe.mitre.org/community/workingdocs.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/community/workingdocs.html&lt;/a&gt;&amp;nbsp;for a refresher.
&lt;br&gt;&lt;br&gt;7) Identifying CWE gaps with respect to current tools, including
&lt;br&gt;&amp;nbsp; &amp;nbsp;guidance for mapping. &amp;nbsp;Several tool vendors have sent us updated
&lt;br&gt;&amp;nbsp; &amp;nbsp;lists of their checks, some of which had CWE mappings. &amp;nbsp;We are
&lt;br&gt;&amp;nbsp; &amp;nbsp;evaluating these mappings to ensure that CWE 1.0 will be able to
&lt;br&gt;&amp;nbsp; &amp;nbsp;support the existing perspectives under which these tools operate.
&lt;br&gt;&amp;nbsp; &amp;nbsp;This might include creating high-level entries that act as
&lt;br&gt;&amp;nbsp; &amp;nbsp;placeholders for future content creation of lower-level entries.
&lt;br&gt;&amp;nbsp; &amp;nbsp;We will not have the time to create new entries for every gap that
&lt;br&gt;&amp;nbsp; &amp;nbsp;we encounter, at least by the release of 1.0, but we will have a
&lt;br&gt;&amp;nbsp; &amp;nbsp;solid understanding of what remains to be done.
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Upcoming-plans-for-CWE-1.0-tp18220461p18220461.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-16857319</id>
	<title>Re: Examples of Name and Relationship Changes in CWE Draft 9</title>
	<published>2008-04-23T07:26:56Z</published>
	<updated>2008-04-23T07:26:56Z</updated>
	<author>
		<name>David A. Wheeler-2</name>
	</author>
	<content type="html">Steven M. Christey wrote:
&lt;br&gt;&amp;gt; we changed the names of over 200 entries in Draft 9 alone
&lt;br&gt;...
&lt;br&gt;&amp;nbsp;&amp;gt; 401 Memory Leak
&lt;br&gt;&amp;nbsp;&amp;gt;
&lt;br&gt;&amp;nbsp;&amp;gt; &amp;nbsp; RENAMED: Failure to Release Memory Before Removing Last Reference
&lt;br&gt;&amp;nbsp;&amp;gt; &amp;nbsp; (aka 'Memory Leak')
&lt;br&gt;&lt;br&gt;I like the _idea_ of more-specific-names, but this one isn't quite right 
&lt;br&gt;on two counts:
&lt;br&gt;&lt;br&gt;1. Many memory leaks are due to circular structures, e.g., A references 
&lt;br&gt;B, and B references A, yet NOTHING refers to either. &amp;nbsp;This _IS_ a memory 
&lt;br&gt;leak, but not by this name.
&lt;br&gt;&lt;br&gt;2. Memory leaks only happen if the run-time doesn't support the 
&lt;br&gt;necessary kind of garbage collection. &amp;nbsp;Some systems build in 
&lt;br&gt;reference-counting collectors, which means you don't need to worry about 
&lt;br&gt;releasing memory UNLESS there's a circularity.
&lt;br&gt;&lt;br&gt;I think what you mean is something like
&lt;br&gt;&amp;quot;Failure to Release Memory After It Becomes Unreferenceable&amp;quot;
&lt;br&gt;&lt;br&gt;--- David A. Wheeler
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Examples-of-Name-and-Relationship-Changes-in-CWE-Draft-9-tp16820257p16857319.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-16820257</id>
	<title>Examples of Name and Relationship Changes in CWE Draft 9</title>
	<published>2008-04-21T14:15:21Z</published>
	<updated>2008-04-21T14:15:21Z</updated>
	<author>
		<name>Steven M. Christey-2</name>
	</author>
	<content type="html">If you examine the difference report at
&lt;br&gt;&lt;a href=&quot;http://cwe.mitre.org/data/reports/diff_draft_8_9.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/data/reports/diff_draft_8_9.html&lt;/a&gt;&amp;nbsp;, you will see that
&lt;br&gt;we changed the names of over 200 entries in Draft 9 alone, and we added
&lt;br&gt;275 relationships while removing 75. &amp;nbsp;We also changed nearly 200
&lt;br&gt;descriptions.
&lt;br&gt;&lt;br&gt;The main goals were:
&lt;br&gt;&lt;br&gt;&amp;nbsp;- make the CWE name and description more clear about the weakness
&lt;br&gt;&amp;nbsp; &amp;nbsp;being covered, and try to keep the perspective on the weakness
&lt;br&gt;&amp;nbsp; &amp;nbsp;itself, instead of the attack or consequence - but preserve such
&lt;br&gt;&amp;nbsp; &amp;nbsp;terminology if it's commonplace.
&lt;br&gt;&lt;br&gt;&amp;nbsp;- when the CWE is identifying a weakness, try to classify it under
&lt;br&gt;&amp;nbsp; &amp;nbsp;the Natural Hierarchy view (CWE-1000), i.e. it should have a parent
&lt;br&gt;&amp;nbsp; &amp;nbsp;that is a Weakness (Variant, Base, or Class). &amp;nbsp;If a new node is
&lt;br&gt;&amp;nbsp; &amp;nbsp;necessary, create it (or flag the issue for review after Draft 9's
&lt;br&gt;&amp;nbsp; &amp;nbsp;release).
&lt;br&gt;&lt;br&gt;We tried to change the names so that a CWE consumer would not have to
&lt;br&gt;depend so much on looking up the item's description and context notes,
&lt;br&gt;just to figure out what the item was talking about. &amp;nbsp;We tried to
&lt;br&gt;remove perspective problems where feasible, such as when a name was
&lt;br&gt;too focused on the associated attack.
&lt;br&gt;&lt;br&gt;The litmus test for a name change was simple: if a CWE analyst didn't
&lt;br&gt;know what the issue was about upon reading the name, then most CWE
&lt;br&gt;users probably wouldn't know either. &amp;nbsp;As a result, we removed a lot of
&lt;br&gt;non-specific terms such as &amp;quot;insecure,&amp;quot; &amp;quot;improper,&amp;quot; and &amp;quot;erroneous,&amp;quot; or
&lt;br&gt;tried to develop some consistency when we needed to use more general
&lt;br&gt;terms, such as &amp;quot;sanitization&amp;quot; as an over-arching term that could cover
&lt;br&gt;failure to filter, decode, quote, validate, etc.
&lt;br&gt;&lt;br&gt;We didn't identify all the names that needed fixing, but 37% of CWE
&lt;br&gt;entries were modified, so this was a solid start.
&lt;br&gt;&lt;br&gt;We definitely didn't identify the natural parents for every entry,
&lt;br&gt;although this effort did produce many of the new entries that were
&lt;br&gt;added to Draft 9. &amp;nbsp;We expect this to be an ongoing process. &amp;nbsp;See the
&lt;br&gt;CWE-1000 definition for additional explanation of the natural
&lt;br&gt;hierarchy.
&lt;br&gt;&lt;br&gt;Below are a few examples of the name changes, along with relationships
&lt;br&gt;that we added, to give people a sense of what we did and why.
&lt;br&gt;&lt;br&gt;&lt;br&gt;--------------------------------------------------------
&lt;br&gt;&lt;br&gt;582: Mobile Code: Unsafe Array Declaration
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;- what's unsafe about it - is this permissions? &amp;nbsp;buffer overflow?
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;something else?
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; New name: Array Declared Public, Final, and Static
&lt;br&gt;&lt;br&gt;--------------------------------------------------------
&lt;br&gt;&lt;br&gt;568: Erroneous Finalize Method
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; - what's the error? &amp;nbsp;does the software define the finalize method
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; incorrectly? &amp;nbsp;is this permissions? &amp;nbsp;Does the method do too much?
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; too little? &amp;nbsp;operates on the wrong object? &amp;nbsp;has a memory leak?
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; sends private data?
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; New name: finalize() Method Without super.finalize()
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; Old parent: 399: Resource Management Errors
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; New parents:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 573 - Failure to Follow Specification
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 404 - Improper Resource Shutdown or Release
&lt;br&gt;&lt;br&gt;--------------------------------------------------------
&lt;br&gt;&lt;br&gt;73: Path Manipulation
&lt;br&gt;&lt;br&gt;&amp;nbsp; - name is attack-focused
&lt;br&gt;&lt;br&gt;&amp;nbsp; - how is it being manipulated - symbolic link? &amp;nbsp;long pathname? &amp;nbsp;path
&lt;br&gt;&amp;nbsp; &amp;nbsp; traversal? &amp;nbsp;appending &amp;quot;%20&amp;quot; to retrive source code?
&lt;br&gt;&lt;br&gt;&amp;nbsp; - first code example is path traversal (CWE-22)
&lt;br&gt;&lt;br&gt;&amp;nbsp; - second code example may or may not be path traversal
&lt;br&gt;&lt;br&gt;&amp;nbsp; - RENAMED: &amp;quot;External Control of File Name or Path&amp;quot;
&lt;br&gt;&lt;br&gt;&amp;nbsp; - ADDED ChildOf 99 Insufficient Control of Resource Identifiers (aka
&lt;br&gt;&amp;nbsp; &amp;nbsp; 'Resource Injection')
&lt;br&gt;&lt;br&gt;--------------------------------------------------------
&lt;br&gt;&lt;br&gt;4: J2EE Environment Issues
&lt;br&gt;&lt;br&gt;This is a general category node whose name is self-explanatory. &amp;nbsp;In
&lt;br&gt;draft 8, however, its children rarely had any natural parents.
&lt;br&gt;&lt;br&gt;&amp;nbsp; child: 5 J2EE Misconfiguration: Insecure Transport
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RENAMED: J2EE Misconfiguration: Data Transmission Without Encryption
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ADDED: ChildOf 311 Failure to Encrypt Sensitive Data
&lt;br&gt;&lt;br&gt;&amp;nbsp; child: 555 J2EE Misconfiguration: Password in Configuration File
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RENAMED: J2EE Misconfiguration: Plaintext Password in
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Configuration File
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ADDED: ChildOf 522 Insufficiently Protected Credentials
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DESCRIPTION: modified
&lt;br&gt;&lt;br&gt;&amp;nbsp; child: 6 J2EE Misconfiguration: Insufficient Session-ID Length
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ADDED: ChildOf 334 Small Space of Random Values
&lt;br&gt;&lt;br&gt;&amp;nbsp; child: 7 J2EE Misconfiguration: Missing Error Handling
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Unchanged
&lt;br&gt;&lt;br&gt;&amp;nbsp; child: 8 J2EE Misconfiguration: Entity Bean Declared Remote
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;ADDED: ChildOf 668 Exposure of Resource to Wrong Sphere
&lt;br&gt;&lt;br&gt;&amp;nbsp; child: 9 J2EE Misconfiguration: Weak Access Permissions
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;RENAMED: J2EE Misconfiguration: Weak Access Permissions for EJB Methods
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;ADDED: ChildOf 275 Permission Issues
&lt;br&gt;&lt;br&gt;--------------------------------------------------------
&lt;br&gt;&lt;br&gt;597 Erroneous String Compare
&lt;br&gt;&lt;br&gt;&amp;nbsp; - what's the error - only a portion of the string is compared? &amp;nbsp;It
&lt;br&gt;&amp;nbsp; &amp;nbsp; compares a string in a case-insensitive manner? &amp;nbsp;It doesn't handle
&lt;br&gt;&amp;nbsp; &amp;nbsp; when one string is shorter than the other?
&lt;br&gt;&lt;br&gt;&amp;nbsp; RENAMED: Use of Wrong Operator in String Comparison
&lt;br&gt;&lt;br&gt;--------------------------------------------------------
&lt;br&gt;&lt;br&gt;591 Memory Locking
&lt;br&gt;&lt;br&gt;&amp;nbsp; - is this about not locking memory? &amp;nbsp;Locking it incorrectly? &amp;nbsp;is
&lt;br&gt;&amp;nbsp; &amp;nbsp; this a category of all different types of weaknesses that can
&lt;br&gt;&amp;nbsp; &amp;nbsp; occur during memory locking?
&lt;br&gt;&lt;br&gt;&amp;nbsp; RENAMED: Sensitive Data Storage in Improperly Locked Memory
&lt;br&gt;&lt;br&gt;--------------------------------------------------------
&lt;br&gt;&lt;br&gt;590 Improperly Freeing Heap Memory
&lt;br&gt;&lt;br&gt;&amp;nbsp; - does this mean double free? &amp;nbsp;running free() on an object that was
&lt;br&gt;&amp;nbsp; &amp;nbsp; allocated using new() ?
&lt;br&gt;&lt;br&gt;&amp;nbsp; RENAMED: Free of Invalid Pointer Not on the Heap
&lt;br&gt;&lt;br&gt;--------------------------------------------------------
&lt;br&gt;&lt;br&gt;560 Often Misused: umask()
&lt;br&gt;&lt;br&gt;&amp;nbsp; - is this about setting an insecure umask? &amp;nbsp;Not specifying a umask
&lt;br&gt;&amp;nbsp; &amp;nbsp; and using one that you've inherited from the caller of your
&lt;br&gt;&amp;nbsp; &amp;nbsp; program?
&lt;br&gt;&lt;br&gt;&amp;nbsp; RENAMED: Use of umask() with chmod-style Argument
&lt;br&gt;&lt;br&gt;&amp;nbsp; FORMER PARENT: 559 &amp;quot;Often Misused: Arguments and Parameters&amp;quot;
&lt;br&gt;&lt;br&gt;&amp;nbsp; New parent: 687 Function Call With Incorrectly Specified Argument Value
&lt;br&gt;&lt;br&gt;--------------------------------------------------------
&lt;br&gt;&lt;br&gt;474 Inconsistent Implementations
&lt;br&gt;&lt;br&gt;&amp;nbsp; - is this about things like how web browsers can behave differently?
&lt;br&gt;&lt;br&gt;&amp;nbsp; RENAMED: Use of Function with Inconsistent Implementations
&lt;br&gt;&lt;br&gt;--------------------------------------------------------
&lt;br&gt;&lt;br&gt;401 Memory Leak
&lt;br&gt;&lt;br&gt;&amp;nbsp; RENAMED: Failure to Release Memory Before Removing Last Reference
&lt;br&gt;&amp;nbsp; (aka 'Memory Leak')
&lt;br&gt;&lt;br&gt;&amp;nbsp; Natural parents: none in draft 8
&lt;br&gt;&lt;br&gt;&amp;nbsp; ADDED: ChildOf 404 Improper Resource Shutdown or Release
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Examples-of-Name-and-Relationship-Changes-in-CWE-Draft-9-tp16820257p16820257.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-16733741</id>
	<title>CWE Draft 9 Major Schema Changes, and Outstanding Issues</title>
	<published>2008-04-16T14:16:41Z</published>
	<updated>2008-04-16T14:16:41Z</updated>
	<author>
		<name>Steven M. Christey-2</name>
	</author>
	<content type="html">All,
&lt;br&gt;&lt;br&gt;We've significantly modified the schema for Draft 9. &amp;nbsp;The primary
&lt;br&gt;driver was to improve support for multiple views, and to better
&lt;br&gt;distinguish between the different types of elements that we are
&lt;br&gt;covering in CWE. &amp;nbsp;Thanks to Sean Barnum for figuring out the bulk of
&lt;br&gt;this. &amp;nbsp;The MITRE team took his inputs and made some small tweaks here
&lt;br&gt;and there.
&lt;br&gt;&lt;br&gt;As CWE is at a crossroads with respect to the schema, we welcome any
&lt;br&gt;feedback or alternatives to our current approaches. &amp;nbsp;Specifically,
&lt;br&gt;while we have chosen XML so far, we are open to leveraging other
&lt;br&gt;techniques to storing and working with the data, if those techniques
&lt;br&gt;are more effective. &amp;nbsp;For example, if it makes sense to store CWE in a
&lt;br&gt;database and use an application server to help present and link
&lt;br&gt;everything together, we are open to pursuing that. &amp;nbsp;We also plan to
&lt;br&gt;investigate RDF, XGGML, and other languages that might be more
&lt;br&gt;directly supportive of graph-based relationships.
&lt;br&gt;&lt;br&gt;Please note that even if we stay with XML and related technologies, we
&lt;br&gt;expect that the schema will still need to change a little bit.
&lt;br&gt;However, we believe that one requirement for &amp;quot;CWE 1.0&amp;quot; is to have
&lt;br&gt;stable schema. &amp;nbsp;In Draft 9, we are definitely a lot closer than we
&lt;br&gt;were. &amp;nbsp;Bob and I will post our requirements for &amp;quot;CWE 1.0&amp;quot; once they've
&lt;br&gt;been finalized.
&lt;br&gt;&lt;br&gt;For Draft 9, some of the highest level schema changes are covered
&lt;br&gt;here:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://cwe.mitre.org/data/reports/diff_xsd_10_3.0.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/data/reports/diff_xsd_10_3.0.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;The rest of this document assumes that you read the preceding
&lt;br&gt;document.
&lt;br&gt;&lt;br&gt;Any and all feedback would be appreciated, especially if there are
&lt;br&gt;still outstanding issues in the schema that prevent you from using CWE
&lt;br&gt;as extensively as you would want to.
&lt;br&gt;&lt;br&gt;&lt;br&gt;Schema Evaluation Criteria
&lt;br&gt;--------------------------
&lt;br&gt;&lt;br&gt;Here are some of the criteria that I think we should be applying while
&lt;br&gt;finalizing the schema:
&lt;br&gt;&lt;br&gt;&amp;nbsp; - Expressiveness: we should be able to express everything that we
&lt;br&gt;&amp;nbsp; &amp;nbsp; want to. &amp;nbsp;In Draft 9, some examples of this are the creation of
&lt;br&gt;&amp;nbsp; &amp;nbsp; explicit views, and the requirement for relationships to specify
&lt;br&gt;&amp;nbsp; &amp;nbsp; the views they are part of. &amp;nbsp;But, we still don't have a way of
&lt;br&gt;&amp;nbsp; &amp;nbsp; saying things like &amp;quot;this issue theoretically affects any language
&lt;br&gt;&amp;nbsp; &amp;nbsp; that performs direct memory management, but it's especially common
&lt;br&gt;&amp;nbsp; &amp;nbsp; in C.&amp;quot; &amp;nbsp;That's important, because if C is not explicitly mentioned
&lt;br&gt;&amp;nbsp; &amp;nbsp; in an element, then that element won't be part of the C language
&lt;br&gt;&amp;nbsp; &amp;nbsp; view.
&lt;br&gt;&lt;br&gt;&amp;nbsp; - Extraction: it should be as easy as possible for CWE users to
&lt;br&gt;&amp;nbsp; &amp;nbsp; extract the data that they want, using commonly available XML
&lt;br&gt;&amp;nbsp; &amp;nbsp; parsers and related tools. &amp;nbsp;In Draft 9, the relevant data for
&lt;br&gt;&amp;nbsp; &amp;nbsp; named chains are not necessarily easy to extract.
&lt;br&gt;&lt;br&gt;&amp;nbsp; - Maintenance
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; - minimize maintenance costs: the MITRE team, and outside
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; contributors, should be able to quickly represent the necessary
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; information.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - minimize preventable errors in data entry: we want to minimize
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; errors in the CWE representation that cannot be caught by an XML
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; validator, but nonetheless require consistency.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - minimize XML &amp;quot;bloat&amp;quot;: this is hopefully self-explanatory. &amp;nbsp;The
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; relationships in Draft 9 might exhibit some bloat, although at
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; the same time, there's a major benefit to their increased
&lt;br&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; expressiveness.
&lt;br&gt;&lt;br&gt;&amp;nbsp; - Flexibility: ideally, the schema would remain stable, while
&lt;br&gt;&amp;nbsp; &amp;nbsp; allowing us to build in additional capabilities. &amp;nbsp;For Draft 9, we
&lt;br&gt;&amp;nbsp; &amp;nbsp; believe that we've added flexibility for defining new kinds of
&lt;br&gt;&amp;nbsp; &amp;nbsp; relationships and views. &amp;nbsp;The introduction of compound elements
&lt;br&gt;&amp;nbsp; &amp;nbsp; will hopefully allow us to support other kinds of concepts besides
&lt;br&gt;&amp;nbsp; &amp;nbsp; chains and composites that might arise in the future; for example,
&lt;br&gt;&amp;nbsp; &amp;nbsp; some CWE nodes are really talking about multiple distinct issues
&lt;br&gt;&amp;nbsp; &amp;nbsp; and could be called &amp;quot;loose composites.&amp;quot;
&lt;br&gt;&lt;br&gt;In light of these criteria, I wanted to explain some of the rationale
&lt;br&gt;for the schema changes, and what we have left ahead of us for CWE 1.0.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Views
&lt;br&gt;-----
&lt;br&gt;&lt;br&gt;We added a number of views to CWE Draft 9. &amp;nbsp;For the most part, this
&lt;br&gt;involved converting weakness/&amp;quot;groupings&amp;quot; from Draft 8, into the new
&lt;br&gt;Views type for draft 9.
&lt;br&gt;&lt;br&gt;See &lt;a href=&quot;http://cwe.mitre.org/data/index.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/data/index.html&lt;/a&gt;&amp;nbsp;for a list of views.
&lt;br&gt;&lt;br&gt;Slices are basically lists of elements, without any relationships
&lt;br&gt;between them. &amp;nbsp;Membership in a slice can be explicit or implicit. &amp;nbsp;In
&lt;br&gt;explicit slices, all the relevant entries have some ChildOf
&lt;br&gt;relationship where the View node is the parent; see CWE-630
&lt;br&gt;(Weaknesses Examined by SAMATE) and CWE-635 (Weaknesses Used by NVD)
&lt;br&gt;for examples.
&lt;br&gt;&lt;br&gt;In implicit slices, the slice has some filtering criteria that define
&lt;br&gt;membership, and there aren't any relationships within the XML that are
&lt;br&gt;explicitly defined. &amp;nbsp;For example, CWE-658 is a slice that covers
&lt;br&gt;weaknesses found in the C language. &amp;nbsp;This implicit slice has a Filter
&lt;br&gt;that specifies that member entries have &amp;quot;C&amp;quot; under the
&lt;br&gt;Applicable_Platforms field.
&lt;br&gt;&lt;br&gt;The Comprehensive CWE Dictionary view, CWE-2000, is actually an
&lt;br&gt;implicit slice that selects everything from CWE by using a filter that
&lt;br&gt;always returns true.
&lt;br&gt;&lt;br&gt;Views can also be graphs, such as CWE-1000 (Natural Hierarchy).
&lt;br&gt;Currently, graphs are expected to have explicit ChildOf relationships
&lt;br&gt;within the member elements. &amp;nbsp;Before Draft 9, everything was
&lt;br&gt;effectively under the Natural Hierarchy. &amp;nbsp;In Draft 9, however, some of
&lt;br&gt;those elements have been removed from the Natural Hierarchy
&lt;br&gt;altogether, like deprecated nodes and the resource-based view.
&lt;br&gt;&lt;br&gt;We suspect that some individual views might be best described as a
&lt;br&gt;combination of slices *and* graphs, with a combination of implicit or
&lt;br&gt;explicit membership. &amp;nbsp;A view might be best expressed via some set of
&lt;br&gt;explicit relationships (maybe between some implicit slices), then
&lt;br&gt;defaulting to the relationships of a different view at some point.
&lt;br&gt;&lt;br&gt;The most concrete example of this is CWE-631 (Resource-specific
&lt;br&gt;Weaknesses), at:
&lt;br&gt;&lt;br&gt;&amp;nbsp; &lt;a href=&quot;http://cwe.mitre.org/data/graphs/631.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/data/graphs/631.html&lt;/a&gt;&lt;br&gt;&lt;br&gt;The higher-level nodes have explicit relationships defined within View
&lt;br&gt;631. &amp;nbsp;Its children - such as the Category node CWE-632 (Weaknesses
&lt;br&gt;that Affect Files or Directories) - have explicitly specified children
&lt;br&gt;such as CWE-22 (Path Traversal). &amp;nbsp;That is, Path Traversal has an
&lt;br&gt;explicit &amp;quot;ChildOf CWE-632&amp;quot; relationship. &amp;nbsp;However, instead of the
&lt;br&gt;explicit relationships, CWE-632 could potentially be defined as an
&lt;br&gt;implicit slice of &amp;quot;all elements that have an Affected_Resource field
&lt;br&gt;of File/Directory.&amp;quot; &amp;nbsp;That would reduce maintenance costs and improve
&lt;br&gt;accuracy, but it is not possible in Draft 9, because CWE-632 is a
&lt;br&gt;Category type - it's *in* a view, but not a view itself.
&lt;br&gt;&lt;br&gt;In addition, the resource-based view, CWE-631, could be more
&lt;br&gt;comprehensive by &amp;quot;view hopping.&amp;quot; &amp;nbsp;In Draft 9, CWE-631 stops at CWE-22
&lt;br&gt;(Path Traversal), but there are several children under CWE-22 that
&lt;br&gt;would also match - except those children are only listed under the
&lt;br&gt;natural hierarchy (view CWE-1000). &amp;nbsp;It would probably be quite tedious
&lt;br&gt;and error-prone just to copy all the natural hierarchy relationships
&lt;br&gt;over to this new view. &amp;nbsp;This might be best handled by allowing views
&lt;br&gt;to link to each other, but this is not possible in Draft 9. &amp;nbsp;In
&lt;br&gt;addition, the &amp;quot;hops&amp;quot; might wind up including elements that were not
&lt;br&gt;intended.
&lt;br&gt;&lt;br&gt;Finally, we have encountered some difficulties in generating a
&lt;br&gt;&amp;quot;Comprehensive Graph&amp;quot; that merges all views together - the natural
&lt;br&gt;hierarchy, the resource-based graph, the language-specific slices,
&lt;br&gt;etc. &amp;nbsp;So, there isn't a single graph on the CWE web site that covers
&lt;br&gt;the entire CWE. &amp;nbsp;We do have a PDF file that contains most nodes; it
&lt;br&gt;focuses on the natural hierarchy (CWE-1000), and all other nodes are
&lt;br&gt;effectively &amp;quot;orphans.&amp;quot; &amp;nbsp;We don't necessarily have to solve this
&lt;br&gt;problem for a comprehensive view - after all, it's not clear who would
&lt;br&gt;have a need for such a thing - but I thought it was worthwhile to
&lt;br&gt;mention.
&lt;br&gt;&lt;br&gt;&lt;br&gt;Relationships
&lt;br&gt;-------------
&lt;br&gt;&lt;br&gt;The expression of relationships has changed significantly for Draft 9.
&lt;br&gt;Much of this is covered by the schema diff report listed at the top of
&lt;br&gt;this document, but there are some fields that I wanted to highlight.
&lt;br&gt;&lt;br&gt;Relationship_Type:
&lt;br&gt;&lt;br&gt;&amp;nbsp; The Draft 8 version of &amp;quot;Relationship_Type&amp;quot; has been renamed to
&lt;br&gt;&amp;nbsp; &amp;quot;Relationship_Nature&amp;quot;. &amp;nbsp;The Draft 9 version of this field is
&lt;br&gt;&amp;nbsp; intended to identify the type of the entry that is being linked to.
&lt;br&gt;&amp;nbsp; Since we now have multiple types of entries in CWE, this field might
&lt;br&gt;&amp;nbsp; be useful in simplifying some extraction and presentation logic for
&lt;br&gt;&amp;nbsp; XSLT's. &amp;nbsp;We have not needed this field in generating the web site
&lt;br&gt;&amp;nbsp; for Draft 9, although it might be convenient for others. &amp;nbsp;However,
&lt;br&gt;&amp;nbsp; this field is currently being manually maintained, and this value
&lt;br&gt;&amp;nbsp; was often incorrect, because we changed the types of a number of
&lt;br&gt;&amp;nbsp; elements in Draft 9, which immediately invalidated this field in
&lt;br&gt;&amp;nbsp; dozens of relationships. &amp;nbsp;We are able to perform a consistency check
&lt;br&gt;&amp;nbsp; to ensure that these values are correct before release, but it's
&lt;br&gt;&amp;nbsp; still a little bit of labor.
&lt;br&gt;&lt;br&gt;&amp;nbsp; As a result, we will be looking at this field more closely, trying
&lt;br&gt;&amp;nbsp; to balance utility to the community with maintenance costs to the
&lt;br&gt;&amp;nbsp; CWE team.
&lt;br&gt;&lt;br&gt;Relationship_View_IDs:
&lt;br&gt;&lt;br&gt;&amp;nbsp; We anticipate that, in the future, we will have multiple views that
&lt;br&gt;&amp;nbsp; share a lot of the same structure. &amp;nbsp;As one example - CWE's Natural
&lt;br&gt;&amp;nbsp; Hierarchy (CWE-1000) is beginning to diverge more from the Seven
&lt;br&gt;&amp;nbsp; Pernicious Kingdoms (SPK) way of organizing the world, so it might
&lt;br&gt;&amp;nbsp; be reasonable to create a view into CWE that's useful for people who
&lt;br&gt;&amp;nbsp; are knowledgeable about SPK. &amp;nbsp;The Natural Hierarchy and an SPK view
&lt;br&gt;&amp;nbsp; would probably have a lot of different elements near the top of the
&lt;br&gt;&amp;nbsp; tree, but they would share a lot at a lower level.
&lt;br&gt;&lt;br&gt;&amp;nbsp; With closely overlapping views, this would produce a large number of
&lt;br&gt;&amp;nbsp; duplicate relationships that might contribute significantly to XML
&lt;br&gt;&amp;nbsp; bloat. &amp;nbsp;The MITRE team decided that allowing multiple
&lt;br&gt;&amp;nbsp; Relationship_View_IDs would be a useful shorthand that might be
&lt;br&gt;&amp;nbsp; easier to maintain.
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;Current Challenges
&lt;br&gt;------------------
&lt;br&gt;&lt;br&gt;Here are some of the current challenges that we still face, and plan
&lt;br&gt;to resolve by CWE 1.0.
&lt;br&gt;&lt;br&gt;1) The Draft 9 schema does not have the expressiveness to define the
&lt;br&gt;&amp;nbsp; &amp;nbsp;more complex views, and there are some associated maintenance
&lt;br&gt;&amp;nbsp; &amp;nbsp;costs, as outlined in the previous sections.
&lt;br&gt;&lt;br&gt;2) Chains and composites, views, and categories all have some
&lt;br&gt;&amp;nbsp; &amp;nbsp;overlapping uses that we'd like to clarify and, to the degree
&lt;br&gt;&amp;nbsp; &amp;nbsp;possible, unify.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;For example, both chains and composites involve a small selection
&lt;br&gt;&amp;nbsp; &amp;nbsp;of entries from CWE, and dictate relationships between them. &amp;nbsp;In
&lt;br&gt;&amp;nbsp; &amp;nbsp;this sense, they can be regarded as views - perhaps micro-views.
&lt;br&gt;&amp;nbsp; &amp;nbsp;Yet, we expect that they will have a distinct and important role
&lt;br&gt;&amp;nbsp; &amp;nbsp;throughout CWE.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;As another example, the resource-based view (CWE-632) has children
&lt;br&gt;&amp;nbsp; &amp;nbsp;that are categories. &amp;nbsp;These categories might be best described by
&lt;br&gt;&amp;nbsp; &amp;nbsp;defining what their membership should be, but in Draft 9, this type
&lt;br&gt;&amp;nbsp; &amp;nbsp;of automatic population is only possible through filters in View
&lt;br&gt;&amp;nbsp; &amp;nbsp;elements. &amp;nbsp;So, we had to manually create ChildOf relationships.
&lt;br&gt;&lt;br&gt;3) Relationship Directionality
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;Some views, like CWE-635 (Weaknesses Used by NVD), are defined more
&lt;br&gt;&amp;nbsp; &amp;nbsp;by external criteria than anything that is implicit within
&lt;br&gt;&amp;nbsp; &amp;nbsp;individual nodes, so these are explicit slices. &amp;nbsp;In terms of
&lt;br&gt;&amp;nbsp; &amp;nbsp;maintenance costs and ease of extraction, it might be best for
&lt;br&gt;&amp;nbsp; &amp;nbsp;CWE-635 to explicitly state what its &amp;quot;members&amp;quot; are. &amp;nbsp;Instead, each
&lt;br&gt;&amp;nbsp; &amp;nbsp;member has a ChildOf relationship, with View_ID=635, that is a
&lt;br&gt;&amp;nbsp; &amp;nbsp;ChildOf 635. &amp;nbsp;Thus, maintenance of the NVD slice is done not by
&lt;br&gt;&amp;nbsp; &amp;nbsp;operating on the slice itself, but by operating on its individual
&lt;br&gt;&amp;nbsp; &amp;nbsp;members. &amp;nbsp;This proved to be moderately expensive for us to do when
&lt;br&gt;&amp;nbsp; &amp;nbsp;we changed the membership of the SAMATE view in Draft 8 - it took
&lt;br&gt;&amp;nbsp; &amp;nbsp;an hour or so to edit some nodes to remove the SAMATE relationship,
&lt;br&gt;&amp;nbsp; &amp;nbsp;and then edit other nodes to add the SAMATE relationship; if we
&lt;br&gt;&amp;nbsp; &amp;nbsp;could just edit the SAMATE list directly, it would have been a
&lt;br&gt;&amp;nbsp; &amp;nbsp;5-minute task. &amp;nbsp;However, as I understand it, one of the mantras of
&lt;br&gt;&amp;nbsp; &amp;nbsp;knowledge management is that data is kept as close to individual
&lt;br&gt;&amp;nbsp; &amp;nbsp;nodes as possible; but relationships &amp;quot;belong&amp;quot; to multiple nodes,
&lt;br&gt;&amp;nbsp; &amp;nbsp;even though in Draft 9 they are only explicit in one node.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;It would be possible for us to automate some of those maintenance
&lt;br&gt;&amp;nbsp; &amp;nbsp;tasks, but that would involve additional development.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;Also, we have multiple relationships that are mutual, but only
&lt;br&gt;&amp;nbsp; &amp;nbsp;expressed in one direction. &amp;nbsp;For example, &amp;quot;X ChildOf Y&amp;quot; might be
&lt;br&gt;&amp;nbsp; &amp;nbsp;specified in the XML, which implies &amp;quot;Y ParentOf X&amp;quot; - but we have no
&lt;br&gt;&amp;nbsp; &amp;nbsp;ParentOf relationships that are explicitly stated. &amp;nbsp;The same thing
&lt;br&gt;&amp;nbsp; &amp;nbsp;applies for relationships that support chains and composites. &amp;nbsp;As a
&lt;br&gt;&amp;nbsp; &amp;nbsp;result, extraction logic can be complicated, because an entry
&lt;br&gt;&amp;nbsp; &amp;nbsp;doesn't explicitly know what its children are. &amp;nbsp;As a result of this
&lt;br&gt;&amp;nbsp; &amp;nbsp;complexity, the extraction logic can be hard to maintain, and
&lt;br&gt;&amp;nbsp; &amp;nbsp;sometimes computationally expensive. &amp;nbsp;We have encountered this
&lt;br&gt;&amp;nbsp; &amp;nbsp;problem in various ways while generating web site pages.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;One possibility would be to create separate XML files and
&lt;br&gt;&amp;nbsp; &amp;nbsp;representations for the relationships (and maybe for views),
&lt;br&gt;&amp;nbsp; &amp;nbsp;possibly with separate schema. &amp;nbsp;This might preserve expressiveness
&lt;br&gt;&amp;nbsp; &amp;nbsp;and simplify maintenance, but it might make it more difficult for
&lt;br&gt;&amp;nbsp; &amp;nbsp;some people to extract.
&lt;br&gt;&lt;br&gt;4) Named Chains
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;There are a couple issues with named chains. &amp;nbsp;See
&lt;br&gt;&amp;nbsp; &amp;nbsp;&lt;a href=&quot;http://cwe.mitre.org/data/reports/chains_and_composites.html&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://cwe.mitre.org/data/reports/chains_and_composites.html&lt;/a&gt;&amp;nbsp;for
&lt;br&gt;&amp;nbsp; &amp;nbsp;background.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;All the data that's required to determine the links of a named
&lt;br&gt;&amp;nbsp; &amp;nbsp;chain are within the XML, so there is sufficient expressiveness.
&lt;br&gt;&amp;nbsp; &amp;nbsp;However, extraction is a little more difficult. &amp;nbsp;For a named chain
&lt;br&gt;&amp;nbsp; &amp;nbsp;X, the code has to search throughout all of CWE for entries with
&lt;br&gt;&amp;nbsp; &amp;nbsp;all the CanPrecede relationships with a Chain_ID of X, then order
&lt;br&gt;&amp;nbsp; &amp;nbsp;them appropriately. &amp;nbsp;If you want to know what elements are in a
&lt;br&gt;&amp;nbsp; &amp;nbsp;named chain, you HAVE to do this navigation throughout CWE - a
&lt;br&gt;&amp;nbsp; &amp;nbsp;named chain does not explicitly state what its links are. &amp;nbsp;Just
&lt;br&gt;&amp;nbsp; &amp;nbsp;like composites explicitly state which items they require, it might
&lt;br&gt;&amp;nbsp; &amp;nbsp;be reasonable to have named chains explicitly know what their
&lt;br&gt;&amp;nbsp; &amp;nbsp;starting links are.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;In addition, named chains can be difficult to classify, especially
&lt;br&gt;&amp;nbsp; &amp;nbsp;under the natural hierarchy. &amp;nbsp;Because named chains are new, we
&lt;br&gt;&amp;nbsp; &amp;nbsp;decided not to create a separate view to handle them. &amp;nbsp;We do have a
&lt;br&gt;&amp;nbsp; &amp;nbsp;view that lists chain elements (CWE-679), but that view is actually
&lt;br&gt;&amp;nbsp; &amp;nbsp;an implicit slice for extracting components of all the CanPrecede
&lt;br&gt;&amp;nbsp; &amp;nbsp;relationships, whether they're related to a Named Chain or not.
&lt;br&gt;&lt;br&gt;&amp;nbsp; &amp;nbsp;The extraction and presentation logic for presenting chains in
&lt;br&gt;&amp;nbsp; &amp;nbsp;general was too complicated for us to handle cleanly by the release
&lt;br&gt;&amp;nbsp; &amp;nbsp;of Draft 9, so they are generated by external programs, instead of
&lt;br&gt;&amp;nbsp; &amp;nbsp;through XSLT.
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/CWE-Draft-9-Major-Schema-Changes%2C-and-Outstanding-Issues-tp16733741p16733741.html" />
</entry>

<entry>
	<id>tag:old.nabble.com,2006:post-16690307</id>
	<title>Release of Draft 9</title>
	<published>2008-04-14T14:16:02Z</published>
	<updated>2008-04-14T14:16:02Z</updated>
	<author>
		<name>Steven M. Christey-2</name>
	</author>
	<content type="html">All,
&lt;br&gt;&lt;br&gt;Just in case some of the researchers are not subscribed to the CWE
&lt;br&gt;announce list, following is the announcement of Draft 9. &amp;nbsp;We have
&lt;br&gt;accomplished a lot in this draft, and I hope you will agree.
&lt;br&gt;&lt;br&gt;In the next day or so, I'll post some more extensive discussion of some of
&lt;br&gt;the schema changes and some outstanding issues, and I'll discuss some of
&lt;br&gt;the content changes as well.
&lt;br&gt;&lt;br&gt;If you have any questions or concerns, please notify the CWE team, or post
&lt;br&gt;to this list. &amp;nbsp;We do want to have some active discussion on this list, and
&lt;br&gt;the transition between Draft 9 and &amp;quot;CWE 1.0&amp;quot; will provide ample
&lt;br&gt;opportunity.
&lt;br&gt;&lt;br&gt;- Steve
&lt;br&gt;&lt;br&gt;=============
&lt;br&gt;&lt;br&gt;The ninth draft of CWE has been posted on the CWE List page. It
&lt;br&gt;includes several important changes. A report is available that
&lt;br&gt;lists specific differences between Draft 8 and Draft 9.
&lt;br&gt;&lt;br&gt;Specific changes for Draft 9 include: significant schema changes
&lt;br&gt;to better distinguish and link between Weaknesses, Categories,
&lt;br&gt;Views, Chains, and Composites; 39 new entries, many of which
&lt;br&gt;improve the organization of CWE; changes to the names or
&lt;br&gt;descriptions of over 200 entries, in order to more accurately
&lt;br&gt;reflect each entry; modification of relationships related to
&lt;br&gt;classification under a &amp;quot;natural hierarchy&amp;quot; view; addition of a
&lt;br&gt;Status field to reflect the maturity of each entry; an updated
&lt;br&gt;report on prioritization of fields; the introduction of named
&lt;br&gt;chains; and many other changes affecting over 450 entries.
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://old.nabble.com/Release-of-Draft-9-tp16690307p16690307.html" />
</entry>

</feed>
