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.
It was discovered that libykpiv, a supporting library of the Yubico PIV
tool and YubiKey PIV Manager, mishandled specially crafted input. An attacker
with a custom-made, malicious USB device could potentially execute arbitrary
code on a computer running the Yubico PIV Tool or Yubikey PIV Manager.
Upstream:released (1.6.1-1, 1.4.2-2+deb9u1)
Ubuntu 12.04 ESM (Precise Pangolin):DNE
Ubuntu 14.04 ESM (Trusty Tahr):DNE
Ubuntu 16.04 LTS (Xenial Xerus):needed
Ubuntu 18.04 LTS (Bionic Beaver):released (1.4.2-2ubuntu0.1)
Ubuntu 19.10 (Eoan Ermine):not-affected (1.7.0-1)
Ubuntu 20.04 (Focal Fossa):not-affected (1.7.0-1)
More Information

Updated: 2020-02-11 17:14:25 UTC (commit fae839bb22db47e2662727f00032a9cee08b5228)