Уязвимость переполнения стека существует в функциональности кодирования PKCS7 SignedData wolfSSL. В wc_PKCS7_BuildSignedAttributes(), при д…
Уязвимость переполнения стека существует в функциональности кодирования PKCS7 SignedData wolfSSL. В wc_PKCS7_BuildSignedAttributes(), при добавлении пользовательских подписанных атрибутов код передает неправильное значение емкости (esd->signedAttribsCount) в EncodeAttributes() вместо оставшегося доступного пространства в массиве фиксированного размера, подписанном Attribs[7]. Когда приложение устанавливает pkcs7->signedAttribsSz значение, превышающее значение, превышающее MAX_SIGNED_ATTRIBS_SZ (по умолчанию 7), за вычетом количества уже добавленных атрибутов по умолчанию, EncodeAttributes() пишет за пределы массива, вызывая повреждение памяти стека. В WOLFSSL_SMALL_STACK строит это становится кучей коррупции. Эксплуатация требует приложения, которое позволяет ненадежным вводным средствам управлять размером массива подписанных Attribs при вызове wc_PKCS7_EncodeSignedData() или связанных с ними функций подписания.
Переполнение стекового буфера — это условие, при котором перезаписываемый буфер размещён в стеке (то есть является локальной переменной или, редко, параметром функции).
https://cwe.mitre.org/data/definitions/121.html →Открыть в коллекции CWE →