DTR 24772 Editor's report
Date: |
2007-11-26 |
Document: |
N0107 |
Author: |
Benito |
Changes to the base document, all changes are
marked with change bars.
- Changed some US only spellings to World spellings.
- Fixed some heading numbers
- Miscellaneous small editor edits
- Added some cross references
- Added vulnerability TRJ – Use of Libraries
- Added vulnerability AMV – Overlapping memory
- Added vulnerability HFC – Pointer casting and pointer
type changes
- Added vulnerability EOJ – Demarcation of control
flow
- Added vulnerability NYY – Dynamically linked code and
self modifying code
- Added vulnerability BRS – Leveraging human
experience
- Added vulnerability CLL – Switch statements and
static analysis
- Added vulnerability NMP – Pre-processor
directives
- Added vulnerability RVG – Pointer arithmetic
- Added vulnerability JCW – Operator precedence
- Added vulnerability KOA – Likely incorrect
expressions
- Added vulnerability MEM – Deprecated features
- Added vulnerability PLF – Floating point
arithmetic
- Added vulnerability STR – Bit representations
Decisions reached in Kona not in this
document
- Changes to the vulnerabilities:
-
- XYQ, XYE, XYF, EWF, XYY, FAB, YOW, XYK, BQF, and
XZM
- New vulnerabilities
-
- REU, NAI, SYM, LAV, CCB, TEX, MTW, SAM, GDL, NZN, CSJ,
and IHN
- New Vulnerability DCM has been moved to a modification to
XYK
Comments not applied to base document
- The programming language that is used as an example should
be identified
- The OS or System that is used as an example should be
identified
- Make 1.1 a grammatical paragraph, not a list.
- 6.x.5 change to "Applicable language characteristics"
- Readers who are expert in only one language, e.g. "C", may
not understand the special terminology of another, e.g. Ada. It
is therefore highly desirable that the distinctive terminology
of each language is covered in Section 3.
- An example would be helpful in 5.2.
- In 6.3.4, last sentence is ambiguous, does it mean
-
- value of parameter field or argument name
- parameter, field, or argument name
- In 6.5.4, last paragraph. Perhaps move or copy as a
definition of lifetime of an object.
- 6.6 XYL. How does one detect that a memory leak is
occurring? If you lose one byte per millisecond a gigabyte of
memory will not be lost until the application has run for 11
days. Might need to add a simple program and system testing may
not detect memory leak that is occurring.
- 6.6.6 first bullet item. Need reference to Garbage
collector referenced and Valgrind
- 6.7.6 second bullet item. Need reference to StackGuard,
ProPolice and Microsoft Visual Studio /GS flag
- 6.9.5, last bullet item. Languages may require it but leave
the effect of not doing so as undefined
- 6.9.6, last bullet item. "assist" is insufficient, it is
necessary to detect violations
- 6.12.5, also closely related is reassigning a value to a
variable without evaluating it
- 6.13.1, there is an implicit assumption that a buffer
starts with an index of zero — is this always the case or
only in language X, Y and Z.
- 6.13.6, last bullet. Many programmers say it is to
inefficient to check array subscript bounds
- 6.14.6, second bullet. Doesn't this advice assume a
particular hardware representation.
- 6.15.1, isn't this a system development/programming error
rather than a language vulnerability
- 7.2.4, last paragraph. Prefer "he" to the clumsy
"he/she"
- 7.3, is this the same vulnerability as when a system stores
"characters of password" rather than
rf('characters of a
password') = x
where there is no simple inverse function
rf-1(x)
that gives "characters of
password"