<?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 golang-github-prometheus-prometheus</DocumentTitle>
  <DocumentType>SUSE Patch</DocumentType>
  <DocumentPublisher Type="Vendor">
    <ContactDetails>security@suse.de</ContactDetails>
    <IssuingAuthority>SUSE Security Team</IssuingAuthority>
  </DocumentPublisher>
  <DocumentTracking>
    <Identification>
      <ID>SUSE-SU-2022:1434-1</ID>
    </Identification>
    <Status>Final</Status>
    <Version>1</Version>
    <RevisionHistory>
      <Revision>
        <Number>1</Number>
        <Date>2022-04-27T12:33:28Z</Date>
        <Description>current</Description>
      </Revision>
    </RevisionHistory>
    <InitialReleaseDate>2022-04-27T12:33:28Z</InitialReleaseDate>
    <CurrentReleaseDate>2022-04-27T12:33:28Z</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 golang-github-prometheus-prometheus</Note>
    <Note Title="Details" Type="General" Ordinal="2" xml:lang="en">This update for golang-github-prometheus-prometheus fixes the following issues:

Security fixes for golang-github-prometheus-prometheus:

- CVE-2022-21698: Denial of Service through unbounded cardinality, and potential memory exhaustion, when handling 
  requests with non-standard HTTP methods (bsc#1196338).

Other non security changes for golang-github-prometheus-prometheus:

- Build `firewalld-prometheus-config` only for SUSE Linux Enterprise 15, 15-SP1 and 15-SP2, and require `firewalld`.
- Only recommends `firewalld-prometheus-config` as prometheus does not require it to run.
- Create `firewalld-prometheus-config` subpackage (bsc#1197042, jsc#SLE-24376)
</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-2022-1434,SUSE-SLE-Manager-Tools-15-2022-1434</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/2022/suse-su-20221434-1/</URL>
      <Description>Link for SUSE-SU-2022:1434-1</Description>
    </Reference>
    <Reference Type="Self">
      <URL>https://lists.suse.com/pipermail/sle-security-updates/2022-April/010851.html</URL>
      <Description>E-Mail link for SUSE-SU-2022:1434-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/1196338</URL>
      <Description>SUSE Bug 1196338</Description>
    </Reference>
    <Reference Type="Self">
      <URL>https://bugzilla.suse.com/1197042</URL>
      <Description>SUSE Bug 1197042</Description>
    </Reference>
    <Reference Type="Self">
      <URL>https://www.suse.com/security/cve/CVE-2022-21698/</URL>
      <Description>SUSE CVE CVE-2022-21698 page</Description>
    </Reference>
  </DocumentReferences>
  <ProductTree xmlns="http://www.icasi.org/CVRF/schema/prod/1.1">
    <Branch Type="Product Family" Name="SUSE Manager Client Tools 15">
      <Branch Type="Product Name" Name="SUSE Manager Client Tools 15">
        <FullProductName ProductID="SUSE Manager Client Tools 15">SUSE Manager Client Tools 15</FullProductName>
      </Branch>
    </Branch>
    <Branch Type="Product Version" Name="firewalld-prometheus-config-0.1-150000.3.41.2">
      <FullProductName ProductID="firewalld-prometheus-config-0.1-150000.3.41.2">firewalld-prometheus-config-0.1-150000.3.41.2</FullProductName>
    </Branch>
    <Branch Type="Product Version" Name="golang-github-prometheus-prometheus-2.32.1-150000.3.41.2">
      <FullProductName ProductID="golang-github-prometheus-prometheus-2.32.1-150000.3.41.2">golang-github-prometheus-prometheus-2.32.1-150000.3.41.2</FullProductName>
    </Branch>
    <Relationship ProductReference="firewalld-prometheus-config-0.1-150000.3.41.2" RelationType="Default Component Of" RelatesToProductReference="SUSE Manager Client Tools 15">
      <FullProductName ProductID="SUSE Manager Client Tools 15:firewalld-prometheus-config-0.1-150000.3.41.2">firewalld-prometheus-config-0.1-150000.3.41.2 as a component of SUSE Manager Client Tools 15</FullProductName>
    </Relationship>
    <Relationship ProductReference="golang-github-prometheus-prometheus-2.32.1-150000.3.41.2" RelationType="Default Component Of" RelatesToProductReference="SUSE Manager Client Tools 15">
      <FullProductName ProductID="SUSE Manager Client Tools 15:golang-github-prometheus-prometheus-2.32.1-150000.3.41.2">golang-github-prometheus-prometheus-2.32.1-150000.3.41.2 as a component of SUSE Manager Client Tools 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">client_golang is the instrumentation library for Go applications in Prometheus, and the promhttp package in client_golang provides tooling around HTTP servers and clients. In client_golang prior to version 1.11.1, HTTP server is susceptible to a Denial of Service through unbounded cardinality, and potential memory exhaustion, when handling requests with non-standard HTTP methods. In order to be affected, an instrumented software must use any of `promhttp.InstrumentHandler*` middleware except `RequestsInFlight`; not filter any specific methods (e.g GET) before middleware; pass metric with `method` label name to our middleware; and not have any firewall/LB/proxy that filters away requests with unknown `method`. client_golang version 1.11.1 contains a patch for this issue. Several workarounds are available, including removing the `method` label name from counter/gauge used in the InstrumentHandler; turning off affected promhttp handlers; adding custom middleware before promhttp handler that will sanitize the request method given by Go http.Request; and using a reverse proxy or web application firewall, configured to only allow a limited set of methods.</Note>
    </Notes>
    <CVE>CVE-2022-21698</CVE>
    <ProductStatuses>
      <Status Type="Fixed">
        <ProductID>SUSE Manager Client Tools 15:firewalld-prometheus-config-0.1-150000.3.41.2</ProductID>
        <ProductID>SUSE Manager Client Tools 15:golang-github-prometheus-prometheus-2.32.1-150000.3.41.2</ProductID>
      </Status>
    </ProductStatuses>
    <Threats>
      <Threat Type="Impact">
        <Description>important</Description>
      </Threat>
    </Threats>
    <CVSSScoreSets>
      <ScoreSet>
        <BaseScore>5</BaseScore>
        <Vector>AV:N/AC:L/Au:N/C:N/I:N/A:P</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/2022/suse-su-20221434-1/</URL>
      </Remediation>
    </Remediations>
    <References>
      <Reference>
        <URL>https://www.suse.com/security/cve/CVE-2022-21698.html</URL>
        <Description>CVE-2022-21698</Description>
      </Reference>
      <Reference>
        <URL>https://bugzilla.suse.com/1196338</URL>
        <Description>SUSE Bug 1196338</Description>
      </Reference>
      <Reference>
        <URL>https://bugzilla.suse.com/1248689</URL>
        <Description>SUSE Bug 1248689</Description>
      </Reference>
    </References>
  </Vulnerability>
</cvrfdoc>
