CVE-2018-14779
Published: 15 August 2018
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.
From the Ubuntu Security Team
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.
Priority
Status
Package | Release | Status |
---|---|---|
yubico-piv-tool Launchpad, Ubuntu, Debian |
bionic |
Released
(1.4.2-2ubuntu0.1)
|
cosmic |
Ignored
(end of life)
|
|
disco |
Ignored
(end of life)
|
|
eoan |
Not vulnerable
(1.7.0-1)
|
|
focal |
Not vulnerable
(1.7.0-1)
|
|
groovy |
Not vulnerable
(1.7.0-1)
|
|
hirsute |
Not vulnerable
(1.7.0-1)
|
|
impish |
Not vulnerable
(1.7.0-1)
|
|
jammy |
Not vulnerable
(1.7.0-1)
|
|
trusty |
Does not exist
|
|
upstream |
Released
(1.6.1-1, 1.4.2-2+deb9u1)
|
|
xenial |
Released
(1.0.3-1ubuntu0.1~esm1)
Available with Ubuntu Pro |
Severity score breakdown
Parameter | Value |
---|---|
Base score | 6.8 |
Attack vector | Physical |
Attack complexity | Low |
Privileges required | None |
User interaction | None |
Scope | Unchanged |
Confidentiality | High |
Integrity impact | High |
Availability impact | High |
Vector | CVSS:3.0/AV:P/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |