Skip to main content

Qt for MCUs CVE-2026-95509

| EUVDEUVD-2026-88732 HIGH
Out-of-bounds Read (CWE-125)
2026-09-29 Qt GHSA-5q52-pjpv-x8mh
8.8
CVSS 4.0 · Vendor: Qt
View

Attack ChainAIDerived

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

  1. Access
    Supply Latin-1 string to app input
  2. Delivery
    Value reaches String.arg() formatting
  3. Exploit
    Wrong buffer size computed
  4. Execution
    Out-of-bounds read past buffer
  5. Impact
    Leak adjacent memory or crash UI

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Bounds checking, read limits
MITRE ATT&CK

1 technique across 1 tactic: Collection

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires a Qt for MCUs application that passes a Latin-1-optimized string containing Latin-1 characters into the QML String.arg() formatting function; the bug only triggers on that specific string optimization/character combination. Practical exploitation is LIMITED by the need for attacker-influenced data to actually reach String.arg() in the target application (integration-dependent, not a default network service), by the specific Latin-1 encoding precondition, and by the affected product being embedded MCU firmware rather than a general internet-facing server. The vendor vector claims no authentication or user interaction, but network reachability is application-specific and should be verified.

Impact

The single quantitative signal is the vendor (Qt) CVSS 4.0 base score of 8.8 (AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:H). No EPSS score, no CISA KEV listing, and no public exploit are present in the input, so exploitation status is 'no public exploit identified at time of analysis'. The high score is driven mostly by VA:H (availability) plus low confidentiality/integrity from an out-of-bounds READ (CWE-125). Two signals should be treated skeptically: (1) AV:N/PR:N/UI:N implies remote, unauthenticated, zero-interaction exploitation, yet the root cause is a buffer-size miscalculation inside the QML String.arg() formatting path on a microcontroller GUI framework - reaching it network-unattended requires that attacker-influenced Latin-1 string data actually flow into String.arg(), which is application- and integration-specific rather than a default network-facing service; verify the network reachability claim with Qt. (2) VI:L (integrity impact) is questionable for a pure read primitive and likely reflects corrupted/incorrect rendered output rather than true data tampering. Net: this is a real memory-safety defect worth patching in affected embedded builds, but the '8.8' is a vendor self-assessment whose network/unauthenticated framing overstates real-world reachability for most deployments. Absent EPSS/KEV/POC, this is not evidence of active or imminent widespread exploitation.

Exploit ScenarioDerived

In a Qt for MCUs application that formats attacker-influenced text through QML String.arg() where the string is Latin-1-optimized and contains Latin-1 characters, the incorrect buffer-size calculation causes the formatter to read past the buffer. This can leak adjacent memory contents into the rendered/returned output or crash the application on the microcontroller. No public proof-of-concept is identified in the provided data.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

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

Alert me

AnalysisAIv1 – Sep 29, 2026

Out-of-bounds read in Qt for MCUs occurs when an application passes a Latin-1-optimized string containing Latin-1 characters into the QML String.arg() formatting function, causing an incorrect buffer size calculation that yields incorrect formatting output and out-of-bounds memory reads. The vendor rates this 8.8 (CVSS 4.0) with high availability impact, and the vendor vector indicates unauthenticated (PR:N) network exploitation with no user interaction (UI:N), though practical exploitation is limited by the specific Latin-1 encoding precondition and the need for attacker-influenced data to actually reach String.arg() in embedded MCU firmware. No public exploit identified at time of analysis.

RemediationAI

No vendor-released patch identified at time of analysis. Monitor the vendor advisory at https://wiki.qt.io/List_of_known_vulnerabilities_in_Qt_products#CVE-2026-95509 for updates. Until a patch is available, apply the following compensating controls: avoid passing Latin-1-optimized strings that contain Latin-1 characters directly into String.arg(); explicitly convert or normalize such strings to a neutral encoding (e.g., UTF-8 or a plain string) before formatting, though this may increase memory usage on constrained MCUs. Validate and sanitize all data reaching String.arg() from external or untrusted sources, rejecting or escaping unexpected Latin-1 sequences; this may add processing overhead but reduces exposure. If feasible, disable the Latin-1 string optimization in the Qt for MCUs build configuration to eliminate the precondition, with a trade-off of potentially higher RAM/ROM use and reduced performance. Restrict network reachability of the MCU device and any QML input channels to trusted sources, since exploitation is application-specific and requires attacker-influenced data to reach the vulnerable function; this may limit intended functionality.

Affected VersionsENISA

Qt for MCUs 2.6.0 <2.11.3
Qt for MCUs 2.12.0 <2.12.3

Affected Packages

euvd qt_for_mcus fix: 2.11.3, 2.12.3

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

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

Technical ContextAI · show details

The vulnerability is rooted in Qt for MCUs, a Qt framework for resource-constrained microcontrollers where strings may be internally stored in a Latin-1 (8-bit) optimized representation to save memory. QML's String.arg() method performs placeholder-based formatting; when it receives a Latin-1-optimized string that contains Latin-1 characters, an incorrect buffer size calculation causes out-of-bounds reading. The root cause class is CWE-125 (Out-of-bounds Read), which can disclose adjacent memory contents (confidentiality low) and may crash the process (availability high, consistent with vendor VA:H and our assessed A:H). The affected CPE is cpe:2.3:a:qt:qt_for_mcus:*:*:*:*:*:*:*:*, covering all versions of Qt for MCUs. Our independent assessment (CVSS 3.1 AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:H) rates attack complexity as high and integrity impact as none, differing from the vendor's low integrity claim; the vendor vector claims no authentication (PR:N) and no user interaction (UI:N), but network reachability and exploitability are application-specific because the attacker-influenced string must reach String.arg().

Know when Qt 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 (Qt) PRIMARY 8.8 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:H/SC:N/SI:N/SA:N
vuln.today AI 6.5 MEDIUM

AC:H because a specific Latin-1-optimized string with Latin-1 characters is required; C:L for OOB read leakage, I:N (read-only), A:H for likely crash; AV:N kept but reachability is integration-dependent.

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

Primary rating from Vendor (Qt).

CVSS VectorVendor: Qt

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Sep 29, 2026 - 12:16 EUVD
CVE Published
Sep 29, 2026 - 10:40 cve.org
HIGH 8.8

DescriptionCVE.org

Strings optimized for Latin-1 displaying Latin-1 characters cause incorrect String.arg() formatting by an incorrect buffer size calculation, causing out-of-bounds reading.

Executive ViewAI

Why It Matters

A high-severity memory-handling flaw in Qt for MCUs (CVE-2026-95509, CVSS 8.8) can cause embedded devices that format attacker-influenced text through QML string functions to expose memory contents or become unstable. Any organization that builds, ships, or operates firmware on Qt for MCUs - particularly in medical, industrial, automotive, and consumer IoT products - faces device-availability, data-exposure, and product-liability exposure, and the vendor has not released a fix. Because exploitation requires a narrow encoding precondition and attacker-controlled data reaching a specific formatting call, near-term risk is contained, but unpatched embedded fleets are slow to remediate once code paths are confirmed.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: strictly validate, length-limit, and canonicalize all external input before it reaches QML String.arg(); avoid passing Latin-1-optimized strings from untrusted sources into that function; restrict or segment network exposure and disable unnecessary remote input surfaces on affected devices; add memory-safety guard checks and fault handling around QML formatting paths to convert potential memory faults into controlled failures; monitor device telemetry for abnormal resets or crashes; and engage Qt commercial support for a fixed Qt for MCUs release, applying it as soon as it is available.

Threat Intelligence Overview

EPSS Score
0.3%
Top 78% exploitable
Prevalence
Low
Niche embedded GUI framework for microcontrollers, not broad enterprise deployment
Data Quality
4 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 HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.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
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

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

Attack Technique

A buffer overflow occurs when a program writes more data to a memory buffer than it was allocated to hold, causing the excess data to spill into adjacent memory regions.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

More in Qt

View all
CVE-2020-12267 CRITICAL POC
9.8 Apr 27

setMarkdown in Qt before 5.14.2 has a use-after-free related to QTextMarkdownImporter::insertBlock. Rated critical sever

CVE-2023-37369 HIGH POC
7.5 Aug 20

In Qt before 5.15.15, 6.x before 6.2.9, and 6.3.x through 6.5.x before 6.5.2, there can be an application crash in QXmlS

CVE-2020-13962 HIGH POC
7.5 Jun 09

Qt 5.12.2 through 5.14.2, as used in unofficial builds of Mumble 1.3.0 and other products, mishandles OpenSSL's error qu

CVE-2020-0570 HIGH POC
7.3 Sep 14

Uncontrolled search path in the QT Library before 5.14.0, 5.12.7 and 5.9.10 may allow an authenticated user to potential

CVE-2023-51714 CRITICAL
9.8 Dec 24

An issue was discovered in the HTTP2 implementation in Qt before 5.15.17, 6.x before 6.2.11, 6.3.x through 6.5.x before

CVE-2024-36048 CRITICAL
9.8 May 18

QAbstractOAuth in Qt Network Authorization in Qt before 5.15.17, 6.x before 6.2.13, 6.3.x through 6.5.x before 6.5.6, an

CVE-2017-10904 CRITICAL
9.8 Dec 16

Qt for Android prior to 5.9.0 allows remote attackers to execute arbitrary OS commands via unspecified vectors. Rated cr

CVE-2018-19873 CRITICAL
9.8 Dec 26

An issue was discovered in Qt before 5.11.3. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploita

CVE-2016-10040 MEDIUM POC
5.5 Mar 07

Stack-based buffer overflow in QXmlSimpleReader in Qt 4.8.5 allows remote attackers to cause a denial of service (applic

CVE-2018-19870 HIGH
8.8 Dec 26

An issue was discovered in Qt before 5.11.3. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable,

CVE-2018-15518 HIGH
8.8 Dec 26

QXmlStream in Qt 5.x before 5.11.3 has a double-free or corruption during parsing of a specially crafted illegal XML doc

CVE-2026-12593 HIGH
8.7 Jul 09

Privilege escalation in the Qt Axivion Dashboard allows an authenticated low-privileged user to mint API tokens for othe

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