Description
An out-of-bounds read issue was discovered in the Yubico-Piv 1.5.0 smartcard driver. The file lib/ykpiv.c contains the following code in the function `_ykpiv_fetch_object()`: {% highlight c %} if(sw == SW_SUCCESS) { size_t outlen; int offs = _ykpiv_get_length(data + 1, &outlen); if(offs == 0) { return YKPIV_SIZE_ERROR; } memmove(data, data + 1 + offs, outlen); *len = outlen; return YKPIV_OK; } else { return YKPIV_GENERIC_ERROR; } {% endhighlight %} -- in the end, a `memmove()` occurs with a length retrieved from APDU data. This length is not checked for whether it is outside of the APDU data retrieved. Therefore the `memmove()` could copy bytes behind the allocated data buffer into this buffer.
References (4)
Core 4
Core References
Vendor Advisory x_refsource_confirm
https://www.yubico.com/support/security-advisories/ysa-2018-03/
Third Party Advisory x_refsource_misc
https://www.x41-dsec.de/lab/advisories/x41-2018-001-Yubico-Piv/
Mailing List, Third Party Advisory mailing-list
x_refsource_mlist
http://www.openwall.com/lists/oss-security/2018/08/14/2
Vendor Advisory vendor-advisory
x_refsource_ubuntu
https://usn.ubuntu.com/4276-1/
Scores
CVSS v3
4.6
EPSS
0.0015
EPSS Percentile
34.7%
Attack Vector
PHYSICAL
CVSS:3.0/AV:P/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Details
CWE
CWE-125
Status
published
Products (10)
yubico/piv_manager
1.4.2
yubico/piv_manager
1.4.2b
yubico/piv_manager
1.4.2c
yubico/piv_manager
1.4.2d
yubico/piv_manager
1.4.2e
yubico/piv_manager
1.4.2f
yubico/piv_manager
1.4.2g
yubico/piv_manager
< 1.4.2
yubico/piv_tool
< 1.6.0
yubico/smart_card_minidriver
< 3.7.3.160
Published
Aug 15, 2018
Tracked Since
Feb 18, 2026