V
Сканер-ВСкаталог уязвимостей · v4.2
CAPEC-540СтандартЧерновик
Абстракция: Стандарт
Статус: Черновик
Источник ↗

Чтение за границами буфера

Злоумышленник атакует цель, передавая входные данные, вынуждающие приложение читать за пределами границы определённого буфера. Как правило, это происходит, когда значение, определяющее начало или конец чтения, установлено на позиции за пределами допустимой области памяти буфера. Атака данного типа может привести к раскрытию конфиденциальной информации, аварийному завершению работы системы или выполнению произвольного кода.

Открыть в каталоге с фильтром CAPEC →

Связанные уязвимости

CVE-2026-24826Out-of-bounds Write, Divide By Zero, NULL Pointer Dereference, Use of Uninitialized Resource, Out-of-bounds Read, Reachable Assertion vulnerability in cadaver turso3d.This issue affects .
CVE-2024-5991В функции MatchDomainName() входной параметр str обрабатывается как строка, завершающаяся NULL, несмотря на то, что он предоставлен пользователем и не проверен. В частности, функция X509_check_host() принимает указатель и длину для проверки, без каких-либо требований к завершению NULL. Если вызывающий объект пытался выполнить проверку имени в буфере, не заканчивающемся NULL, код считывал бы за пределы входного массива, пока не нашел бы признак конца строки NULL. Эта проблема затрагивает wolfSSL: до версии 5.7.0.
CVE-2024-47039В isSlotMarkedSuccessful в BootControl.cpp существует возможный выход за границы чтения из-за отсутствующей проверки границ. Это может привести к раскрытию локальной информации без необходимости дополнительных прав на выполнение. Для эксплуатации не требуется взаимодействие с пользователем.
CVE-2021-41556sqclass.cpp в Squirrel версий 2.2.5 и 3.x до 3.1 допускает чтение за границами (в основном интерпретаторе), что может привести к выполнению кода. Если жертва выполняет управляемый злоумышленником скрипт Squirrel, злоумышленник может вырваться из песочницы скрипта Squirrel, даже если все опасные функции, такие как функции файловой системы, были отключены. Злоумышленник может злоупотребить этой ошибкой для нацеливания (например) на облачные сервисы, которые допускают настройку с помощью SquirrelScripts, или распространять вредоносное ПО через видеоигры, которые встраивают движок Squirrel.
CVE-2021-21777В функции обработки Ethernet/IP UDP EIP Stack Group OpENer 2.3 и разработке commit 8c73bf3 существует уязвимость раскрытия информации. Специально созданный сетевой запрос может привести к чтению за пределами выделенной области памяти.
CVE-2017-14451В libevm (виртуальная машина Ethereum) CPP-Ethereum обнаружена уязвимость чтения за пределами границ, допускающая эксплуатацию. Специально созданный код смарт-контракта может вызвать чтение за пределами границ, которое впоследствии может вызвать запись за пределами границ, приводящую к удаленному выполнению кода. Злоумышленник может создать/отправить вредоносный смарт-контракт, чтобы вызвать эту уязвимость.
CVE-2009-2523Сервер ведения журнала лицензий (llssrv.exe) в Microsoft Windows 2000 SP4 позволяет удаленным злоумышленникам выполнять произвольный код через RPC-сообщение, содержащее строку без нулевого терминатора, что вызывает переполнение буфера на основе кучи в методе LlsrLicenseRequestW, также известное как "Уязвимость переполнения кучи сервера ведения журнала лицензий".
CVE-2023-26489wasmtime - это быстрая и безопасная среда выполнения для WebAssembly. В затронутых версиях генератор кода wasmtime, Cranelift, имеет ошибку на целях x86_64, где вычисление режима адреса ошибочно вычисляет 35-битный эффективный адрес вместо определенного WebAssembly 33-битного эффективного адреса. Эта ошибка означает, что при настройках кодогенерации по умолчанию операция загрузки/сохранения, контролируемая wasm, может читать/записывать адреса на расстоянии до 35 бит от базы линейной памяти. Из-за этой ошибки, однако, адреса на расстоянии до `0xffffffff * 8 + 0x7ffffffc = 36507222004 = ~34G` байт от базы линейной памяти возможны из гостевого кода. Это означает, что виртуальную память на расстоянии 6G от базы линейной памяти до ~34G можно читать/записывать вредоносным модулем. Гостевой модуль может без ведома встраивателя читать/записывать память в этом регионе. Память может принадлежать другим экземплярам WebAssembly при использовании пулингового аллокатора, например. Рекомендуется, чтобы затронутые встраиватели проанализировали существующие модули wasm, чтобы увидеть, затронуты ли они неправильными правилами кодогенерации, и, возможно, сопоставили это с аномальным количеством ловушек во время исторического выполнения, чтобы найти, возможно, подозрительные модули. Конкретная ошибка в бэкэнде Cranelift x86_64 заключается в том, что адрес WebAssembly, который сдвигается влево на постоянную величину от 1 до 3, будет свернут в режимы адресации x86_64, которые выполняют сдвиги. Например, `(i32.load (i32.shl (local.get 0) (i32.const 3)))` загружается из адреса WebAssembly `$local0 << 3`. При преобразовании в Cranelift вычисление `$local0 << 3`, 32-битное значение, расширяется нулем до 64-битного значения, а затем добавляется к базовому адресу линейной памяти. Cranelift сгенерирует инструкцию вида `movl (%base, %local0, 8), %dst`, которая вычисляет `%base + %local0 << 3`. Ошибка здесь, однако, заключается в том, что вычисление адреса происходит с 64-битными значениями, где вычисление `$local0 << 3` должно было быть усечено до 32-битного значения. Это означает, что `%local0`, который может использовать до 32 бит для адреса, получает 3 дополнительных бита адресного пространства, доступных через эту инструкцию `movl`. Исправление в Cranelift заключается в удалении ошибочных правил понижения в бэкэнде, которые обрабатывают эти выражения, расширенные нулем. Приведенный выше пример затем преобразуется в `movl %local0, %temp; shl $3, %temp; movl (%base, %temp), %dst`, который правильно усекает промежуточное вычисление `%local0 << 3` до 32 бит внутри регистра `%temp`, который затем добавляется к значению `%base`. Wasmtime версии 4.0.1, 5.0.1 и 6.0.1 были выпущены и исправлены, чтобы больше не содержать ошибочные правила понижения. Хотя рекомендуется обновить Wasmtime, существует ряд возможных обходных путей, которые встраиватели могут использовать для смягчения этой проблемы, если обновление невозможно. Обратите внимание, что ни один из этих обходных путей не включен по умолчанию и требует явной настройки: 1. Опция `Config::static_memory_maximum_size(0)` может быть использована для принудительного выполнения явной проверки границ для всех обращений к линейной памяти. Это выполнит проверку границ отдельно от вычисления режима адреса, которое правильно вычисляет эффективный адрес загрузки/сохранения. Обратите внимание, что это может оказать большое влияние на производительность выполнения модулей WebAssembly. 2. Опция `Config::static_memory_guard_size(1 << 36)` может быть использована для значительного увеличения количества страниц защиты, размещенных после линейной памяти. Это гарантирует, что обращения к памяти на расстоянии до 34G будут семантически правильными, зарезервировав не отображенную память для экземпляра. Обратите внимание, что это резервирует очень большой объем виртуальной памяти на экземпляр и может значительно уменьшить максимальное количество одновременно выполняемых экземпляров. 3. Если возможно использование хоста, отличного от x86_64, то это также позволит обойти эту ошибку. Эта ошибка не затрагивает бэкэнд Wasmtime или Cranelift AArch64, например.
CVE-2021-44142Модуль Samba vfs_fruit использует расширенные атрибуты файлов (EA, xattr) для обеспечения "...улучшенной совместимости с клиентами Apple SMB и совместимости с файловым сервером Netatalk 3 AFP". Версии Samba до 4.13.17, 4.14.12 и 4.15.5 с настроенным vfs_fruit допускают чтение и запись за пределами кучи через специально созданные расширенные атрибуты файлов. Удаленный злоумышленник с правами записи в расширенные атрибуты файлов может выполнить произвольный код с привилегиями smbd, обычно root.
CVE-2026-3062Выполнение произвольного кода в Google Chrome
CVE-2026-2771Выполнение произвольного кода в Mozilla Firefox и Thunderbird ESR
CVE-2025-69992phpgurukul News Portal Project V4.1 has File Upload Vulnerability via upload.php, which enables the upload of files of any format to the server without identity authentication.
CVE-2025-64656Out-of-bounds read in Application Gateway allows an unauthorized attacker to elevate privileges over a network.
CVE-2025-57052В библиотеке cJSON версий с 1.5.0 по 1.7.18 обнаружена уязвимость, позволяющая получить доступ за пределами массива через функцию decode_array_index_from_pointer в файле cJSON_Utils.c. Это позволяет удаленным злоумышленникам обойти проверку границ массива и получить доступ к защищенным данным посредством поддельных строк указателей JSON, содержащих буквенно-цифровые символы. Уязвимость возникает из-за неправильной проверки входных данных при разборе указателей JSON. Злоумышленник может создать JSON-указатели с некорректными индексами (например, /0A), что приводит к чтению или записи данных за пределами предполагаемой области памяти, потенциально вызывая ошибки сегментации или отказ в обслуживании. Некоторые проверки на уровне приложения, использующие стандартное целочисленное преобразование (например, atoi), могут быть обойдены, так как cJSON интерпретирует некорректный индекс иначе [1]. Источники: - [1] https://x-0r.com/posts/cJSON-Array-Index-Parsing-Vulnerability
CVE-2025-54950В ExecuTorch до коммита b6b7a16df5e7852d976d8c34c8a7e9a1b6f7d005 обнаружена уязвимость, связанная с выходом за границы памяти при загрузке моделей. Это может привести к сбою среды выполнения и потенциально к выполнению произвольного кода или другим нежелательным последствиям [1]. Источники: - [1] https://www.facebook.com/security/advisories/cve-2025-54950 - [2] https://github.com/pytorch/executorch/commit/b6b7a16df5e7852d976d8c34c8a7e9a1b6f7d005