C++ and Programming Language Vulnerabilities
Stephen Michell Convenor of ISO/IEC/JTC 1/SC 22/WG 23 Programming Language Vulnerabilities stephen.michell@csagroup.org stephen.michell@maurya.on.ca
C++ and Programming Language Vulnerabilities Stephen Michell - - PowerPoint PPT Presentation
C++ and Programming Language Vulnerabilities Stephen Michell Convenor of ISO/IEC/JTC 1/SC 22/WG 23 Programming Language Vulnerabilities stephen.michell@csagroup.org stephen.michell@maurya.on.ca Outline History of WG 23 Edition 3
Stephen Michell Convenor of ISO/IEC/JTC 1/SC 22/WG 23 Programming Language Vulnerabilities stephen.michell@csagroup.org stephen.michell@maurya.on.ca
the can cause application and system failures
language vulnerabilities through language selection and use in 2010
application matter.
makes choices that leave applications open to programming errors or attacks that can be detrimental to systems or users that depend on the application.
avoid it.
features of the language are used.
apply to many vulnerabilities in clauses 6 & 7
resources
memory locations. This leads to reusing variables, releasing and reallocating memory, sharing or reinterpreting data in other contexts
I/O channels
misused in a way that could adversely affect the system that relies upon the application.
mitigate the risks, but cannot eliminate them.
environment, or the communications protocols, or the timing order of application components, or the order of access to external resources, then attacks can be constructed that will compromise the system.
characters)
dynamically.
neighbouring buffers or onto the stack, resulting in program failure or even arbitrary code execution.
shown to obey the size limitations of the buffer.
access to the buffer to methods of the class.
method with one that has stronger preconditions or weaker postconditions
tools, etc.
projects with stringent needs for security or safety
functions with side effects, calendar clock, atomic data
and recommending approaches and techniques to avoid them
documented in TR24772-3 clause 6.x exists in C++