Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
bigint-buffer-safe — Безопасная, чистая JS-замена bigint-buffer. Исправляет CVE-2025-3194 (CVSS 7.5). Ноль зависимостей, без нативных привязок. | Kitploit
Инструменты/GitHubGitHub/loserlab/bigint-buffer-safe
Утилиты общего назначенияИнструменты шифрования/дешифрованияАнализ уязвимостейБезопасность Цепочки ПоставокОбучение и Образование
GitHubloserlab/bigint-buffer-safe

bigint-buffer-safe

Безопасная, чистая JS-замена bigint-buffer. Исправляет CVE-2025-3194 (CVSS 7.5). Ноль зависимостей, без нативных привязок.

Репозиторий
135 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

bigint-buffer-safe

bigint-buffer-safe

Безопасная, чисто-JS замена для bigint-buffer с возможностью прямой замены. Исправляет CVE-2025-3194 (CVSS 7.5, переполнение буфера / отказ в обслуживании).

Никаких зависимостей. Без нативных привязок. Работает в Node.js и браузерах.

Зачем это нужно?

Оригинальный пакет bigint-buffer содержит уязвимость переполнения буфера высокой степени опасности (CVE-2025-3194, CVSS 7.5), которая приводит к аварийному завершению процесса при передаче toBigIntLE(null) или других недопустимых входных данных. Мейнтейнер не публиковал обновлений с октября 2019 года. Пакет @solana/buffer-layout-utils, который от него зависит, был архивирован в январе 2025 года. Исправления от разработчика не будет.

Эта уязвимость затрагивает всю экосистему Solana через цепочку транзитивных зависимостей:

root@kitploit:~
bigint-buffer → @solana/buffer-layout-utils → @solana/web3.js v1.x → @solana/wallet-adapter-*

bigint-buffer-safe — это замена на чистом JavaScript с корректной проверкой входных данных. Совместим по API с [email protected].

Установка

root@kitploit:~
npm install bigint-buffer-safe

Прямая замена для проектов Solana (рекомендуется)

Добавьте в ваш package.json для замены bigint-buffer во всём дереве зависимостей:

npm (v8.3+):

root@kitploit:~
{
  "overrides": {
    "bigint-buffer": "npm:bigint-buffer-safe@^1.0.0"
  }
}

yarn:

root@kitploit:~
{
  "resolutions": {
    "bigint-buffer": "npm:bigint-buffer-safe@^1.0.0"
  }
}

pnpm:

root@kitploit:~
{
  "pnpm": {
    "overrides": {
      "bigint-buffer": "npm:bigint-buffer-safe@^1.0.0"
    }
  }
}

Использование напрямую из GitHub (если не опубликовано в npm):

root@kitploit:~
{
  "overrides": {
    "bigint-buffer": "github:LoserLab/bigint-buffer-safe"
  }
}

Затем переустановите:

root@kitploit:~
rm -rf node_modules package-lock.json && npm install

Убедитесь, что уязвимость устранена:

root@kitploit:~
npm audit

API

Идентичен [email protected]:

root@kitploit:~
import { toBigIntBE, toBigIntLE, toBufferBE, toBufferLE } from "bigint-buffer-safe";

// Buffer → BigInt
toBigIntBE(Buffer.from([0x01, 0x00])); // 256n
toBigIntLE(Buffer.from([0x00, 0x01])); // 256n

// BigInt → Buffer
toBufferBE(256n, 2); // <Buffer 01 00>
toBufferLE(256n, 2); // <Buffer 00 01>

Что отличается от оригинала?

Проверка входных данных. Недопустимые входные данные вызывают TypeError вместо аварийного завершения процесса:

root@kitploit:~
// Оригинальный bigint-buffer: АВАРИЙНО ЗАВЕРШАЕТСЯ (CVE-2025-3194)
toBigIntLE(null);

// bigint-buffer-safe: выбрасывает TypeError
toBigIntLE(null); // TypeError: toBigIntLE: expected a Buffer, got null

Нет нативных привязок. Оригинал содержит N-API C++ привязки, которые молча выходят из строя в браузерах и сборщиках (знаменитое предупреждение "bigint: Failed to load bindings"). Этот пакет написан на чистом JavaScript.

Производительность

Чистый JS, без нативных привязок. Протестировано на Apple Silicon (M-серия), Node.js, по 1 млн итераций.

ОперацияРазмерОп/с
toBigIntBEu64 (8 байт)9,079,934
toBigIntLEu64 (8 байт)6,128,182
toBigIntBEu128 (16 байт)7,018,804
toBigIntLEu128 (16 байт)5,069,809
toBufferBEu64 (8 байт)5,569,161
toBufferLEu64 (8 байт)5,183,747
toBufferBEu128 (16 байт)7,063,305
toBufferLEu128 (16 байт)6,533,752

Для целых чисел u64 и u128, используемых в программах Solana (лампорты, суммы токенов, метки времени), производительности более чем достаточно. Оригинальные N-API привязки были быстрее для очень больших буферов, но такие размеры в Solana не используются.

Запустите тесты самостоятельно:

root@kitploit:~
npx tsx bench/index.ts

Часто задаваемые вопросы

Кто подвержен риску?

Любой проект, использующий @solana/web3.js v1.x (версии 1.43.1 – 1.98.x). Выполните npm ls bigint-buffer, чтобы проверить, присутствует ли он в вашем дереве зависимостей.

Влияет ли это на @solana/kit (web3.js v2)?

Нет. @solana/kit не имеет сторонних зависимостей и не использует bigint-buffer. Если вы уже перешли на Kit, это вас не касается.

Что насчёт предупреждения "bigint: Failed to load bindings"?

Это предупреждение появляется, когда нативные N-API привязки bigint-buffer не могут загрузиться в среде с бандлингом. Замена на bigint-buffer-safe устраняет его, так как этот пакет написан на чистом JavaScript.

Это постоянное исправление?

Это временное решение для проектов, всё ещё использующих @solana/web3.js v1.x. Постоянное решение — миграция на @solana/kit, у которого нет внешних зависимостей.

Чем это отличается от bigint-buffer-fixed?

bigint-buffer-fixed — ещё один форк сообщества. bigint-buffer-safe полностью удаляет нативные N-API привязки (устраняя предупреждение "Failed to load bindings"), включает полный набор тестов (64 теста) и предоставляет определения типов TypeScript.

Долгосрочное исправление

Этот пакет является временным решением для проектов на @solana/web3.js v1.x. Постоянное решение — миграция на @solana/kit (web3.js v2), у которого нет внешних зависимостей и который вообще не использует bigint-buffer. Фонд Solana также выпустил ConnectorKit (@solana/connector) как современную замену экосистеме адаптеров кошельков с поддержкой как v1, так и v2.

Часть набора инструментов миграции Solana

Четыре инструмента, которые совместно помогают перевести ваш проект с web3.js v1 на Kit v2:

ИнструментЧто делает
solana-depsОтслеживает, почему устаревшие пакеты находятся в вашем дереве
solana-auditВыявляет CVE и устаревшие API, которые пропускает npm audit
solana-codemodАвтоматически переносит код с web3.js v1 на Kit v2
bigint-buffer-safe (этот инструмент)Мгновенное исправление CVE для bigint-buffer

Рекомендуемый порядок действий: solana-deps (найти устаревшие компоненты) → solana-audit (проверить на уязвимости) → solana-codemod (исправить код) → solana-audit (проверить результат).

Автор

Создано Heathen

Создано в Mirra

Лицензия

MIT License

Copyright (c) 2026 Heathen

Скачать инструмент