Executive brief
osquery is a monitoring tool used by security teams to query operating system data like a database. On Windows systems, a flaw in how it inspects digital signatures could allow a standard user to gain full administrative (SYSTEM) control of the machine. This occurs if the tool is used to scan a specially crafted malicious file, potentially leading to a complete compromise of the affected workstation or server.
Technical details
A heap-based buffer overflow (CWE-122) exists in osquery's Windows implementation of the authenticode table. The vulnerability is located in the getOriginalProgramName function, where a call to CryptDecodeObject incorrectly used a pointer to the signer_information buffer as the output destination instead of the dedicated, correctly-sized publisher_info_blob_ptr buffer. An attacker can exploit this by placing a crafted Portable Executable (PE) file with a large SPC_SP_OPUS_INFO attribute on the system; when osquery queries this file's signature data, it triggers an out-of-bounds write. This can lead to local privilege escalation from a standard user to SYSTEM. The issue was resolved in version 5.23.1 by migrating to the CryptDecodeObjectEx API with the CRYPT_DECODE_ALLOC_FLAG to ensure safe buffer management.
Affected products
- osquery osquery < 5.23.1
Timeline
- 2026-05-20: other: Initial fix developed
- 2026-06-24: patched: Version 5.23.1 released
- 2026-07-01: advisory: GitHub Security Advisory published
- 2026-07-10: disclosed: CVE published to NVD