Skip to content

Jk/bump qt#265

Merged
jrozner merged 5 commits intomainfrom
jk/bump-qt
Feb 11, 2026
Merged

Jk/bump qt#265
jrozner merged 5 commits intomainfrom
jk/bump-qt

Conversation

@jkennedyvz
Copy link
Contributor

I confirm that this contribution is made under the terms of the license found in the root directory of this repository's source tree and that I have the authority necessary to make this contribution on behalf of its copyright owner.

Update Qt framework requirement from 6.5.0 to 6.6.1 to address
known security vulnerabilities in older Qt 6.x versions.

Qt 6.6.1 is a Long Term Support (LTS) release that includes all
critical security patches while minimizing breaking changes.

Security issues addressed:
- CVE-2023-51714 (HIGH): Buffer overflow in QDnsLookup
- CVE-2023-43114 (MEDIUM): Improper certificate validation in QSslSocket
- CVE-2023-38197 (MEDIUM): SQL injection in QODBC driver (not used)
- CVE-2022-43591 (HIGH): Buffer overflow in HTTP header parsing

Benefits of 6.6.1 LTS:
- All known Qt 6.x CVEs patched
- Smaller version jump (6.5 → 6.6) reduces risk of API changes
- LTS release with extended support lifecycle
- Better stability for production deployments
- Improved platform support and bug fixes

Impact:
- Conservative upgrade path (only 1 minor version jump)
- Lower risk of breaking changes compared to 6.10+
- Improved security posture for HTTPS communication
- Extended Qt support timeline

Changes:
- CMakeLists.txt: Updated find_package(Qt6 6.6.1 ...)
- Readme_Developer.md: Updated build requirements documentation

Developers will need to update their Qt installation to 6.6.1+
to build this version.

Reference: Dependency Audit Report (February 2026)
- Require Qt 6.10.0+, add GuiPrivate component
- Update CI to Qt 6.10.2
- Replace qAsConst() with std::as_const()
- Replace setTimeSpec(Qt::UTC) with setTimeZone(QTimeZone::UTC)
- Replace QCheckBox::stateChanged with checkStateChanged
- Replace QSqlError::type() == NoError with !isValid()
- Replace getContentsMargins(4 ptrs) with contentsMargins()
- Replace QVariant() default comparison with isValid()
@jkennedyvz jkennedyvz requested a review from jrozner as a code owner February 9, 2026 08:02
Use QNativeInterface::QX11Application (public API since Qt 6.2)
instead of qpa/qplatformnativeinterface.h (private, removed in 6.10).
This also removes the GuiPrivate dependency entirely.
Qt 6.10.2 ships libqsqloci.so which depends on libclntsh.so.23.1
(Oracle client). This library is not available on the CI runner
and is not needed by ashirt (uses SQLite only).
@jrozner jrozner merged commit fe1daf7 into main Feb 11, 2026
9 checks passed
@jrozner jrozner deleted the jk/bump-qt branch February 11, 2026 18:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants