luci-lib-px5g (LuCI) содержит переполнение буфера на основе кучи в собственной процедуре кодирования ASN.1 asn1_add_obj (x509write.c) при подписании сертификата с 2040-битным ключом RSA. Для 255-байтовой подписи распределение BIT STRING вычисляется на основе кодирования длины DER, равного 255 байтам, но полезная нагрузка, записываемая после добавления байта неиспользуемых битов, составляет 256 байт, что требует одного дополнительного октета длины DER. В результате выделение составляет 259 байт, в то время как тег, длина, байт неиспользуемых битов и подпись требуют 260 байт, а окончательный memcpy записывает один байт за пределы буфера кучи.
Переполнение доступно через экспортированный интерфейс Lua через create_selfsigned(); возможность удаленного использования зависит от встраиваемого приложения. Уязвимый код присутствует в ветках релизов openwrt-18.06 и openwrt-25.12 и отсутствует в master, где пакет luci-lib-px5g был удален, а не исправлен.
Показать оригинальное описание (EN)
luci-lib-px5g (LuCI) contains a heap-based buffer overflow in the native ASN.1 encoding routine asn1_add_obj (x509write.c) when signing a certificate with a 2040-bit RSA key. For a 255-byte signature, the BIT STRING allocation is computed from the DER length encoding of 255 bytes, but the payload written after prepending the unused-bits byte is 256 bytes, requiring one additional DER length octet. As a result the allocation is 259 bytes while the tag, length, unused-bits byte, and signature require 260 bytes, and the final memcpy writes one byte beyond the heap buffer. The overflow is reachable through the exported Lua interface via create_selfsigned(); whether it is remotely exploitable depends on the embedding application. The vulnerable code is present on the openwrt-18.06 through openwrt-25.12 release branches and is absent from master, where the luci-lib-px5g package has been removed rather than patched.
Характеристики атаки
Последствия
Строка CVSS v4.0
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Openwrt Luci
cpe:2.3:a:openwrt:luci:-:*:*:*:*:*:*:*
|
— | — |