<?xml version="1.0" encoding="UTF-8"?>
<cvrfdoc xmlns="http://www.icasi.org/CVRF/schema/cvrf/1.1" xmlns:cvrf="http://www.icasi.org/CVRF/schema/cvrf/1.1">
  <DocumentTitle xml:lang="en">Security update for yubico-piv-tool</DocumentTitle>
  <DocumentType>SUSE Patch</DocumentType>
  <DocumentPublisher Type="Vendor">
    <ContactDetails>security@suse.de</ContactDetails>
    <IssuingAuthority>SUSE Security Team</IssuingAuthority>
  </DocumentPublisher>
  <DocumentTracking>
    <Identification>
      <ID>SUSE-SU-2019:1123-1</ID>
    </Identification>
    <Status>Final</Status>
    <Version>1</Version>
    <RevisionHistory>
      <Revision>
        <Number>1</Number>
        <Date>2019-04-30T16:04:51Z</Date>
        <Description>current</Description>
      </Revision>
    </RevisionHistory>
    <InitialReleaseDate>2019-04-30T16:04:51Z</InitialReleaseDate>
    <CurrentReleaseDate>2019-04-30T16:04:51Z</CurrentReleaseDate>
    <Generator>
      <Engine>cve-database/bin/generate-cvrf.pl</Engine>
      <Date>2017-02-24T01:00:00Z</Date>
    </Generator>
  </DocumentTracking>
  <DocumentNotes>
    <Note Title="Topic" Type="Summary" Ordinal="1" xml:lang="en">Security update for yubico-piv-tool</Note>
    <Note Title="Details" Type="General" Ordinal="2" xml:lang="en">This update for yubico-piv-tool fixes the following issues:

Security issues fixed:

- Fixed an buffer overflow and an out of bounds memory read in
  ykpiv_transfer_data(), which could be triggered by a malicious
  token. (CVE-2018-14779, bsc#1104809, YSA-2018-03)
- Fixed an buffer overflow and an out of bounds memory read in
  _ykpiv_fetch_object(), which could be triggered by a malicious
  token. (CVE-2018-14780, bsc#1104811, YSA-2018-03)
</Note>
    <Note Title="Terms of Use" Type="Legal Disclaimer" Ordinal="3" xml:lang="en">The CVRF data is provided by SUSE under the Creative Commons License 4.0 with Attribution (CC-BY-4.0).</Note>
    <Note Title="Patchnames" Type="Details" Ordinal="4" xml:lang="en">SUSE-2019-1123,SUSE-SLE-Module-Basesystem-15-2019-1123</Note>
  </DocumentNotes>
  <DocumentDistribution xml:lang="en">Copyright SUSE LLC under the Creative Commons License 4.0 with Attribution (CC-BY-4.0)</DocumentDistribution>
  <DocumentReferences>
    <Reference Type="Self">
      <URL>https://www.suse.com/support/update/announcement/2019/suse-su-20191123-1/</URL>
      <Description>Link for SUSE-SU-2019:1123-1</Description>
    </Reference>
    <Reference Type="Self">
      <URL>https://lists.suse.com/pipermail/sle-security-updates/2019-April/005418.html</URL>
      <Description>E-Mail link for SUSE-SU-2019:1123-1</Description>
    </Reference>
    <Reference Type="Self">
      <URL>https://www.suse.com/support/security/rating/</URL>
      <Description>SUSE Security Ratings</Description>
    </Reference>
    <Reference Type="Self">
      <URL>https://bugzilla.suse.com/1104809</URL>
      <Description>SUSE Bug 1104809</Description>
    </Reference>
    <Reference Type="Self">
      <URL>https://bugzilla.suse.com/1104811</URL>
      <Description>SUSE Bug 1104811</Description>
    </Reference>
    <Reference Type="Self">
      <URL>https://www.suse.com/security/cve/CVE-2018-14779/</URL>
      <Description>SUSE CVE CVE-2018-14779 page</Description>
    </Reference>
    <Reference Type="Self">
      <URL>https://www.suse.com/security/cve/CVE-2018-14780/</URL>
      <Description>SUSE CVE CVE-2018-14780 page</Description>
    </Reference>
  </DocumentReferences>
  <ProductTree xmlns="http://www.icasi.org/CVRF/schema/prod/1.1">
    <Branch Type="Product Family" Name="SUSE Linux Enterprise Module for Basesystem 15">
      <Branch Type="Product Name" Name="SUSE Linux Enterprise Module for Basesystem 15">
        <FullProductName ProductID="SUSE Linux Enterprise Module for Basesystem 15" CPE="cpe:/o:suse:sle-module-basesystem:15">SUSE Linux Enterprise Module for Basesystem 15</FullProductName>
      </Branch>
    </Branch>
    <Branch Type="Product Version" Name="libykcs11-1-1.5.0-3.3.33">
      <FullProductName ProductID="libykcs11-1-1.5.0-3.3.33">libykcs11-1-1.5.0-3.3.33</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="libykcs11-devel-1.5.0-3.3.33">
      <FullProductName ProductID="libykcs11-devel-1.5.0-3.3.33">libykcs11-devel-1.5.0-3.3.33</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="libykpiv-devel-1.5.0-3.3.33">
      <FullProductName ProductID="libykpiv-devel-1.5.0-3.3.33">libykpiv-devel-1.5.0-3.3.33</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="libykpiv1-1.5.0-3.3.33">
      <FullProductName ProductID="libykpiv1-1.5.0-3.3.33">libykpiv1-1.5.0-3.3.33</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="yubico-piv-tool-1.5.0-3.3.33">
      <FullProductName ProductID="yubico-piv-tool-1.5.0-3.3.33">yubico-piv-tool-1.5.0-3.3.33</FullProductName>
    </Branch>
    <Relationship ProductReference="libykcs11-1-1.5.0-3.3.33" RelationType="Default Component Of" RelatesToProductReference="SUSE Linux Enterprise Module for Basesystem 15">
      <FullProductName ProductID="SUSE Linux Enterprise Module for Basesystem 15:libykcs11-1-1.5.0-3.3.33">libykcs11-1-1.5.0-3.3.33 as a component of SUSE Linux Enterprise Module for Basesystem 15</FullProductName>
    </Relationship>
    <Relationship ProductReference="libykcs11-devel-1.5.0-3.3.33" RelationType="Default Component Of" RelatesToProductReference="SUSE Linux Enterprise Module for Basesystem 15">
      <FullProductName ProductID="SUSE Linux Enterprise Module for Basesystem 15:libykcs11-devel-1.5.0-3.3.33">libykcs11-devel-1.5.0-3.3.33 as a component of SUSE Linux Enterprise Module for Basesystem 15</FullProductName>
    </Relationship>
    <Relationship ProductReference="libykpiv-devel-1.5.0-3.3.33" RelationType="Default Component Of" RelatesToProductReference="SUSE Linux Enterprise Module for Basesystem 15">
      <FullProductName ProductID="SUSE Linux Enterprise Module for Basesystem 15:libykpiv-devel-1.5.0-3.3.33">libykpiv-devel-1.5.0-3.3.33 as a component of SUSE Linux Enterprise Module for Basesystem 15</FullProductName>
    </Relationship>
    <Relationship ProductReference="libykpiv1-1.5.0-3.3.33" RelationType="Default Component Of" RelatesToProductReference="SUSE Linux Enterprise Module for Basesystem 15">
      <FullProductName ProductID="SUSE Linux Enterprise Module for Basesystem 15:libykpiv1-1.5.0-3.3.33">libykpiv1-1.5.0-3.3.33 as a component of SUSE Linux Enterprise Module for Basesystem 15</FullProductName>
    </Relationship>
    <Relationship ProductReference="yubico-piv-tool-1.5.0-3.3.33" RelationType="Default Component Of" RelatesToProductReference="SUSE Linux Enterprise Module for Basesystem 15">
      <FullProductName ProductID="SUSE Linux Enterprise Module for Basesystem 15:yubico-piv-tool-1.5.0-3.3.33">yubico-piv-tool-1.5.0-3.3.33 as a component of SUSE Linux Enterprise Module for Basesystem 15</FullProductName>
    </Relationship>
  </ProductTree>
  <Vulnerability xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1" Ordinal="1">
    <Notes>
      <Note Title="Vulnerability Description" Type="General" Ordinal="1" xml:lang="en">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 &gt; 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.</Note>
    </Notes>
    <CVE>CVE-2018-14779</CVE>
    <ProductStatuses>
      <Status Type="Fixed">
        <ProductID>SUSE Linux Enterprise Module for Basesystem 15:libykcs11-1-1.5.0-3.3.33</ProductID>
        <ProductID>SUSE Linux Enterprise Module for Basesystem 15:libykcs11-devel-1.5.0-3.3.33</ProductID>
        <ProductID>SUSE Linux Enterprise Module for Basesystem 15:libykpiv-devel-1.5.0-3.3.33</ProductID>
        <ProductID>SUSE Linux Enterprise Module for Basesystem 15:libykpiv1-1.5.0-3.3.33</ProductID>
        <ProductID>SUSE Linux Enterprise Module for Basesystem 15:yubico-piv-tool-1.5.0-3.3.33</ProductID>
      </Status>
    </ProductStatuses>
    <Threats>
      <Threat Type="Impact">
        <Description>low</Description>
      </Threat>
    </Threats>
    <CVSSScoreSets>
      <ScoreSet>
        <BaseScore>7.2</BaseScore>
        <Vector>AV:L/AC:L/Au:N/C:C/I:C/A:C</Vector>
      </ScoreSet>
    </CVSSScoreSets>
    <Remediations>
      <Remediation Type="Vendor Fix">
        <Description xml:lang="en">To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or "zypper patch".
</Description>
        <URL>https://www.suse.com/support/update/announcement/2019/suse-su-20191123-1/</URL>
      </Remediation>
    </Remediations>
    <References>
      <Reference>
        <URL>https://www.suse.com/security/cve/CVE-2018-14779.html</URL>
        <Description>CVE-2018-14779</Description>
      </Reference>
      <Reference>
        <URL>https://bugzilla.suse.com/1104809</URL>
        <Description>SUSE Bug 1104809</Description>
      </Reference>
    </References>
  </Vulnerability>
  <Vulnerability xmlns="http://www.icasi.org/CVRF/schema/vuln/1.1" Ordinal="2">
    <Notes>
      <Note Title="Vulnerability Description" Type="General" Ordinal="1" xml:lang="en">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, &amp;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.</Note>
    </Notes>
    <CVE>CVE-2018-14780</CVE>
    <ProductStatuses>
      <Status Type="Fixed">
        <ProductID>SUSE Linux Enterprise Module for Basesystem 15:libykcs11-1-1.5.0-3.3.33</ProductID>
        <ProductID>SUSE Linux Enterprise Module for Basesystem 15:libykcs11-devel-1.5.0-3.3.33</ProductID>
        <ProductID>SUSE Linux Enterprise Module for Basesystem 15:libykpiv-devel-1.5.0-3.3.33</ProductID>
        <ProductID>SUSE Linux Enterprise Module for Basesystem 15:libykpiv1-1.5.0-3.3.33</ProductID>
        <ProductID>SUSE Linux Enterprise Module for Basesystem 15:yubico-piv-tool-1.5.0-3.3.33</ProductID>
      </Status>
    </ProductStatuses>
    <Threats>
      <Threat Type="Impact">
        <Description>low</Description>
      </Threat>
    </Threats>
    <CVSSScoreSets>
      <ScoreSet>
        <BaseScore>2.1</BaseScore>
        <Vector>AV:L/AC:L/Au:N/C:P/I:N/A:N</Vector>
      </ScoreSet>
    </CVSSScoreSets>
    <Remediations>
      <Remediation Type="Vendor Fix">
        <Description xml:lang="en">To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or "zypper patch".
</Description>
        <URL>https://www.suse.com/support/update/announcement/2019/suse-su-20191123-1/</URL>
      </Remediation>
    </Remediations>
    <References>
      <Reference>
        <URL>https://www.suse.com/security/cve/CVE-2018-14780.html</URL>
        <Description>CVE-2018-14780</Description>
      </Reference>
      <Reference>
        <URL>https://bugzilla.suse.com/1104809</URL>
        <Description>SUSE Bug 1104809</Description>
      </Reference>
      <Reference>
        <URL>https://bugzilla.suse.com/1104811</URL>
        <Description>SUSE Bug 1104811</Description>
      </Reference>
    </References>
  </Vulnerability>
</cvrfdoc>
