There is an assertion failure in SingleComponentLSScan::ParseMCU in singlecomponentlsscan.cpp in libjpeg before 1.64 via an empty JPEG-LS scan.
The product contains an assert() or similar statement that can be triggered by an attacker, which leads to an application exit or other behavior that is more severe than necessary.
| Name | Vendor | Start Version | End Version |
|---|---|---|---|
| Libjpeg | Jpeg | * | 1.64 (excluding) |
| Libjpeg | Ubuntu | focal | * |
| Libjpeg | Ubuntu | impish | * |
| Libjpeg | Ubuntu | kinetic | * |
| Libjpeg | Ubuntu | lunar | * |
| Libjpeg | Ubuntu | mantic | * |
| Libjpeg | Ubuntu | oracular | * |
| Libjpeg-turbo | Ubuntu | trusty | * |
| Libjpeg-turbo | Ubuntu | xenial | * |
| Libjpeg6b | Ubuntu | trusty | * |
| Libjpeg6b | Ubuntu | xenial | * |
| Libjpeg9 | Ubuntu | impish | * |
| Libjpeg9 | Ubuntu | xenial | * |
While assertion is good for catching logic errors and reducing the chances of reaching more serious vulnerability conditions, it can still lead to a denial of service. For example, if a server handles multiple simultaneous connections, and an assert() occurs in one single connection that causes all other connections to be dropped, this is a reachable assertion that leads to a denial of service.