CVE-2026-88371
Medium · 5.5CVSS
5.5
EPSS
0.2%
Published
Sep 24, 2026
CISA due date
—
Cloudanix analysis
A barcode scanning library can crash when it tries to read certain specially made barcodes, which may interrupt any service or application that depends on scanning those codes.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Undefined behavior triggered in decode6() when decode_e() returns -1 for an invalid Code 128 edge pattern, performing a left-shift on a negative signed integer value that can cause SIGILL termination in trap-mode UBSan instrumented builds.
Why it matters to the business
Barcode scanning applications or services built on ZBar may abruptly terminate when encountering crafted Code 128 input, resulting in operational disruption for any workflow that relies on decoding such barcodes.
How an attack unfolds
An attacker creates a specially crafted Code 128 barcode image containing an invalid edge pattern. When the vulnerable ZBar library processes the image during normal decode operations, decode_e() returns -1, decode6() performs the invalid left-shift, and the process crashes or aborts under UBSan.
How to fix it
Upgrade ZBar to a patched release that correctly handles negative return values from decode_e() before the shift operation; rebuild any dependent applications against the fixed library version and re-test barcode processing paths.
How to confirm the fix worked
Rebuild with UBSan enabled and feed the library a set of Code 128 test vectors containing invalid edge patterns; confirm absence of SIGILL or runtime errors and verify successful decode or graceful error handling on the same inputs.
Typical attack path
- Generate a malicious Code 128 barcode image with an invalid edge pattern
- Supply the image to any application or service that invokes ZBar's Code 128 decoder
- Trigger decode_e() to return -1 for the crafted input
- Execute the left-shift of the negative value inside decode6() to invoke undefined behavior and cause denial of service
How to detect it
Monitor application logs and system crash reports for SIGILL signals or abrupt terminations originating from processes that call ZBar's Code 128 decoding functions when handling barcode images.
What your security team should do
- Track ZBar upstream commits and package updates for the decode6() fix
- Isolate barcode decoding in a low-privilege process or container to limit crash impact
- Add input sanitization or size/format validation before passing images to ZBar
The record
ZBar commit 2ea2ca58 contains an undefined-behavior vulnerability in the Code 128 decode6() function. When processing specially crafted Code 128 input, decode_e() can return -1 for an invalid edge pattern, and decode6() subsequently left-shifts this negative signed value while constructing the edge signature. The operation invokes undefined behavior and can terminate trap-mode UBSan builds with SIGILL, resulting in denial of service.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-115786 A mailbox quota-accounting vulnerability in Zimbra Collaboration Suite (ZCS) allows an… CWE-682
- CVE-2026-113007 Incorrect calculation in Permissions in Google Chrome prior to 156.0.8078.47 allowed a… CWE-682
- CVE-2026-106438 An incorrect calculation in Decimal128 string parsing in the MongoDB C Driver can accept… CWE-682
- CVE-2026-53670 PREVAIL is a Polynomial-Runtime EBPF Verifier using an Abstract Interpretation Layer. CWE-682
- CVE-2026-53671 PREVAIL is a Polynomial-Runtime EBPF Verifier using an Abstract Interpretation Layer. CWE-682
- CVE-2026-53706 PREVAIL is a Polynomial-Runtime EBPF Verifier using an Abstract Interpretation Layer. CWE-682
- CVE-2026-54754 Klever-Go is the Go implementation of the Klever blockchain protocol. CWE-682
- CVE-2026-76043 Incorrect calculation in V8 in Google Chrome prior to 151.0.7922.169 allowed a remote… CWE-682