Quill обеспечивает простое подписание и нотариальное заверение двоичных файлов Mac на любой платформе. Quill до версии v0.7.1 содержит уязвимость неограниченного выделения памяти при анализе двоичных файлов Mach-O. Для эксплуатации требуется, чтобы Quill обработал двоичный файл Mach-O, предоставленный злоумышленником, что наиболее вероятно в таких средах, как конвейеры CI/CD, общие службы подписи или любой рабочий процесс, где двоичные файлы, отправленные извне, принимаются для подписи.
При анализе двоичного файла Mach-O Quill считывает несколько полей размера и количества из команды загрузки LC_CODE_SIGNATURE и встроенных структур подписи кода (SuperBlob, BlobIndex) и использует их для выделения буферов памяти, не проверяя, являются ли значения разумными или соответствующими фактическому размеру файла. Затронутые поля включают DataSize, DataOffset и Size из команды загрузки, Count из заголовка SuperBlob и Длина из заголовков отдельных больших двоичных объектов. Злоумышленник может создать вредоносный двоичный файл Mach-O минимального размера (около 4 КБ) с чрезвычайно большими значениями в этих полях, в результате чего Quill попытается выделить избыточную память.
Это приводит к исчерпанию памяти и отказу в обслуживании, что может привести к сбою хост-процесса. При анализе ненадежных файлов Mach-O это затрагивает как Quill CLI, так и библиотеку Go. Эта уязвимость исправлена в версии 0.7.1.
Показать оригинальное описание (EN)
Quill provides simple mac binary signing and notarization from any platform. Quill before version v0.7.1 contains an unbounded memory allocation vulnerability when parsing Mach-O binaries. Exploitation requires that Quill processes an attacker-supplied Mach-O binary, which is most likely in environments such as CI/CD pipelines, shared signing services, or any workflow where externally-submitted binaries are accepted for signing. When parsing a Mach-O binary, Quill reads several size and count fields from the LC_CODE_SIGNATURE load command and embedded code signing structures (SuperBlob, BlobIndex) and uses them to allocate memory buffers without validating that the values are reasonable or consistent with the actual file size. Affected fields include DataSize, DataOffset, and Size from the load command, Count from the SuperBlob header, and Length from individual blob headers. An attacker can craft a minimal (~4KB) malicious Mach-O binary with extremely large values in these fields, causing Quill to attempt to allocate excessive memory. This leads to memory exhaustion and denial of service, potentially crashing the host process. Both the Quill CLI and Go library are affected when used to parse untrusted Mach-O files. This vulnerability is fixed in 0.7.1.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Anchore Quill
cpe:2.3:a:anchore:quill:*:*:*:*:*:*:*:*
|
— |
0.7.1
|