A buffer overflow 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_transfer_data()`: {% highlight c %} if(*out_len + recv_len - 2 > max_out) { fprintf(stderr, "Output buffer to small, wanted to write %lu, max was %lu.", *out_len + recv_len - 2, max_out); } if(out_data) { memcpy(out_data, data, recv_len - 2); out_data += recv_len - 2; *out_len += recv_len - 2; } {% endhighlight %} -- it is clearly checked whether the buffer is big enough to hold the data copied using `memcpy()`, but no error handling happens to avoid the `memcpy()` in such cases. This code path can be triggered with malicious data coming from a smartcard.
2018-08-15T18:29:00.747
2024-11-21T03:49:46.380
Modified
CVSSv3.0: 6.8 (MEDIUM)
AV:L/AC:L/Au:N/C:C/I:C/A:C
3.9
10.0
Type | Vendor | Product | Version/Range | Vulnerable? |
---|---|---|---|---|
Application | yubico | piv_manager | < 1.4.2 | Yes |
Application | yubico | piv_manager | 1.4.2 | Yes |
Application | yubico | piv_manager | 1.4.2b | Yes |
Application | yubico | piv_manager | 1.4.2c | Yes |
Application | yubico | piv_manager | 1.4.2d | Yes |
Application | yubico | piv_manager | 1.4.2e | Yes |
Application | yubico | piv_manager | 1.4.2f | Yes |
Application | yubico | piv_manager | 1.4.2g | Yes |
Application | yubico | piv_tool | < 1.6.0 | Yes |
Application | yubico | smart_card_minidriver | ≤ 3.7.3.160 | Yes |