BF Declaration (DCL) Bugs Class
Irena Bojanova, Inventor, Creator, PI, Bugs Framework (BF)

Definition

An object, a function, a type, or a namespace is declared or defined improperly.

Taxonomy

OperationsDefinition
DeclareSpecify the name and type of an object; the name, return type, and parameters of a function; or the name and type parameters of a type.
DefineSpecify the implementation of a function; or the member objects and functions of a type. (The data of an object is specified at its initialization -- see MAD and MUS.)
OperandsDefinition
NameThe declared identifier for an entity.
TypeThe data type of an object -- the set of allowed values (e.g., char is within [-128, 127]) and the operations allowed over them (e.g., +, *, mod).
CausesDefinition
Code Defect BugThe operation has a bug, which is the first cause for the chain of weaknesses underlying a software security vulnerability. The bug must be fixed to resolve the vulnerability.
   Missing CodeThe entire operation implementation or a part of its specification is absent.
   Wrong CodeAn inappropriate data type is specified; or an inappropriate function/operator is used.
   Erroneous CodeThe operation implementation has a bug.
Specification Defect BugA specification (algorithm, protocol) of an operation an error or a rule (policy, keying material) used by the operation has an error, which when implemented becomes the bug causing the chain of weaknesses underlying a software security vulnerability. It must be fixed to fix the bug and to resolve the vulnerability.
   Missing ModifierA required behavioral restriction is absent.
   Wrong ModifierA wrong behavioral restriction is specified.
   Anonymous ScopeThe declaration is in an unnamed scope.
   Wrong ScopeThe declaration should be in another scope.
Type FaultThe set or range of allowed values is wrong or the operations allowed on them are wrong.
   Wrong Type ResolvedA data type is resolved from a wrong scope.
ConsequencesDefinition
Name ErrorThe resolved name is wrong.
   Missing Overridden FunctionFunction implementation in a particular subclass is absent.
   Missing Overloaded FunctionCode for particular function parameters' data types is absent.
Type ErrorThe set or range of allowed values is wrong or the operations allowed on them are wrong.
   Wrong TypeA data type range or structure is not correct.
   Incomplete TypeA specific constructor, method, or overloaded function is missing.
   Wrong Generic TypeA generic object is instantiated via wrong type argument.
   Confused SubtypeThe object invoking an overridden function is of wrong subtype data type.
   Wrong Argument TypeAn argument to an overloaded function is of incorrect data type.
Access Final ErrorAn exploitable or undefined system behavior caused by 'name access' declaration bugs.
   Wrong Access ObjectAn unauthorized access to an object; allows access to sensitive data or to member functions.
   Wrong Access TypeAn unauthorized access to a data type; allows access to member objects and functions.
   Wrong Access FunctionAn unauthorized access to a function; allows its execution.
Operations AttributesDefinition
MechanismShows how the buggy/faulty operation code is performed.
   SimpleNon-polymorphic.
   GenericsParameterizing by type.
   OverridingFunctions with the same name as one in the base type but implemented in different subtypes.
   OverloadingFunctions with the same name in the same declaration scope, but implemented with different signature.
Source CodeShows where the buggy/faulty operation code is in the program -- in what kind of software.
   CodebaseThe operation is in the programmer's code - in the application itself.
   Third-PartyThe operation is in a third-party software.
   Standard LibraryThe operation is in the standard library for a particular programming language.
   Compiler/InterpreterThe operation is in the language processor that allows execution or creates executables (compiler, assembler, interpreter).
Execution SpaceShows where the buggy/faulty operation code is running or with what privilege level).
   LocalThe bugged code runs in an environment with access control policy with limited (local user) permission.
   AdminThe bugged code runs in an environment with access control policy with unlimited (admin user) permission.
   Bare-MetalThe bugged code runs in an environment without privilege control. Usually, the program is the only software running and has total access to the hardware.
Operands AttributesDefinition
         Name KindShows what the entity with this name is.
            ObjectA memory region used to store data.
            FunctionAn organized block of code that when called takes in data, processes it, and produces a result(s).
            Data TypeA set of allowed values and the operations allowed over them.
            NamespaceAn organization of entities' names, utilized to avoid names collision.
         Type KindShows what the data type composition is.
            PrimitiveA scalar data type that mimics the hardware units - e.g., int (long, short, signed), float, double, string, Boolean. A primitive data type is only language defined and is not built from other data types.
            StructureA composite data type - e.g., array, list, map, class. A structured data type is built from other data types and has primitive or structured members.