ID CVE-2018-14780
Summary 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
Vulnerable Configurations
  • cpe:2.3:a:yubico:piv_manager:1.0.0:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_manager:1.0.0:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_manager:1.0.1:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_manager:1.0.1:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_manager:1.0.2:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_manager:1.0.2:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_manager:1.1.0:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_manager:1.1.0:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_manager:1.1.1:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_manager:1.1.1:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_manager:1.2.0:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_manager:1.2.0:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_manager:1.2.1:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_manager:1.2.1:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_manager:1.3.0:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_manager:1.3.0:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_manager:1.3.0b:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_manager:1.3.0b:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_manager:1.4.0:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_manager:1.4.0:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_manager:1.4.1:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_manager:1.4.1:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_manager:1.4.2b:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_manager:1.4.2b:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_manager:1.4.2c:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_manager:1.4.2c:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_manager:1.4.2d:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_manager:1.4.2d:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_manager:1.4.2e:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_manager:1.4.2e:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_manager:1.4.2f:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_manager:1.4.2f:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_manager:1.4.2g:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_manager:1.4.2g:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_tool:0.0.1:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_tool:0.0.1:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_tool:0.0.2:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_tool:0.0.2:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_tool:0.0.3:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_tool:0.0.3:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_tool:0.1.0:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_tool:0.1.0:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_tool:0.1.1:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_tool:0.1.1:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_tool:0.1.2:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_tool:0.1.2:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_tool:0.1.3:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_tool:0.1.3:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_tool:0.1.4:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_tool:0.1.4:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_tool:0.1.5:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_tool:0.1.5:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_tool:0.1.6:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_tool:0.1.6:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_tool:1.0.0:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_tool:1.0.0:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_tool:1.0.1:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_tool:1.0.1:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_tool:1.0.2:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_tool:1.0.2:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_tool:1.0.3:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_tool:1.0.3:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_tool:1.1.0:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_tool:1.1.0:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_tool:1.1.1:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_tool:1.1.1:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_tool:1.1.2:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_tool:1.1.2:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_tool:1.2.0:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_tool:1.2.0:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_tool:1.2.1:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_tool:1.2.1:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_tool:1.2.2:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_tool:1.2.2:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_tool:1.3.0:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_tool:1.3.0:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_tool:1.3.1:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_tool:1.3.1:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_tool:1.4.0:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_tool:1.4.0:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_tool:1.4.1:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_tool:1.4.1:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_tool:1.4.2:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_tool:1.4.2:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_tool:1.4.3:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_tool:1.4.3:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_tool:1.4.4:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_tool:1.4.4:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:piv_tool:1.5.0:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:piv_tool:1.5.0:*:*:*:*:*:*:*
  • cpe:2.3:a:yubico:smart_card_minidriver:3.7.0.152:*:*:*:*:*:*:*
    cpe:2.3:a:yubico:smart_card_minidriver:3.7.0.152:*:*:*:*:*:*:*
CVSS
Base: 2.1 (as of 25-02-2020 - 04:15)
Impact:
Exploitability:
CWE CWE-125
CAPEC
  • Infiltration of Hardware Development Environment
    An attacker, leveraging the ability to manipulate components of primary support systems and tools within the development and production environments, inserts malicious software within the hardware and/or firmware development environment. The infiltration purpose is to alter developed hardware components in a system destined for deployment at the victim's organization, for the purpose of disruption or further compromise.
  • Overread Buffers
    An adversary attacks a target by providing input that causes an application to read beyond the boundary of a defined buffer. This typically occurs when a value influencing where to start or stop reading is set to reflect positions outside of the valid memory location of the buffer. This type of attack may result in exposure of sensitive information, a system crash, or arbitrary code execution.
Access
VectorComplexityAuthentication
LOCAL LOW NONE
Impact
ConfidentialityIntegrityAvailability
PARTIAL NONE NONE
cvss-vector via4 AV:L/AC:L/Au:N/C:P/I:N/A:N
refmap via4
confirm https://www.yubico.com/support/security-advisories/ysa-2018-03/
misc https://www.x41-dsec.de/lab/advisories/x41-2018-001-Yubico-Piv/
mlist [oss-security] 20180814 X41 D-Sec GmbH Security Advisory X41-2018-001: Multiple Vulnerabilities in Yubico Piv
ubuntu USN-4276-1
Last major update 25-02-2020 - 04:15
Published 15-08-2018 - 18:29
Last modified 25-02-2020 - 04:15
Back to Top