Skip to main content

ZBar CVE-2026-88371

| EUVDEUVD-2026-86270 MEDIUM
Incorrect Calculation (CWE-682)
2026-09-24 mitre GHSA-437j-8v4m-47vv
5.5
CVSS 3.1 · Vendor: mitre
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Craft malicious Code 128 barcode input
  2. Exploit
    Submit to ZBar-based scanning application
  3. Execution
    Trigger negative signed left-shift UB in decode6()
  4. Impact
    Abort UBSan trap build with SIGILL (DoS)

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Calculation correctness
Exploitation Conditions

Exploitation requires (1) an application that embeds ZBar at the vulnerable commit (2ea2ca58) with Code 128 decoding active, (2) the attacker's ability to supply a crafted Code 128 barcode for scanning (user interaction / passive input feed, UI:R), and (3) most significantly, a build compiled with trap-mode UndefinedBehaviorSanitizer (UBSan), since the SIGILL abort only triggers in that configuration. These are strong limiting factors: it is local (AV:L), not network-reachable, needs the victim to process attacker-supplied input, and the deterministic crash depends on a non-default sanitizer build typically used only in development, testing, or fuzzing rather than production.

Impact

This is a genuinely low-priority issue despite a moderate CVSS 5.5. The provided vector (CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H) correctly captures a local, user-interaction-dependent denial of service with no confidentiality or integrity impact. All signals point the same direction: EPSS is very low (0.15%, 3rd percentile), the CVE is NOT on CISA KEV, and no exploit is flagged. Critically, the description itself caps real-world impact - the SIGILL crash manifests specifically in 'trap-mode UBSan builds,' which are development/testing/fuzzing configurations, NOT typical production deployments. In an ordinary optimized build the left-shift of a negative signed value is undefined behavior but will usually not deterministically crash the process, so the A:H rating overstates production availability impact; a real-world A:L is more defensible. The signals are consistent and non-conflicting, so there is no contradiction to flag - rather, the caveat is that the A:H impact is build-configuration-dependent, which the raw CVSS score does not surface.

Exploit ScenarioDerived

An attacker crafts a malicious Code 128 barcode (image or data stream) and gets it scanned by an application that embeds ZBar built with UBSan trap mode enabled. When decode_e() returns -1 for the invalid edge pattern, decode6() left-shifts the negative value, triggering undefined behavior that aborts the process with SIGILL and denies service. The referenced GitHub issue (#336) likely contains reproduction details, but no packaged public exploit is indicated in the input data.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 06, 2026

A crafted Code 128 barcode can abort ZBar (commit 2ea2ca58) with SIGILL when the library is built with trap-mode UndefinedBehaviorSanitizer, because decode_e() returns -1 for an invalid edge pattern and decode6() then left-shifts that negative signed value while assembling the edge signature. The issue is local and requires the victim to feed attacker-supplied barcode input into a ZBar-embedding application (UI:R), and the deterministic crash only occurs in non-default sanitizer builds typically used for development, testing, or fuzzing; production binaries compiled without trap-mode UBSan are not expected to terminate reproducibly. With an EPSS score of only 0.15% (3rd percentile), no KEV listing, and no publicly available exploit code identified at time of analysis, this is a low-priority, sanitizer-configuration-dependent robustness bug rather than a broadly exploitable denial-of-service flaw.

RemediationAI

No vendor-released patch identified at time of analysis; the only upstream pointer in the references is GitHub issue https://github.com/mchehab/zbar/issues/336, which should be monitored for a merged fix and tagged release, and the NVD record https://nvd.nist.gov/vuln/detail/CVE-2026-88371 should be watched for an updated version mapping. Because the deterministic SIGILL abort only manifests in trap-mode UndefinedBehaviorSanitizer builds, the most direct mitigation for deployed binaries is to stop building production, test, or fuzzing targets with trap-mode UBSan (-fsanitize-trap=undefined, or UBSAN_OPTIONS=halt_on_error=1) for the ZBar decode path; the trade-off is that this suppresses the symptom rather than correcting the arithmetic, and it hides the underlying defect from future sanitizer runs. A code-level fix is straightforward if you maintain a fork: validate the decode_e() result before shifting in decode6() (skip or reject the edge signature when the sentinel -1 is returned, or perform the shift on an explicitly unsigned value), which eliminates the UB at its source with no functional loss for valid Code 128 symbols. Where Code 128 is not a required symbology, disabling that decoder (for example by restricting the enabled symbology set in the embedding application so Code 128 scanning is inactive) removes the reachable code path entirely, at the cost of losing Code 128 support for legitimate scanning; conversely, treating all scanned barcode payloads as untrusted input and scanning only trusted or physically controlled media reduces attacker-supplied-input exposure but is impractical for consumer scanning workflows. Restricting who can submit input to a ZBar-embedding process remains a useful compensating control given the local, user-interaction-dependent (AV:L, UI:R) nature of the flaw.

Affected VersionsENISA

n/a n/a

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

ZBar is a barcode and QR code scanning library used both standalone (zbarimg, zbarcam) and embedded in applications on desktop and mobile platforms. The Code 128 decoder resolves edge transitions between bar and space modules through helper functions: decode_e() computes an edge-to-module ratio and returns -1 as an error sentinel when the observed pattern is invalid, and decode6() consumes that value to build a packed edge signature. In the vulnerable commit, decode6() performs a left shift on the signed -1 result without first validating it, and shifting a negative signed integer is undefined behavior under the C standard - the root cause class captured by CWE-682 (Incorrect Calculation). On typical production compilers the expression simply evaluates to an implementation-defined bit pattern, but when the code is compiled with UndefinedBehaviorSanitizer in trap mode (for example -fsanitize=undefined with trap or halt_on_error semantics), the runtime converts the UB into an immediate SIGILL abort, turning a benign arithmetic mistake into a denial of service. The CPE string supplied with the record is an uninformative n/a placeholder, and the EUVD affected-version entry is likewise n/a, so the precise affected release range cannot be derived from the feed data; the affected artifact is best identified as ZBar source at or derived from commit 2ea2ca58, with the upstream issue tracked at GitHub issue 336.

Know when Zbar gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (mitre) PRIMARY 5.5 MEDIUM
AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H
vuln.today AI 3.3 LOW

Local crafted input with victim interaction (AV:L/UI:R), no auth (PR:N); availability lowered to A:L because the SIGILL crash only occurs in non-default UBSan trap builds, not production.

3.1 AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:L
4.0 AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
SUSE 6.5 MEDIUM
AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H

Primary rating from Vendor (mitre).

CVSS VectorVendor: mitre

Attack Vector
Local
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

2
CVSS changed
Oct 06, 2026 - 18:22 NVD
5.5 (MEDIUM)
CVE Published
Sep 24, 2026 - 00:00 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

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.

Threat Intelligence Overview

EPSS Score
0.1%
Top 97% exploitable
Prevalence
Medium
popular open-source barcode library embedded in many apps, not ubiquitous
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

28
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +28
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Module for Desktop Applications 15 SP7 Affected
SUSE Linux Enterprise Module for Package Hub 15 SP7 Affected
SUSE Linux Enterprise Server 15 SP7 Affected
SUSE Linux Enterprise Server 16.0 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy