OPENSUSE-SU-2026:20417-1

Vulnerability from csaf_opensuse - Published: 2026-03-24 19:40 - Updated: 2026-10-26 19:23
Summary
Security update for python-black
Severity
Important
Notes
Title of the patch: Security update for python-black
Description of the patch: This update for python-black fixes the following issues: - CVE-2026-31900: a malicious pyproject.toml edit can lead to arbitrary code execution (bsc#1259546). - CVE-2026-32274: arbitrary file writes from unsanitized user input in cache file name (bsc#1259608).
Patchnames: openSUSE-Leap-16.0-437
Terms of use: CSAF 2.0 data is provided by SUSE under the Creative Commons License 4.0 with Attribution (CC-BY-4.0).
Affected products
Product Identifier Version Remediation
Unresolved product id: openSUSE Leap 16.0:python313-black-0:25.1.0-160000.3.1.noarch —
Vendor Fix
Threats
Impact important
Affected products
Recommended 1 product, the same list as for CVE-2026-31900
Threats
Impact moderate

{
  "document": {
    "aggregate_severity": {
      "namespace": "https://www.suse.com/support/security/rating/",
      "text": "important"
    },
    "category": "csaf_security_advisory",
    "csaf_version": "2.0",
    "distribution": {
      "text": "Copyright 2024 SUSE LLC. All rights reserved.",
      "tlp": {
        "label": "WHITE",
        "url": "https://www.first.org/tlp/"
      }
    },
    "lang": "en",
    "notes": [
      {
        "category": "summary",
        "text": "Security update for python-black",
        "title": "Title of the patch"
      },
      {
        "category": "description",
        "text": "This update for python-black fixes the following issues:\n\n- CVE-2026-31900: a malicious pyproject.toml edit can lead to arbitrary code execution (bsc#1259546).\n- CVE-2026-32274: arbitrary file writes from unsanitized user input in cache file name (bsc#1259608).\n",
        "title": "Description of the patch"
      },
      {
        "category": "details",
        "text": "openSUSE-Leap-16.0-437",
        "title": "Patchnames"
      },
      {
        "category": "legal_disclaimer",
        "text": "CSAF 2.0 data is provided by SUSE under the Creative Commons License 4.0 with Attribution (CC-BY-4.0).",
        "title": "Terms of use"
      }
    ],
    "publisher": {
      "category": "vendor",
      "contact_details": "https://www.suse.com/support/security/contact/",
      "name": "SUSE Product Security Team",
      "namespace": "https://www.suse.com/"
    },
    "references": [
      {
        "category": "external",
        "summary": "SUSE ratings",
        "url": "https://www.suse.com/support/security/rating/"
      },
      {
        "category": "self",
        "summary": "URL of this CSAF notice",
        "url": "https://ftp.suse.com/pub/projects/security/csaf/opensuse-su-2026_20417-1.json"
      },
      {
        "category": "self",
        "summary": "SUSE Bug 1259546",
        "url": "https://bugzilla.suse.com/1259546"
      },
      {
        "category": "self",
        "summary": "SUSE Bug 1259608",
        "url": "https://bugzilla.suse.com/1259608"
      },
      {
        "category": "self",
        "summary": "SUSE CVE CVE-2026-31900 page",
        "url": "https://www.suse.com/security/cve/CVE-2026-31900/"
      },
      {
        "category": "self",
        "summary": "SUSE CVE CVE-2026-32274 page",
        "url": "https://www.suse.com/security/cve/CVE-2026-32274/"
      }
    ],
    "title": "Security update for python-black",
    "tracking": {
      "current_release_date": "2026-10-26T19:23:46Z",
      "generator": {
        "date": "2026-03-24T19:40:55Z",
        "engine": {
          "name": "cve-database.git:bin/generate-csaf.pl",
          "version": "1"
        }
      },
      "id": "openSUSE-SU-2026:20417-1",
      "initial_release_date": "2026-03-24T19:40:55Z",
      "revision_history": [
        {
          "date": "2026-03-24T19:40:55Z",
          "number": "1",
          "summary": "Current version"
        },
        {
          "date": "2026-09-16T20:32:02Z",
          "number": "2",
          "summary": "unknown changes"
        },
        {
          "date": "2026-09-16T21:34:43Z",
          "number": "3",
          "summary": "unknown changes"
        },
        {
          "date": "2026-09-17T17:29:04Z",
          "number": "4",
          "summary": "unknown changes"
        },
        {
          "date": "2026-10-26T19:23:46Z",
          "number": "5",
          "summary": "unknown changes"
        }
      ],
      "status": "final",
      "version": "5"
    }
  },
  "product_tree": {
    "branches": [
      {
        "branches": [
          {
            "branches": [
              {
                "category": "product_version",
                "name": "python313-black-0:25.1.0-160000.3.1.noarch",
                "product": {
                  "name": "python313-black-0:25.1.0-160000.3.1.noarch",
                  "product_id": "python313-black-0:25.1.0-160000.3.1.noarch",
                  "product_identification_helper": {
                    "cpe": "cpe:2.3:a:python:black:25.1.0:*:*:*:*:python:*:*",
                    "purl": "pkg:rpm/suse/python313-black@25.1.0-160000.3.1?arch=noarch\u0026upstream=python-black-0:25.1.0-160000.3.1.src.rpm"
                  }
                }
              }
            ],
            "category": "architecture",
            "name": "noarch"
          },
          {
            "branches": [
              {
                "category": "product_name",
                "name": "openSUSE Leap 16.0",
                "product": {
                  "name": "openSUSE Leap 16.0",
                  "product_id": "openSUSE Leap 16.0"
                }
              }
            ],
            "category": "product_family",
            "name": "SUSE Linux Enterprise"
          }
        ],
        "category": "vendor",
        "name": "SUSE"
      }
    ],
    "relationships": [
      {
        "category": "default_component_of",
        "full_product_name": {
          "name": "python313-black-0:25.1.0-160000.3.1.noarch as component of openSUSE Leap 16.0",
          "product_id": "openSUSE Leap 16.0:python313-black-0:25.1.0-160000.3.1.noarch"
        },
        "product_reference": "python313-black-0:25.1.0-160000.3.1.noarch",
        "relates_to_product_reference": "openSUSE Leap 16.0"
      }
    ]
  },
  "vulnerabilities": [
    {
      "cve": "CVE-2026-31900",
      "ids": [
        {
          "system_name": "SUSE CVE Page",
          "text": "https://www.suse.com/security/cve/CVE-2026-31900"
        }
      ],
      "notes": [
        {
          "category": "general",
          "text": "Black is the uncompromising Python code formatter. Black provides a GitHub action for formatting code. This action supports an option, use_pyproject: true, for reading the version of Black to use from the repository pyproject.toml. A malicious pull request could edit pyproject.toml to use a direct URL reference to a malicious repository. This could lead to arbitrary code execution in the context of the GitHub Action. Attackers could then gain access to secrets or permissions available in the context of the action. Version 26.3.0 fixes this vulnerability.",
          "title": "CVE description"
        }
      ],
      "product_status": {
        "recommended": [
          "openSUSE Leap 16.0:python313-black-0:25.1.0-160000.3.1.noarch"
        ]
      },
      "references": [
        {
          "category": "external",
          "summary": "CVE-2026-31900",
          "url": "https://www.suse.com/security/cve/CVE-2026-31900"
        },
        {
          "category": "external",
          "summary": "SUSE Bug 1259546 for CVE-2026-31900",
          "url": "https://bugzilla.suse.com/1259546"
        },
        {
          "category": "external",
          "summary": "SUSE Bug 1287832 for CVE-2026-31900",
          "url": "https://bugzilla.suse.com/1287832"
        }
      ],
      "remediations": [
        {
          "category": "vendor_fix",
          "details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n",
          "product_ids": [
            "openSUSE Leap 16.0:python313-black-0:25.1.0-160000.3.1.noarch"
          ]
        }
      ],
      "scores": [
        {
          "cvss_v3": {
            "baseScore": 8.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "products": [
            "openSUSE Leap 16.0:python313-black-0:25.1.0-160000.3.1.noarch"
          ]
        }
      ],
      "threats": [
        {
          "category": "impact",
          "date": "2026-03-24T19:40:55Z",
          "details": "important"
        }
      ],
      "title": "CVE-2026-31900"
    },
    {
      "cve": "CVE-2026-32274",
      "ids": [
        {
          "system_name": "SUSE CVE Page",
          "text": "https://www.suse.com/security/cve/CVE-2026-32274"
        }
      ],
      "notes": [
        {
          "category": "general",
          "text": "Black is the uncompromising Python code formatter. Starting in version 24.3.0 and prior to version 26.3.1, Black writes a cache file, the name of which is computed from various formatting options. The value of the --python-cell-magics option was placed in the filename without sanitization, which allowed an attacker who controls the value of this argument to write cache files to arbitrary file system locations. Fixed in Black 26.3.1.",
          "title": "CVE description"
        }
      ],
      "product_status": {
        "recommended": [
          "openSUSE Leap 16.0:python313-black-0:25.1.0-160000.3.1.noarch"
        ]
      },
      "references": [
        {
          "category": "external",
          "summary": "CVE-2026-32274",
          "url": "https://www.suse.com/security/cve/CVE-2026-32274"
        },
        {
          "category": "external",
          "summary": "SUSE Bug 1259608 for CVE-2026-32274",
          "url": "https://bugzilla.suse.com/1259608"
        }
      ],
      "remediations": [
        {
          "category": "vendor_fix",
          "details": "To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n",
          "product_ids": [
            "openSUSE Leap 16.0:python313-black-0:25.1.0-160000.3.1.noarch"
          ]
        }
      ],
      "scores": [
        {
          "cvss_v3": {
            "baseScore": 5.5,
            "baseSeverity": "MEDIUM",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N",
            "version": "3.1"
          },
          "products": [
            "openSUSE Leap 16.0:python313-black-0:25.1.0-160000.3.1.noarch"
          ]
        }
      ],
      "threats": [
        {
          "category": "impact",
          "date": "2026-03-24T19:40:55Z",
          "details": "moderate"
        }
      ],
      "title": "CVE-2026-32274"
    }
  ]
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Vulnerability timeline

Sightings and recorded dates, grouped by day · UTC

JSON
How durations are calculated

Following the VTEM framework (Black Hat USA 2015), time to patch starts when the vendor or a coordinator was informed, total time to patch at discovery, and disclosure to patch at public disclosure; vendor response time runs from the report to its acknowledgement. Time to exploit and time unpatched start at the earliest discovery or report, falling back to public disclosure. Unpatched time ends at the first recorded patch, or the calculation time when no patch is recorded. Exploitation to patch shows the interval between those two events; a published proof of concept is a public exploit, not exploitation.

Each result shows its source dates. A negative interval means the end event came first; when date-only inputs leave the order open, the result says so. Date-only inputs are approximate. The earliest evidence wins: KEV report dates and sightings are labelled as such. Records describing another vulnerability are listed but never calculated from, and a PoC alone does not establish exploitation. Missing patch evidence does not prove that no patch exists. Filters below change the event list only.

Events included in the timeline

Loading timeline…


    Loading…

    Loading…

    Loading…

    Related by attack behaviour

    Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.