<?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 pcre2</DocumentTitle>
  <DocumentType>SUSE Patch</DocumentType>
  <DocumentPublisher Type="Vendor">
    <ContactDetails>security@suse.de</ContactDetails>
    <IssuingAuthority>SUSE Security Team</IssuingAuthority>
  </DocumentPublisher>
  <DocumentTracking>
    <Identification>
      <ID>openSUSE-SU-2016:2035-1</ID>
    </Identification>
    <Status>Final</Status>
    <Version>1</Version>
    <RevisionHistory>
      <Revision>
        <Number>1</Number>
        <Date>2016-08-11T11:52:26Z</Date>
        <Description>current</Description>
      </Revision>
    </RevisionHistory>
    <InitialReleaseDate>2016-08-11T11:52:26Z</InitialReleaseDate>
    <CurrentReleaseDate>2016-08-11T11:52:26Z</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 pcre2</Note>
    <Note Title="Details" Type="General" Ordinal="2" xml:lang="en">
This update for pcre2 fixes the following issues:

- pcre2 10.22:
  * The POSIX wrapper function regcomp() did not used to
    support back references and subroutine calls if called with the
    REG_NOSUB option. It now does.
  * A new function, pcre2_code_copy(), is added, to make a copy of a
    compiled pattern.
  * Support for string callouts is added to pcre2grep.
  * Added the PCRE2_NO_JIT option to pcre2_match().
  * The pcre2_get_error_message() function now returns with a
    negative error code if the error number it is given is unknown.
  * Several updates have been made to pcre2test and test scripts
  * Fix CVE-2016-3191: workspace overflow for (*ACCEPT) with deeply
                       nested parentheses (boo#971741)

- Update to new upstream release 10.21
* Improve JIT matching speed of patterns starting with + or *.
* Use memchr() to find the first character in an unanchored match
  in 8-bit mode in the interpreter. This gives a significant speed
  improvement.
* 10.20 broke the handling of [[:&gt;:]] and [[:&lt;:]] in that
  processing them could involve a buffer overflow if the
  following character was an opening parenthesis.
* 10.20 also introduced a bug in processing this pattern:
  /((?x)(*:0))#(?'/, which was fixed.
* A callout with a string argument containing an opening square
  bracket, for example /(?C$[$)(?&lt;]/, was incorrectly processed and
  could provoke a buffer overflow.
* A possessively repeated conditional group that could match an empty
  string, for example, /(?(R))*+/, was incorrectly compiled.
* The Unicode tables have been updated to Unicode 8.0.0.
* An empty comment (?#) in a pattern was incorrectly processed and
  could provoke a buffer overflow.
* Fix infinite recursion in the JIT compiler when certain patterns
  /such as (?:|a|){100}x/ are analysed.
* Some patterns with character classes involving [: and \\ were
  incorrectly compiled and could cause reading from uninitialized
  memory or an incorrect error diagnosis. Examples are:
  /[[:\\](?&lt;[::]/ and /[[:\\](?'abc')[a:].
* A missing closing parenthesis for a callout with a string argument
  was not being diagnosed, possibly leading to a buffer overflow.
* If (?R was followed by - or + incorrect behaviour happened instead
  of a diagnostic.
* Fixed an issue when \p{Any} inside an xclass did not read the current
  character.
* About 80 more fixes, which you can read about in the ChangeLog
  shipped with the libpcre2-8-0 package.
</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>
  </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://lists.opensuse.org/opensuse-updates/2016-08/msg00050.html</URL>
      <Description>E-Mail link for openSUSE-SU-2016:2035-1</Description>
    </Reference>
    <Reference Type="Self">
      <URL>https://www.suse.com/support/security/rating/</URL>
      <Description>SUSE Security Ratings</Description>
    </Reference>
  </DocumentReferences>
  <ProductTree xmlns="http://www.icasi.org/CVRF/schema/prod/1.1">
    <Branch Type="Product Family" Name="openSUSE Leap 42.1">
      <Branch Type="Product Name" Name="openSUSE Leap 42.1">
        <FullProductName ProductID="openSUSE Leap 42.1">openSUSE Leap 42.1</FullProductName>
      </Branch>
    </Branch>
    <Branch Type="Product Version" Name="libpcre2-16-0-10.22-7.1">
      <FullProductName ProductID="libpcre2-16-0-10.22-7.1">libpcre2-16-0-10.22-7.1</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="libpcre2-16-0-32bit-10.22-7.1">
      <FullProductName ProductID="libpcre2-16-0-32bit-10.22-7.1">libpcre2-16-0-32bit-10.22-7.1</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="libpcre2-32-0-10.22-7.1">
      <FullProductName ProductID="libpcre2-32-0-10.22-7.1">libpcre2-32-0-10.22-7.1</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="libpcre2-32-0-32bit-10.22-7.1">
      <FullProductName ProductID="libpcre2-32-0-32bit-10.22-7.1">libpcre2-32-0-32bit-10.22-7.1</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="libpcre2-8-0-10.22-7.1">
      <FullProductName ProductID="libpcre2-8-0-10.22-7.1">libpcre2-8-0-10.22-7.1</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="libpcre2-8-0-32bit-10.22-7.1">
      <FullProductName ProductID="libpcre2-8-0-32bit-10.22-7.1">libpcre2-8-0-32bit-10.22-7.1</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="libpcre2-posix1-10.22-7.1">
      <FullProductName ProductID="libpcre2-posix1-10.22-7.1">libpcre2-posix1-10.22-7.1</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="libpcre2-posix1-32bit-10.22-7.1">
      <FullProductName ProductID="libpcre2-posix1-32bit-10.22-7.1">libpcre2-posix1-32bit-10.22-7.1</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="pcre2-10.22-7.1">
      <FullProductName ProductID="pcre2-10.22-7.1">pcre2-10.22-7.1</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="pcre2-devel-10.22-7.1">
      <FullProductName ProductID="pcre2-devel-10.22-7.1">pcre2-devel-10.22-7.1</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="pcre2-devel-static-10.22-7.1">
      <FullProductName ProductID="pcre2-devel-static-10.22-7.1">pcre2-devel-static-10.22-7.1</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="pcre2-doc-10.22-7.1">
      <FullProductName ProductID="pcre2-doc-10.22-7.1">pcre2-doc-10.22-7.1</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="pcre2-tools-10.22-7.1">
      <FullProductName ProductID="pcre2-tools-10.22-7.1">pcre2-tools-10.22-7.1</FullProductName>
    </Branch>
    <Relationship ProductReference="libpcre2-16-0-10.22-7.1" RelationType="Default Component Of" RelatesToProductReference="openSUSE Leap 42.1">
      <FullProductName ProductID="openSUSE Leap 42.1:libpcre2-16-0-10.22-7.1">libpcre2-16-0-10.22-7.1 as a component of openSUSE Leap 42.1</FullProductName>
    </Relationship>
    <Relationship ProductReference="libpcre2-16-0-32bit-10.22-7.1" RelationType="Default Component Of" RelatesToProductReference="openSUSE Leap 42.1">
      <FullProductName ProductID="openSUSE Leap 42.1:libpcre2-16-0-32bit-10.22-7.1">libpcre2-16-0-32bit-10.22-7.1 as a component of openSUSE Leap 42.1</FullProductName>
    </Relationship>
    <Relationship ProductReference="libpcre2-32-0-10.22-7.1" RelationType="Default Component Of" RelatesToProductReference="openSUSE Leap 42.1">
      <FullProductName ProductID="openSUSE Leap 42.1:libpcre2-32-0-10.22-7.1">libpcre2-32-0-10.22-7.1 as a component of openSUSE Leap 42.1</FullProductName>
    </Relationship>
    <Relationship ProductReference="libpcre2-32-0-32bit-10.22-7.1" RelationType="Default Component Of" RelatesToProductReference="openSUSE Leap 42.1">
      <FullProductName ProductID="openSUSE Leap 42.1:libpcre2-32-0-32bit-10.22-7.1">libpcre2-32-0-32bit-10.22-7.1 as a component of openSUSE Leap 42.1</FullProductName>
    </Relationship>
    <Relationship ProductReference="libpcre2-8-0-10.22-7.1" RelationType="Default Component Of" RelatesToProductReference="openSUSE Leap 42.1">
      <FullProductName ProductID="openSUSE Leap 42.1:libpcre2-8-0-10.22-7.1">libpcre2-8-0-10.22-7.1 as a component of openSUSE Leap 42.1</FullProductName>
    </Relationship>
    <Relationship ProductReference="libpcre2-8-0-32bit-10.22-7.1" RelationType="Default Component Of" RelatesToProductReference="openSUSE Leap 42.1">
      <FullProductName ProductID="openSUSE Leap 42.1:libpcre2-8-0-32bit-10.22-7.1">libpcre2-8-0-32bit-10.22-7.1 as a component of openSUSE Leap 42.1</FullProductName>
    </Relationship>
    <Relationship ProductReference="libpcre2-posix1-10.22-7.1" RelationType="Default Component Of" RelatesToProductReference="openSUSE Leap 42.1">
      <FullProductName ProductID="openSUSE Leap 42.1:libpcre2-posix1-10.22-7.1">libpcre2-posix1-10.22-7.1 as a component of openSUSE Leap 42.1</FullProductName>
    </Relationship>
    <Relationship ProductReference="libpcre2-posix1-32bit-10.22-7.1" RelationType="Default Component Of" RelatesToProductReference="openSUSE Leap 42.1">
      <FullProductName ProductID="openSUSE Leap 42.1:libpcre2-posix1-32bit-10.22-7.1">libpcre2-posix1-32bit-10.22-7.1 as a component of openSUSE Leap 42.1</FullProductName>
    </Relationship>
    <Relationship ProductReference="pcre2-10.22-7.1" RelationType="Default Component Of" RelatesToProductReference="openSUSE Leap 42.1">
      <FullProductName ProductID="openSUSE Leap 42.1:pcre2-10.22-7.1">pcre2-10.22-7.1 as a component of openSUSE Leap 42.1</FullProductName>
    </Relationship>
    <Relationship ProductReference="pcre2-devel-10.22-7.1" RelationType="Default Component Of" RelatesToProductReference="openSUSE Leap 42.1">
      <FullProductName ProductID="openSUSE Leap 42.1:pcre2-devel-10.22-7.1">pcre2-devel-10.22-7.1 as a component of openSUSE Leap 42.1</FullProductName>
    </Relationship>
    <Relationship ProductReference="pcre2-devel-static-10.22-7.1" RelationType="Default Component Of" RelatesToProductReference="openSUSE Leap 42.1">
      <FullProductName ProductID="openSUSE Leap 42.1:pcre2-devel-static-10.22-7.1">pcre2-devel-static-10.22-7.1 as a component of openSUSE Leap 42.1</FullProductName>
    </Relationship>
    <Relationship ProductReference="pcre2-doc-10.22-7.1" RelationType="Default Component Of" RelatesToProductReference="openSUSE Leap 42.1">
      <FullProductName ProductID="openSUSE Leap 42.1:pcre2-doc-10.22-7.1">pcre2-doc-10.22-7.1 as a component of openSUSE Leap 42.1</FullProductName>
    </Relationship>
    <Relationship ProductReference="pcre2-tools-10.22-7.1" RelationType="Default Component Of" RelatesToProductReference="openSUSE Leap 42.1">
      <FullProductName ProductID="openSUSE Leap 42.1:pcre2-tools-10.22-7.1">pcre2-tools-10.22-7.1 as a component of openSUSE Leap 42.1</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">The compile_branch function in pcre_compile.c in PCRE 8.x before 8.39 and pcre2_compile.c in PCRE2 before 10.22 mishandles patterns containing an (*ACCEPT) substring in conjunction with nested parentheses, which allows remote attackers to execute arbitrary code or cause a denial of service (stack-based buffer overflow) via a crafted regular expression, as demonstrated by a JavaScript RegExp object encountered by Konqueror, aka ZDI-CAN-3542.</Note>
    </Notes>
    <CVE>CVE-2016-3191</CVE>
    <ProductStatuses>
      <Status Type="Fixed">
        <ProductID>openSUSE Leap 42.1:libpcre2-16-0-10.22-7.1</ProductID>
        <ProductID>openSUSE Leap 42.1:libpcre2-16-0-32bit-10.22-7.1</ProductID>
        <ProductID>openSUSE Leap 42.1:libpcre2-32-0-10.22-7.1</ProductID>
        <ProductID>openSUSE Leap 42.1:libpcre2-32-0-32bit-10.22-7.1</ProductID>
        <ProductID>openSUSE Leap 42.1:libpcre2-8-0-10.22-7.1</ProductID>
        <ProductID>openSUSE Leap 42.1:libpcre2-8-0-32bit-10.22-7.1</ProductID>
        <ProductID>openSUSE Leap 42.1:libpcre2-posix1-10.22-7.1</ProductID>
        <ProductID>openSUSE Leap 42.1:libpcre2-posix1-32bit-10.22-7.1</ProductID>
        <ProductID>openSUSE Leap 42.1:pcre2-10.22-7.1</ProductID>
        <ProductID>openSUSE Leap 42.1:pcre2-devel-10.22-7.1</ProductID>
        <ProductID>openSUSE Leap 42.1:pcre2-devel-static-10.22-7.1</ProductID>
        <ProductID>openSUSE Leap 42.1:pcre2-doc-10.22-7.1</ProductID>
        <ProductID>openSUSE Leap 42.1:pcre2-tools-10.22-7.1</ProductID>
      </Status>
    </ProductStatuses>
    <Threats>
      <Threat Type="Impact">
        <Description>moderate</Description>
      </Threat>
    </Threats>
    <Remediations>
      <Remediation Type="Vendor Fix">
        <Description xml:lang="en">Please Install the update.</Description>
        <URL>https://lists.opensuse.org/opensuse-updates/2016-08/msg00050.html</URL>
      </Remediation>
    </Remediations>
    <References>
      <Reference>
        <URL>https://www.suse.com/security/cve/CVE-2016-3191.html</URL>
        <Description>CVE-2016-3191</Description>
      </Reference>
      <Reference>
        <URL>https://bugzilla.suse.com/971741</URL>
        <Description>SUSE Bug 971741</Description>
      </Reference>
    </References>
  </Vulnerability>
</cvrfdoc>
