A flaw was found in libarchive. An Undefined Behavior vulnerability exists in the zisofs decompression logic, caused by improper validation of a field (pz_log2_bs) read from ISO9660 Rock Ridge extensions. A remote attacker can exploit this by supplying a specially crafted ISO file. This can lead to incorrect memory allocation and potential application crashes, resulting in a denial-of-service (DoS) condition.
An integer value is specified to be shifted by a negative amount or an amount greater than or equal to the number of bits contained in the value causing an unexpected or indeterminate result.
| Name | Vendor | Start Version | End Version |
|---|---|---|---|
| Libarchive | Libarchive | - (including) | - (including) |
| Hardened_images | Redhat | - (including) | - (including) |
| Openshift_container_platform | Redhat | 4.0 (including) | 4.0 (including) |
| Enterprise_linux | Redhat | 6.0 (including) | 6.0 (including) |
| Enterprise_linux | Redhat | 7.0 (including) | 7.0 (including) |
| Enterprise_linux | Redhat | 8.0 (including) | 8.0 (including) |
| Enterprise_linux | Redhat | 9.0 (including) | 9.0 (including) |
| Enterprise_linux | Redhat | 10.0 (including) | 10.0 (including) |
| Red Hat Hardened Images | RedHat | libarchive-main-3.8.7-1.hum1 | * |
| Libarchive | Ubuntu | devel | * |
| Libarchive | Ubuntu | esm-infra-legacy/trusty | * |
| Libarchive | Ubuntu | esm-infra-legacy/xenial | * |
| Libarchive | Ubuntu | esm-infra/bionic | * |
| Libarchive | Ubuntu | esm-infra/focal | * |
| Libarchive | Ubuntu | esm-infra/xenial | * |
| Libarchive | Ubuntu | jammy | * |
| Libarchive | Ubuntu | noble | * |
| Libarchive | Ubuntu | questing | * |
| Libarchive | Ubuntu | resolute | * |
Specifying a value to be shifted by a negative amount is undefined in various languages. Various computer architectures implement this action in different ways. The compilers and interpreters when generating code to accomplish a shift generally do not do a check for this issue. Specifying an over-shift, a shift greater than or equal to the number of bits contained in a value to be shifted, produces a result which varies by architecture and compiler. In some languages, this action is specifically listed as producing an undefined result.