CVE-2024-25580
NoneCVSS
—
EPSS
0.3%
Published
Mar 27, 2024
CISA due date
—
Cloudanix analysis
A flaw in Qt software lets attackers crash programs or potentially take control by tricking them into opening a specially made image file.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Buffer Overflow
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Buffer overflow in KTX image parsing code allows out-of-bounds memory writes and application crash when a specially crafted KTX file is processed.
Why it matters to the business
Applications using affected Qt versions can crash when loading untrusted images, causing denial of service; in worst cases this may enable remote code execution if memory corruption is leveraged.
How an attack unfolds
An attacker crafts a malicious KTX image file that triggers the overflow in qktxhandler.cpp, then causes a victim application to load the file through normal image handling paths.
How to fix it
Upgrade Qt to 5.15.17, 6.2.12, 6.5.5, 6.6.2 or later; for qtbase GIT apply commit 8e79bee4afa2a1466f360f44fb07d24e432a82a6.
How to confirm the fix worked
Confirm the installed Qt version is at or above the fixed releases, then test image loading with known-good and known-bad KTX samples to verify no crash occurs.
Typical attack path
- Attacker prepares a malformed KTX file exploiting the parsing flaw
- Malicious image is delivered via web, email, file share, or application input
- Target application using vulnerable Qt loads and parses the KTX file
- Buffer overflow occurs, potentially leading to crash or arbitrary code execution
How to detect it
Review application logs and crash reports for unexpected terminations during KTX or image file processing; look for Qt-based processes handling untrusted image inputs shortly before crashes.
What your security team should do
- Immediately update all Qt installations to the fixed versions listed
- Scan codebases and containers for references to vulnerable Qt versions
- Restrict processing of untrusted KTX or image files until patched
- Monitor EPSS and threat intel for any increase in exploit activity
The record
An issue was discovered in gui/util/qktxhandler.cpp in Qt before 5.15.17, 6.x before 6.2.12, 6.3.x through 6.5.x before 6.5.5, and 6.6.x before 6.6.2. A buffer overflow and application crash can occur via a crafted KTX image file.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:8 | qt5-qtbase | 0 | 5.15.3-7.el8 |
| AlmaLinux:8 | qt5-qtbase-common | 0 | 5.15.3-7.el8 |
| AlmaLinux:8 | qt5-qtbase-devel | 0 | 5.15.3-7.el8 |
| AlmaLinux:8 | qt5-qtbase-examples | 0 | 5.15.3-7.el8 |
| AlmaLinux:8 | qt5-qtbase-gui | 0 | 5.15.3-7.el8 |
| AlmaLinux:8 | qt5-qtbase-mysql | 0 | 5.15.3-7.el8 |
| AlmaLinux:8 | qt5-qtbase-odbc | 0 | 5.15.3-7.el8 |
| AlmaLinux:8 | qt5-qtbase-postgresql | 0 | 5.15.3-7.el8 |
| AlmaLinux:8 | qt5-qtbase-private-devel | 0 | 5.15.3-7.el8 |
| AlmaLinux:8 | qt5-qtbase-static | 0 | 5.15.3-7.el8 |
| AlmaLinux:9 | qt5-qtbase | 0 | 5.15.9-9.el9 |
| AlmaLinux:9 | qt5-qtbase-common | 0 | 5.15.9-9.el9 |
| AlmaLinux:9 | qt5-qtbase-devel | 0 | 5.15.9-9.el9 |
| AlmaLinux:9 | qt5-qtbase-examples | 0 | 5.15.9-9.el9 |
| AlmaLinux:9 | qt5-qtbase-gui | 0 | 5.15.9-9.el9 |
| AlmaLinux:9 | qt5-qtbase-mysql | 0 | 5.15.9-9.el9 |
| AlmaLinux:9 | qt5-qtbase-odbc | 0 | 5.15.9-9.el9 |
| AlmaLinux:9 | qt5-qtbase-postgresql | 0 | 5.15.9-9.el9 |
| AlmaLinux:9 | qt5-qtbase-private-devel | 0 | 5.15.9-9.el9 |
| AlmaLinux:9 | qt5-qtbase-static | 0 | 5.15.9-9.el9 |
| Debian:11 | qtbase-opensource-src | 0 | 5.15.2+dfsg-9+deb11u1 |
| Debian:11 | qtbase-opensource-src-gles | 0 | No fix |
| Debian:12 | qt6-base | 0 | No fix |
| Debian:12 | qtbase-opensource-src | 0 | 5.15.8+dfsg-11+deb12u2 |
| Debian:12 | qtbase-opensource-src-gles | 0 | No fix |
| Debian:13 | qt6-base | 0 | No fix |
| Debian:13 | qtbase-opensource-src | 0 | 5.15.10+dfsg-7 |
| Debian:13 | qtbase-opensource-src-gles | 0 | 5.15.10+dfsg-5 |
| Mageia:9 | qtbase5 | 0 | 5.15.7-6.1.mga9 |
| Mageia:9 | qtbase6 | 0 | 6.4.1-5.1.mga9 |
| Red Hat:enterprise_linux:8::appstream | qt5-qtbase | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::appstream | qt5-qtbase-common | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::appstream | qt5-qtbase-debuginfo | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::appstream | qt5-qtbase-debugsource | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::appstream | qt5-qtbase-devel | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::appstream | qt5-qtbase-devel-debuginfo | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::appstream | qt5-qtbase-examples | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::appstream | qt5-qtbase-examples-debuginfo | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::appstream | qt5-qtbase-gui | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::appstream | qt5-qtbase-gui-debuginfo | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::appstream | qt5-qtbase-mysql | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::appstream | qt5-qtbase-mysql-debuginfo | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::appstream | qt5-qtbase-odbc | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::appstream | qt5-qtbase-odbc-debuginfo | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::appstream | qt5-qtbase-postgresql | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::appstream | qt5-qtbase-postgresql-debuginfo | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::appstream | qt5-qtbase-private-devel | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::appstream | qt5-qtbase-static | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::appstream | qt5-qtbase-tests-debuginfo | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::crb | qt5-qtbase | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::crb | qt5-qtbase-common | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::crb | qt5-qtbase-debuginfo | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::crb | qt5-qtbase-debugsource | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::crb | qt5-qtbase-devel | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::crb | qt5-qtbase-devel-debuginfo | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::crb | qt5-qtbase-examples | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::crb | qt5-qtbase-examples-debuginfo | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::crb | qt5-qtbase-gui | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::crb | qt5-qtbase-gui-debuginfo | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::crb | qt5-qtbase-mysql | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::crb | qt5-qtbase-mysql-debuginfo | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::crb | qt5-qtbase-odbc | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::crb | qt5-qtbase-odbc-debuginfo | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::crb | qt5-qtbase-postgresql | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::crb | qt5-qtbase-postgresql-debuginfo | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::crb | qt5-qtbase-private-devel | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::crb | qt5-qtbase-static | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:8::crb | qt5-qtbase-tests-debuginfo | 0 | 0:5.15.3-7.el8 |
| Red Hat:enterprise_linux:9::appstream | qt5-qtbase | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::appstream | qt5-qtbase-common | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::appstream | qt5-qtbase-debuginfo | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::appstream | qt5-qtbase-debugsource | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::appstream | qt5-qtbase-devel | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::appstream | qt5-qtbase-devel-debuginfo | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::appstream | qt5-qtbase-examples | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::appstream | qt5-qtbase-examples-debuginfo | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::appstream | qt5-qtbase-gui | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::appstream | qt5-qtbase-gui-debuginfo | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::appstream | qt5-qtbase-mysql | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::appstream | qt5-qtbase-mysql-debuginfo | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::appstream | qt5-qtbase-odbc | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::appstream | qt5-qtbase-odbc-debuginfo | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::appstream | qt5-qtbase-postgresql | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::appstream | qt5-qtbase-postgresql-debuginfo | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::appstream | qt5-qtbase-private-devel | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::appstream | qt5-qtbase-static | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::appstream | qt5-qtbase-tests-debuginfo | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::crb | qt5-qtbase | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::crb | qt5-qtbase-common | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::crb | qt5-qtbase-debuginfo | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::crb | qt5-qtbase-debugsource | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::crb | qt5-qtbase-devel | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::crb | qt5-qtbase-devel-debuginfo | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::crb | qt5-qtbase-examples | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::crb | qt5-qtbase-examples-debuginfo | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::crb | qt5-qtbase-gui | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::crb | qt5-qtbase-gui-debuginfo | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::crb | qt5-qtbase-mysql | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::crb | qt5-qtbase-mysql-debuginfo | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::crb | qt5-qtbase-odbc | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::crb | qt5-qtbase-odbc-debuginfo | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::crb | qt5-qtbase-postgresql | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::crb | qt5-qtbase-postgresql-debuginfo | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::crb | qt5-qtbase-private-devel | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::crb | qt5-qtbase-static | 0 | 0:5.15.9-9.el9 |
| Red Hat:enterprise_linux:9::crb | qt5-qtbase-tests-debuginfo | 0 | 0:5.15.9-9.el9 |
| Ubuntu:16.04:LTS | qtbase-opensource-src-gles | 0 | No fix |
| Ubuntu:20.04:LTS | qtbase-opensource-src | 0 | No fix |
| Ubuntu:20.04:LTS | qtbase-opensource-src-gles | 0 | No fix |
| Ubuntu:22.04:LTS | qt6-base | 0 | No fix |
| Ubuntu:22.04:LTS | qtbase-opensource-src | 0 | No fix |
| Ubuntu:22.04:LTS | qtbase-opensource-src-gles | 0 | No fix |
| Ubuntu:24.04:LTS | qt6-base | 0 | No fix |
| Ubuntu:24.04:LTS | qtbase-opensource-src | 0 | No fix |
| Ubuntu:24.04:LTS | qtbase-opensource-src-gles | 0 | No fix |
| Ubuntu:24.10 | qt6-base | 0 | No fix |
| Ubuntu:24.10 | qtbase-opensource-src | 0 | 5.15.13+dfsg-1ubuntu1 |
| Ubuntu:24.10 | qtbase-opensource-src-gles | 0 | No fix |
| Ubuntu:25.04 | qt6-base | 0 | No fix |
| Ubuntu:25.04 | qtbase-opensource-src | 0 | No fix |
| Ubuntu:25.04 | qtbase-opensource-src-gles | 0 | No fix |
| Ubuntu:25.10 | qt6-base | 0 | No fix |
| Ubuntu:25.10 | qtbase-opensource-src-gles | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | qtbase-opensource-src | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | qtbase-opensource-src-gles | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | qtbase-opensource-src | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | qtbase-opensource-src | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | qtbase-opensource-src | 0 | 5.12.8+dfsg-0ubuntu2.1+esm2 |
| Ubuntu:Pro:20.04:LTS | qtbase-opensource-src-gles | 0 | No fix |
| Ubuntu:Pro:22.04:LTS | qtbase-opensource-src | 0 | No fix |
| Ubuntu:Pro:22.04:LTS | qtbase-opensource-src | 0 | 5.15.3+dfsg-2ubuntu0.2+esm2 |
| openSUSE:Tumbleweed | libqt5-qtbase | 0 | 5.15.12+kde151-1.1 |
| openSUSE:Tumbleweed | qt6-base | 0 | 6.6.2-2.1 |