BF Specification of CVE-2015-5221 — Use-after-free in JasPer JPEG-2000 before 1.900.2

../../../../BF/images/BFVUL/BFCVE-2015-5221(simple)-0.png
Erroneous Code (in 'mif_process_cmpt()') to Deallocate ('jas_tvparser_destroy()') with Used size using Explicit mechanism in Standard Library source code (src/libjasper/mif/mif_cod.c#L573) in Userland execution space leads to Dangling Pointer ('tvp') error, which propagates to Dangling Pointer (in 'xxx') to Read on Heap with Used size using Direct mechanism in Standard Library source code (xxx) that results in Use After Deallocate final error, which can be exploited toward Denial of Service (DOS) (availability loss) security failure.



vendor:product: fedoraproject:fedora


Bug Report


Code with Fix


Code with Bug


NVD Entry

ClassDefinition
MMNMemory Management (MMN) class – An object is allocated, resized, or deallocated improperly.
MUSMemory Use (MUS) class – An object is initialized, read, written, or cleared improperly.
OperationDefinition
DeallocateDeallocate operation – Release the allocated memory of an object.
ReadRead operation – Retrieve the data value of an object from memory.
Cause/ConsequenceDefinition
Code BugCode Bug type – An error in the implementation of an operation – proper operands over an improper operation. It is the roor cause of a security vulnerability. Must be fixed to resolve the vulnerability.
   Erroneous CodeErroneous Code bug - There is a coding error in the implementation of the operation.
Address Error/FaultAddress error (or fault) type – The address of an object is wrong.
   Dangling PointerDangling Pointer error (or fault) – Still holds the address of its successfully deallocated object (e.g., a pointer to a freed heap object or address of a stack object returned by a function).
Memory Corruption/Disclosure Final ErrorMemory Corruption/Disclosure final error/exploit vector type – An exploitable or undefined system behavior caused by memory addressing, allocation, use, or deallocation bugs.
   Use After Deallocateuse after free or use after return) final error – An attempt to use (dereference, read, write, or clear) a deallocated object (e.g., via a pointer to a freed or reallocated heap object -- use after free) or out of scope object (e.g., via a returned by a function pointer to a stack object -- use after return).
Operation AttributeDefinition
MechanismMechanism operation attribute type – Shows how the operation with a bug or faulty operand is performed.
   ExplicitExplicit operation attribute – The operation is via a function/method call.
   DirectDirect operation attribute – The operation is on a particular object element.
Source CodeSource Code operation attribute type – Shows where the code of the operation with a bug or faulty operand resides within the software, firmware, or hardware.
   Standard LibraryStandard Library operation attribute – The operation code is in the standard library for a particular programming language.
Execution SpaceExecution Space operation attribute type – Shows where the operation with a bug or faulty operand is executed and the privilege level at which it runs.
   UserlandUserland operation attribute – The bugged code runs in an environment with privilege levels, but in unprivileged mode (e.g., ring 3 in x86 architecture).
Operand AttributeDefinition
Size KindSize Kind operand attribute type – Shows what is used as the size or length (i.e., the number of elements) of an object - e.g., as the limit for traversal over the elements.
   UsedUsed operand attribute – A supplied value to be used as the size or length (i.e., the number of elements) of an object.
Address StateAddress State operand attribute type – Shows where the address is (i.e., its location) in the memory layout.
   HeapThe object is a dynamically allocated data structure (e.g., via malloc() or new).
FailureDefinition
DOSDenial of Service (DOS) – Disruption of access to or use of information or information systems that leads to availability loss.