<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<id>tag:www.nabble.com,2006:forum-26532</id>
	<title>Nabble - CWE Research List</title>
	<updated>2008-09-05T13:46:23Z</updated>
	<link rel="self" type="application/atom+xml" href="http://www.nabble.com/CWE-Research-List-f26532.xml" />
	<link rel="alternate" type="text/html" href="http://www.nabble.com/CWE-Research-List-f26532.html" />
	<subtitle type="html">&lt;img src=&quot;http://www.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:www.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://www.nabble.com/Some-asking-about-CWE.-tp19140863p19339182.html" />
</entry>

<entry>
	<id>tag:www.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://www.nabble.com/CWE-1.0-to-be-released-Tuesday%2C-September-9%2C-2008-tp19338912p19338912.html" />
</entry>

<entry>
	<id>tag:www.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://www.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://www.nabble.com/images/icon_attachment.gif&quot; &gt; &lt;strong&gt;CWE_635.PNG&lt;/strong&gt; (17K) &lt;a href=&quot;http://www.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://www.nabble.com/Some-asking-about-CWE.-tp19140863p19140863.html" />
</entry>

<entry>
	<id>tag:www.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://www.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://www.nabble.com/FW%3A-Natural-Hierarchy-email-tp18734670p18734670.html" />
</entry>

<entry>
	<id>tag:www.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://www.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://www.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://www.nabble.com/Identifying-Perspective-Issues-in-CWE-tp18245971p18365850.html" />
</entry>

<entry>
	<id>tag:www.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://www.nabble.com/Identifying-Perspective-Issues-in-CWE-tp18245971p18365481.html" />
</entry>

<entry>
	<id>tag:www.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://www.nabble.com/Identifying-Perspective-Issues-in-CWE-tp18245971p18364907.html" />
</entry>

<entry>
	<id>tag:www.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://www.nabble.com/Suggestion-of-Repositioning-CWE--244-tp18266404p18329530.html" />
</entry>

<entry>
	<id>tag:www.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://www.nabble.com/Suggestion-of-Repositioning-CWE--244-tp18266404p18329319.html" />
</entry>

<entry>
	<id>tag:www.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://www.nabble.com/Suggestion-of-Repositioning-CWE--244-tp18266404p18317801.html" />
</entry>

<entry>
	<id>tag:www.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://www.nabble.com/Suggestion-of-Repositioning-CWE--244-tp18266404p18316228.html" />
</entry>

<entry>
	<id>tag:www.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://www.nabble.com/Suggestion-of-Repositioning-CWE--244-tp18266404p18315570.html" />
</entry>

<entry>
	<id>tag:www.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://www.nabble.com/Suggestion-of-Repositioning-CWE--244-tp18266404p18267915.html" />
</entry>

<entry>
	<id>tag:www.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>koo-2</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://www.nabble.com/Suggestion-of-Repositioning-CWE--244-tp18266404p18266404.html" />
</entry>

<entry>
	<id>tag:www.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://www.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://www.nabble.com/Identifying-Perspective-Issues-in-CWE-tp18245971p18245971.html" />
</entry>

<entry>
	<id>tag:www.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://www.nabble.com/Upcoming-plans-for-CWE-1.0-tp18220461p18220461.html" />
</entry>

<entry>
	<id>tag:www.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://www.nabble.com/Examples-of-Name-and-Relationship-Changes-in-CWE-Draft-9-tp16820257p16857319.html" />
</entry>

<entry>
	<id>tag:www.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://www.nabble.com/Examples-of-Name-and-Relationship-Changes-in-CWE-Draft-9-tp16820257p16820257.html" />
</entry>

<entry>
	<id>tag:www.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://www.nabble.com/CWE-Draft-9-Major-Schema-Changes%2C-and-Outstanding-Issues-tp16733741p16733741.html" />
</entry>

<entry>
	<id>tag:www.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://www.nabble.com/Release-of-Draft-9-tp16690307p16690307.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-13858100</id>
	<title>RE: Patr Traversal and some challenges for CWE</title>
	<published>2007-11-20T06:32:04Z</published>
	<updated>2007-11-20T06:32:04Z</updated>
	<author>
		<name>Chris Wysopal-2</name>
	</author>
	<content type="html">&amp;nbsp;
&lt;br&gt;&lt;br&gt;Wagoner, Larry wrote:
&lt;br&gt;&lt;br&gt;&amp;gt;Therefore, the &amp;quot;real&amp;quot; leaf nodes in CWE should be &amp;quot;allows unvalidated
&lt;br&gt;input&amp;quot;
&lt;br&gt;&amp;gt;&amp;quot;language that does not do array bounds checking&amp;quot; &amp;quot;return addresses can
&lt;br&gt;be modified&amp;quot;
&lt;br&gt;&lt;br&gt;&lt;br&gt;You can get even more precise than this. &amp;nbsp;&amp;quot;Allows unvalidated input&amp;quot;
&lt;br&gt;could be &amp;quot;allows unvalidated input by input size&amp;quot; or many other flavors
&lt;br&gt;of input validation that all protect against different weaknesses in the
&lt;br&gt;code. &amp;nbsp;The &amp;quot;return address can be modified&amp;quot; is really just one of many
&lt;br&gt;ways a buffer overflow can be exploited at a higher severity than just
&lt;br&gt;overwriting data. &amp;quot;function pointers can be modified&amp;quot; or &amp;quot;heap
&lt;br&gt;structures can be modified&amp;quot; are other ways. I like this level of
&lt;br&gt;precision because it helps language and platform designers understand
&lt;br&gt;precisely what the mechanisms of insecure software are.
&lt;br&gt;&lt;br&gt;In a subsequent post Dave McKinney made an argument against lower levels
&lt;br&gt;of classification because it would go lower level than needed by the
&lt;br&gt;people who need to understand and manage fixing vulnerable code. This
&lt;br&gt;seems to me a split akin to atoms and sub-atomic particles. &amp;nbsp;One has
&lt;br&gt;chemical properties and can exist as a molecule or be combined with
&lt;br&gt;other atoms to make bigger molecules. &amp;nbsp;Chemists work at this level.
&lt;br&gt;Physicists try to understand the way the universe works at a lower level
&lt;br&gt;and work with things that really don't exist in the &amp;quot;real world&amp;quot;. &amp;nbsp;We
&lt;br&gt;just need to figure out where the split is. &amp;nbsp;Something like chemists
&lt;br&gt;(sofware developers)use CWE and physcists (language and platform
&lt;br&gt;designers) use X.
&lt;br&gt;&lt;br&gt;-Chris
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;-----Original Message-----
&lt;br&gt;From: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=13858100&amp;i=0&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;owner-cwe-research-list@...&lt;/a&gt;
&lt;br&gt;[mailto:&lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=13858100&amp;i=1&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;owner-cwe-research-list@...&lt;/a&gt;] On Behalf Of Wagoner,
&lt;br&gt;Larry D.
&lt;br&gt;Sent: Thursday, November 15, 2007 9:49 AM
&lt;br&gt;To: &lt;a href=&quot;http://www.nabble.com/user/SendEmail.jtp?type=post&amp;post=13858100&amp;i=2&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;cwe-research-list@...&lt;/a&gt;
&lt;br&gt;Cc: Matt Bishop; Jarzombek, Joe
&lt;br&gt;Subject: RE: Patr Traversal and some challenges for CWE
&lt;br&gt;&lt;br&gt;&amp;nbsp;
&lt;br&gt;I think your chains have to be made at a consistent lower level. &amp;nbsp;For
&lt;br&gt;instance, a buffer overflow is not a fundamental weakness, but a
&lt;br&gt;combination of several weaknesses that together allow a system to be
&lt;br&gt;comprimised. &amp;nbsp;This is an idea that has been around for quite a while
&lt;br&gt;(see Matt Bishop's paper &amp;quot;Vulnerability Analysis&amp;quot;
&lt;br&gt;(&lt;a href=&quot;http://nob.cs.ucdavis.edu/bishop/papers/1999-raid/similar&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://nob.cs.ucdavis.edu/bishop/papers/1999-raid/similar&lt;/a&gt;&amp;nbsp;) and has
&lt;br&gt;been talked about lately in the Intro. to Vulnerability Theory paper.
&lt;br&gt;That is, a buffer overflow, integer coercion, path traversal, etc. are
&lt;br&gt;instantiations of a combination of weaknesses or primitive flaws.
&lt;br&gt;Frequently if one of the underlying flaws are removed, then the weakness
&lt;br&gt;(as currently in CWE) is no longer a vulnerability. &amp;nbsp;For example, if
&lt;br&gt;some of the components of the buffer overflow weakness are eliminated
&lt;br&gt;such as if one does not have unvalidated input, a language that doesn't
&lt;br&gt;do bounds checking, and a system that allows return addresses to be
&lt;br&gt;modified, then a buffer overflow cannot occur. &amp;nbsp;Therefore, the &amp;quot;real&amp;quot;
&lt;br&gt;leaf nodes in CWE should be &amp;quot;allows unvalidated input&amp;quot; &amp;quot;language that
&lt;br&gt;does not do array bounds checking&amp;quot; &amp;quot;return addresses can be modified&amp;quot;
&lt;br&gt;(no doubt better names could be created). &amp;nbsp;Buffer overflow would be a
&lt;br&gt;parent to these three nodes. &amp;nbsp;And tying this to the view strategy that
&lt;br&gt;CWE wants to move to, then under a Java or Pascal view, the leaf node
&lt;br&gt;&amp;quot;language that does not do array bounds checking&amp;quot; would not appear in
&lt;br&gt;that view, but &amp;quot;allows unvalidated input&amp;quot; would. &amp;nbsp;Path traversal would
&lt;br&gt;also be a parent of &amp;quot;allows unvalidated input.&amp;quot; &amp;nbsp;Integer coercion would
&lt;br&gt;be very interesting to reduce to its fundamental components -- such as
&lt;br&gt;&amp;quot;allows data casting,&amp;quot; &amp;quot;allows unsigned data,&amp;quot; etc.
&lt;br&gt;&lt;br&gt;Those fundamental entries and the links to them would solve several
&lt;br&gt;problems:
&lt;br&gt;1. Would allow tools to make claims about the real weaknesses.
&lt;br&gt;Languages or even hardware platforms could also make claims (&amp;quot;Wow, look
&lt;br&gt;at how much of the CWE tree disappears when you use Acme&amp;quot;) 2. Would make
&lt;br&gt;generation of views easier -- any node that is a parent to &amp;quot;allows
&lt;br&gt;unsigned data&amp;quot; could be eliminated a Java view 3. Would reduce (likely
&lt;br&gt;not eliminate, unfortunately) the problem of one tool calling it one
&lt;br&gt;weakness and another tool calling it another weakness and both being
&lt;br&gt;argubly right -- this would put things at a more fundamental level where
&lt;br&gt;things are, at the least, a little more definitive 4. Would address the
&lt;br&gt;real problem at the lowest level possible 5. Would likely expose other
&lt;br&gt;weaknesses
&lt;br&gt;&lt;br&gt;Larry
&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&amp;lt;quote author=&amp;quot;Steven M. Christey-2&amp;quot;&amp;gt;
&lt;br&gt;On Wed, 14 Nov 2007, Chris Telfer wrote:
&lt;br&gt;&lt;br&gt;&amp;gt; There are usually a huge number of different ways for a programmer to 
&lt;br&gt;&amp;gt; produce the same type of weakness. &amp;nbsp;We already acknowledge this in
&lt;br&gt;some
&lt;br&gt;&amp;gt; part through the notion of &amp;quot;complexities&amp;quot; that color a flaw (ala 
&lt;br&gt;&amp;gt; SAMATE). &amp;nbsp;I believe that different ways to express the same weakness 
&lt;br&gt;&amp;gt; (e.g. '/' vs '\\' as a path separator) are simply &amp;quot;complexities&amp;quot; for a
&lt;br&gt;&lt;br&gt;&amp;gt; weakness that don't apply generally across all weakness types.
&lt;br&gt;&lt;br&gt;Lately, Bob Martin and I have begun exploring certain concepts of
&lt;br&gt;&amp;quot;chains&amp;quot;
&lt;br&gt;of weaknesses, as well as &amp;quot;composites&amp;quot; of properties whose combination
&lt;br&gt;forms a weakness.
&lt;br&gt;&lt;br&gt;An increasingly-reported &amp;quot;chain&amp;quot; would be an integer overflow that
&lt;br&gt;causes insufficient allocation of memory, which then leads to a buffer
&lt;br&gt;overflow.
&lt;br&gt;A second chain involging integer overflow would lead to an infinite
&lt;br&gt;loop, and could be independent of memory allocation altogether (we see
&lt;br&gt;examples of this in CVE).
&lt;br&gt;&lt;br&gt;The &amp;quot;weakness that is better known by the attack term 'Symbolic Link
&lt;br&gt;Following'&amp;quot; can be thought of as a composite in which one needs
&lt;br&gt;predictability (of filenames), a race condition, path equivalence (where
&lt;br&gt;two paths ultimately point to the same file object), and a shared
&lt;br&gt;directory to exist all at once, in order to be present. &amp;nbsp;Removing any
&lt;br&gt;one of these elements would prevent the issue or, at worst,
&lt;br&gt;significantly reduce its scope.
&lt;br&gt;&lt;br&gt;Many of the CWE path traversal variants are probably reflections of
&lt;br&gt;different chains and/or composites. &amp;nbsp;This gets closer to understanding
&lt;br&gt;the variety of ways for programmers to cause the same problem.
&lt;br&gt;&lt;br&gt;Note: Bob and I are only in the early stages of developing these
&lt;br&gt;concepts.
&lt;br&gt;&lt;br&gt;- Steve
&lt;br&gt;&lt;br&gt;&amp;lt;/quote&amp;gt;
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Discussion-point%3A-CONSPEC---Context-specific-Issues-tp12747566p13858100.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-13777681</id>
	<title>Re: Patr Traversal and some challenges for CWE</title>
	<published>2007-11-15T09:28:52Z</published>
	<updated>2007-11-15T09:28:52Z</updated>
	<author>
		<name>Dave McKinney</name>
	</author>
	<content type="html">On Thu, Nov 15, 2007 at 09:48:55AM -0500, Wagoner, Larry D. wrote:
&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt; &amp;nbsp;
&lt;br&gt;&amp;gt; I think your chains have to be made at a consistent lower level. &amp;nbsp;For
&lt;br&gt;&amp;gt; instance, a buffer overflow is not a fundamental weakness, but a
&lt;br&gt;&amp;gt; combination of several weaknesses that together allow a system to be
&lt;br&gt;&amp;gt; comprimised. &amp;nbsp;This is an idea that has been around for quite a while
&lt;br&gt;&amp;gt; (see Matt Bishop's paper &amp;quot;Vulnerability Analysis&amp;quot;
&lt;br&gt;&amp;gt; (&lt;a href=&quot;http://nob.cs.ucdavis.edu/bishop/papers/1999-raid/similar&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://nob.cs.ucdavis.edu/bishop/papers/1999-raid/similar&lt;/a&gt;&amp;nbsp;) and has
&lt;br&gt;&amp;gt; been talked about lately in the Intro. to Vulnerability Theory paper.
&lt;br&gt;&amp;gt; That is, a buffer overflow, integer coercion, path traversal, etc. are
&lt;br&gt;&amp;gt; instantiations of a combination of weaknesses or primitive flaws.
&lt;br&gt;&amp;gt; Frequently if one of the underlying flaws are removed, then the weakness
&lt;br&gt;&amp;gt; (as currently in CWE) is no longer a vulnerability. &amp;nbsp;For example, if
&lt;br&gt;&amp;gt; some of the components of the buffer overflow weakness are eliminated
&lt;br&gt;&amp;gt; such as if one does not have unvalidated input, a language that doesn't
&lt;br&gt;&amp;gt; do bounds checking, and a system that allows return addresses to be
&lt;br&gt;&amp;gt; modified, then a buffer overflow cannot occur. &amp;nbsp;Therefore, the &amp;quot;real&amp;quot;
&lt;br&gt;&amp;gt; leaf nodes in CWE should be &amp;quot;allows unvalidated input&amp;quot; &amp;quot;language that
&lt;br&gt;&amp;gt; does not do array bounds checking&amp;quot; &amp;quot;return addresses can be modified&amp;quot;
&lt;br&gt;&amp;gt; (no doubt better names could be created). &amp;nbsp;Buffer overflow would be a
&lt;br&gt;&amp;gt; parent to these three nodes. &amp;nbsp;And tying this to the view strategy that
&lt;br&gt;&amp;gt; CWE wants to move to, then under a Java or Pascal view, the leaf node
&lt;br&gt;&amp;gt; &amp;quot;language that does not do array bounds checking&amp;quot; would not appear in
&lt;br&gt;&amp;gt; that view, but &amp;quot;allows unvalidated input&amp;quot; would. &amp;nbsp;Path traversal would
&lt;br&gt;&amp;gt; also be a parent of &amp;quot;allows unvalidated input.&amp;quot; &amp;nbsp;Integer coercion would
&lt;br&gt;&amp;gt; be very interesting to reduce to its fundamental components -- such as
&lt;br&gt;&amp;gt; &amp;quot;allows data casting,&amp;quot; &amp;quot;allows unsigned data,&amp;quot; etc.
&lt;/div&gt;&lt;br&gt;While I think there is a real need for a more academically rigorous approach
&lt;br&gt;to creating a vulnerability taxonomy, I think the current level of
&lt;br&gt;abstraction used by the CWE is adequate for the audience and its
&lt;br&gt;intended users. For example, describing something as a cross-site
&lt;br&gt;scripting vulnerability or a sub-set of XSS is probably the right
&lt;br&gt;level for tool vendors, security researchers, software vendors,
&lt;br&gt;non-technical managers, the media, etc.
&lt;br&gt;&lt;br&gt;We can understand and agree that a vulnerability can be broken down
&lt;br&gt;further into primitives that must exist in tandem for
&lt;br&gt;the vulnerability to occur. However, my fear is that this may
&lt;br&gt;needlessly complicate the description and classification of simple vulnerabilities. 
&lt;br&gt;&lt;br&gt;I am also concerned of the possibility of arriving at a system where many
&lt;br&gt;of the classifications are not actually security weaknesses in and of
&lt;br&gt;themselves, which may make many of the entries irrelevant for
&lt;br&gt;practically classifying vulnerabilities. Like for example, you have a
&lt;br&gt;vulnerability that occurs because of one legit security weakness
&lt;br&gt;combined with nine other environmental or programming
&lt;br&gt;language-specific entries which are not weaknesses in and of
&lt;br&gt;themselves. I am also concerned about overlap with other SCAP related
&lt;br&gt;standards if the CWE is addressing a lot of configuration or
&lt;br&gt;environmental factors that cause a vulnerability to exist in one
&lt;br&gt;installation where it wouldn't exist in another.
&lt;br&gt;&lt;br&gt;My understanding of what Steve was suggesting in terms of combining
&lt;br&gt;vulnerabilities is that there will be some cases where the system will
&lt;br&gt;need to be robust enough to describe vulnerabilities that exist only
&lt;br&gt;where certain weaknesses are combined in tandem. &amp;nbsp;There are also some
&lt;br&gt;conditions that are best described in terms of interactions, like an
&lt;br&gt;integer handling issue that lets the attacker influence a memory copy operation
&lt;br&gt;further down the execution chain in a way that the developer did not
&lt;br&gt;intend. It may be useful to describe this in terms of multiple
&lt;br&gt;weaknesses working in tandem.
&lt;br&gt;&lt;br&gt;-- 
&lt;br&gt;Dave McKinney
&lt;br&gt;Symantec
&lt;br&gt;&lt;br&gt;keyID: E461AE4E
&lt;br&gt;key fingerprint = F1FC 9073 09FA F0C7 500D &amp;nbsp;D7EB E985 FAF3 E461 AE4E
&lt;br&gt;</content>
	<link rel="alternate" type="text/html" href="http://www.nabble.com/Discussion-point%3A-CONSPEC---Context-specific-Issues-tp12747566p13777681.html" />
</entry>

<entry>
	<id>tag:www.nabble.com,2006:post-13776782</id>
	<title>Re: Patr Traversal and some challenges for CWE</title>
	<published>2007-11-15T08:51:56Z</published>
	<updated>2007-11-15T08:51:56Z</updated>
	<author>
		<name>Matt Bishop-3</name>
	</author>
	<content type="html">Folks,
&lt;br&gt;&lt;br&gt;Minor correction to Larry's URL. The paper &amp;quot;Vulnerability Analysis&amp;quot; is &amp;nbsp;
&lt;br&gt;available at the URL
&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://nob.cs.ucdavis.edu/bishop/papers/1999-raid&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://nob.cs.ucdavis.edu/bishop/papers/1999-raid&lt;/a&gt;&lt;br&gt;&lt;br&gt;and you can get PDF, PS, or (gasp!) HTML. The PDF is best :-)
&lt;br&gt;&lt;br&gt;We now return you to the current discussion ....
&lt;br&gt;&lt;br&gt;Matt
&lt;br&gt;&lt;br&gt;On Nov 15, 2007, at 6:48:55AM PST, Wagoner, Larry D. wrote:
&lt;br&gt;&lt;div class='shrinkable-quote'&gt;&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; I think your chains have to be made at a consistent lower level. &amp;nbsp;For
&lt;br&gt;&amp;gt; instance, a buffer overflow is not a fundamental weakness, but a
&lt;br&gt;&amp;gt; combination of several weaknesses that together allow a system to be
&lt;br&gt;&amp;gt; comprimised. &amp;nbsp;This is an idea that has been around for quite a while
&lt;br&gt;&amp;gt; (see Matt Bishop's paper &amp;quot;Vulnerability Analysis&amp;quot;
&lt;br&gt;&amp;gt; (&lt;a href=&quot;http://nob.cs.ucdavis.edu/bishop/papers/1999-raid/similar&quot; target=&quot;_top&quot; rel=&quot;nofollow&quot;&gt;http://nob.cs.ucdavis.edu/bishop/papers/1999-raid/similar&lt;/a&gt;&amp;nbsp;) and has
&lt;br&gt;&amp;gt; been talked about lately in the Intro. to Vulnerability Theory paper.
&lt;br&gt;&amp;gt; That is, a buffer overflow, integer coercion, path traversal, etc. are
&lt;br&gt;&amp;gt; instantiations of a combination of weaknesses or primitive flaws.
&lt;br&gt;&amp;gt; Frequently if one of the underlying flaws are removed, then the &amp;nbsp;
&lt;br&gt;&amp;gt; weakness
&lt;br&gt;&amp;gt; (as currently in CWE) is no longer a vulnerability. &amp;nbsp;For example, if
&lt;br&gt;&amp;gt; some of the components of the buffer overflow weakness are eliminated
&lt;br&gt;&amp;gt; such as if one does not have unvalidated input, a language that &amp;nbsp;
&lt;br&gt;&amp;gt; doesn't
&lt;br&gt;&amp;gt; do bounds checking, and a system that allows return addresses to be
&lt;br&gt;&amp;gt; modified, then a buffer overflow cannot occur. &amp;nbsp;Therefore, the &amp;quot;real&amp;quot;
&lt;br&gt;&amp;gt; leaf nodes in CWE should be &amp;quot;allows unvalidated input&amp;quot; &amp;quot;language that
&lt;br&gt;&amp;gt; does not do array bounds checking&amp;quot; &amp;quot;return addresses can be modified&amp;quot;
&lt;br&gt;&amp;gt; (no doubt better names could be created). &amp;nbsp;Buffer overflow would be a
&lt;br&gt;&amp;gt; parent to these three nodes. &amp;nbsp;And tying this to the view strategy that
&lt;br&gt;&amp;gt; CWE wants to move to, then under a Java or Pascal view, the leaf node
&lt;br&gt;&amp;gt; &amp;quot;language that does not do array bounds checking&amp;quot; would not appear in
&lt;br&gt;&amp;gt; that view, but &amp;quot;allows unvalidated input&amp;quot; would. &amp;nbsp;Path traversal would
&lt;br&gt;&amp;gt; also be a parent of &amp;quot;allows unvalidated input.&amp;quot; &amp;nbsp;Integer coercion &amp;nbsp;
&lt;br&gt;&amp;gt; would
&lt;br&gt;&amp;gt; be very interesting to reduce to its fundamental components -- such as
&lt;br&gt;&amp;gt; &amp;quot;allows data casting,&amp;quot; &amp;quot;allows unsigned data,&amp;quot; etc.
&lt;br&gt;&amp;gt;
&lt;br&gt;&amp;gt; Those fundamental entries and the links to them would solve several
&lt;br&gt;&amp;gt; problems:
&lt;br&gt;&amp;gt; 1. Would allow tools to make claims about the real weaknesses.
&lt;br&gt;&amp;gt; Languages or even hardware platforms could also make claims (&amp;quot;Wow, &amp;nbsp;
&lt;br&gt;&amp;gt; look
&lt;br&gt;&amp;gt; at how much of the CWE tree disappears when you use Acme&amp;quot;)
&lt;br&gt;&amp;gt; 2. Would make generation of views easier -- any node that is a &amp;nbsp;
&lt;br&gt;&amp;gt; parent to
&lt;br&gt;&amp;gt; &amp;quot;allows unsigned data&amp;quot; could be eliminated a Java view
&lt;br&gt;&amp;gt; 3. Would reduce (likely not eliminate, unfortunately) the problem of &amp;nbsp;
&lt;br&gt;&amp;gt; one
&lt;br&gt;&amp;gt; tool calling it one weakness and another tool calling it another
&lt;br&gt;&amp;gt; weakness and both being argubly right -- this would put things at a &amp;nbsp;
&lt;br&gt;&amp;gt; more
&lt;br&gt;&amp;gt; fundamental level where things are, at the least, a little more
&lt;br&gt;&amp;gt; definitive
&lt;br&gt;&amp;gt; 4. Would address the real problem at the lowest level possible
&lt;br&gt;&amp;gt; 5. Would likely expose 