Debian Package Tracker
Register | Log in
Subscribe

soupsieve

modern CSS selector implementation for BeautifulSoup (Python 3)

Choose email to subscribe with

general
  • source: soupsieve (main)
  • version: 2.8.4-1
  • maintainer: Debian Python Team (DMD)
  • uploaders: Stefano Rivera [DMD]
  • arch: all
  • std-ver: 4.7.4
  • VCS: Git (Browse, QA)
versions [more versions can be listed by madison] [old versions available from snapshot.debian.org]
[pool directory]
  • o-o-stable: 2.2.1-1
  • oldstable: 2.3.2-1
  • stable: 2.7-1
  • testing: 2.8.4-1
  • unstable: 2.8.4-1
versioned links
  • 2.2.1-1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 2.3.2-1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 2.7-1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
  • 2.8.4-1: [.dsc, use dget on this link to retrieve source package] [changelog] [copyright] [rules] [control]
binaries
  • python3-soupsieve
action needed
A new upstream version is available: 2.9.2 high
A new upstream version 2.9.2 is available, you should consider packaging it.
Created: 2026-07-22 Last update: 2026-09-24 06:33
2 security issues in sid high

There are 2 open security issues in sid.

2 important issues:
  • CVE-2026-85999: Soup Sieve is a CSS selector library designed to be used with Beautiful Soup 4. Prior to 2.9, selector_iter in src/soupsieve/css_parser.py trims the raw selector with RE_WS_END, an end-anchored WSC whitespace-and-comment expression used with search(), so the regular expression engine retries a greedy scan at every starting offset. An attacker-controlled valid selector containing a long internal whitespace run, or a selector containing a long CSS comment run followed by another token, causes quadratic CPU work before tokenization. User-controlled selectors can reach the path through soupsieve.compile() and BeautifulSoup.select(), while applications using only hard-coded selectors are unaffected. This root cause is separate from the IDENTIFIER and VALUE backtracking vulnerability because the cost occurs in RE_WS_END.search during trimming rather than token matching. The resulting CPU consumption can hold the Python GIL, exhaust workers, and stall a service without causing memory corruption or code execution. The issue is fixed in version 2.9.
  • CVE-2026-86000: Soup Sieve is a CSS selector library designed to be used with Beautiful Soup 4. Prior to 2.9, the selector parser in src/soupsieve/css_parser.py defines IDENTIFIER with adjacent quantified groups over overlapping character classes, and VALUE embeds IDENTIFIER for attribute selectors. When an attacker-controlled selector contains a long identifier or unquoted attribute-value run followed by input that makes the overall match fail, the regular expression engine explores quadratically many splits between the overlapping groups. User-controlled selectors can reach this path through soupsieve.compile(), soupsieve.select(), or BeautifulSoup.select(), while applications using only hard-coded selectors are unaffected. The resulting CPU consumption can hold the Python GIL, exhaust application workers, and stall a service; successful plain identifier matches are linear, and the issue does not cause memory corruption or code execution. The issue is fixed in version 2.9.
Created: 2026-09-19 Last update: 2026-09-19 21:00
2 security issues in forky high

There are 2 open security issues in forky.

2 important issues:
  • CVE-2026-85999: Soup Sieve is a CSS selector library designed to be used with Beautiful Soup 4. Prior to 2.9, selector_iter in src/soupsieve/css_parser.py trims the raw selector with RE_WS_END, an end-anchored WSC whitespace-and-comment expression used with search(), so the regular expression engine retries a greedy scan at every starting offset. An attacker-controlled valid selector containing a long internal whitespace run, or a selector containing a long CSS comment run followed by another token, causes quadratic CPU work before tokenization. User-controlled selectors can reach the path through soupsieve.compile() and BeautifulSoup.select(), while applications using only hard-coded selectors are unaffected. This root cause is separate from the IDENTIFIER and VALUE backtracking vulnerability because the cost occurs in RE_WS_END.search during trimming rather than token matching. The resulting CPU consumption can hold the Python GIL, exhaust workers, and stall a service without causing memory corruption or code execution. The issue is fixed in version 2.9.
  • CVE-2026-86000: Soup Sieve is a CSS selector library designed to be used with Beautiful Soup 4. Prior to 2.9, the selector parser in src/soupsieve/css_parser.py defines IDENTIFIER with adjacent quantified groups over overlapping character classes, and VALUE embeds IDENTIFIER for attribute selectors. When an attacker-controlled selector contains a long identifier or unquoted attribute-value run followed by input that makes the overall match fail, the regular expression engine explores quadratically many splits between the overlapping groups. User-controlled selectors can reach this path through soupsieve.compile(), soupsieve.select(), or BeautifulSoup.select(), while applications using only hard-coded selectors are unaffected. The resulting CPU consumption can hold the Python GIL, exhaust application workers, and stall a service; successful plain identifier matches are linear, and the issue does not cause memory corruption or code execution. The issue is fixed in version 2.9.
Created: 2026-09-19 Last update: 2026-09-19 21:00
4 security issues in bookworm high

There are 4 open security issues in bookworm.

2 important issues:
  • CVE-2026-85999: Soup Sieve is a CSS selector library designed to be used with Beautiful Soup 4. Prior to 2.9, selector_iter in src/soupsieve/css_parser.py trims the raw selector with RE_WS_END, an end-anchored WSC whitespace-and-comment expression used with search(), so the regular expression engine retries a greedy scan at every starting offset. An attacker-controlled valid selector containing a long internal whitespace run, or a selector containing a long CSS comment run followed by another token, causes quadratic CPU work before tokenization. User-controlled selectors can reach the path through soupsieve.compile() and BeautifulSoup.select(), while applications using only hard-coded selectors are unaffected. This root cause is separate from the IDENTIFIER and VALUE backtracking vulnerability because the cost occurs in RE_WS_END.search during trimming rather than token matching. The resulting CPU consumption can hold the Python GIL, exhaust workers, and stall a service without causing memory corruption or code execution. The issue is fixed in version 2.9.
  • CVE-2026-86000: Soup Sieve is a CSS selector library designed to be used with Beautiful Soup 4. Prior to 2.9, the selector parser in src/soupsieve/css_parser.py defines IDENTIFIER with adjacent quantified groups over overlapping character classes, and VALUE embeds IDENTIFIER for attribute selectors. When an attacker-controlled selector contains a long identifier or unquoted attribute-value run followed by input that makes the overall match fail, the regular expression engine explores quadratically many splits between the overlapping groups. User-controlled selectors can reach this path through soupsieve.compile(), soupsieve.select(), or BeautifulSoup.select(), while applications using only hard-coded selectors are unaffected. The resulting CPU consumption can hold the Python GIL, exhaust application workers, and stall a service; successful plain identifier matches are linear, and the issue does not cause memory corruption or code execution. The issue is fixed in version 2.9.
2 issues postponed or untriaged:
  • CVE-2026-49476: (postponed; to be fixed through a stable update) Soup Sieve is a CSS selector library designed to be used with Beautiful Soup 4. Prior to 2.8.4, the CSS selector parser in soupsieve allocates unbounded memory when compiling large comma-separated selector lists, allowing an attacker who can supply a crafted selector string to soupsieve.compile() or Beautiful Soup .select() / .select_one() to allocate hundreds of megabytes of heap memory from a relatively small input and cause denial of service. This issue is fixed in version 2.8.4.
  • CVE-2026-49477: (postponed; to be fixed through a stable update) Soup Sieve is a CSS selector library designed to be used with Beautiful Soup 4. Prior to 2.8.4, the CSS selector parser in soupsieve contains a regular expression vulnerable to catastrophic backtracking when processing an attribute selector with an unterminated quoted value in soupsieve/css_parser.py, allowing an attacker who can supply untrusted CSS selector strings to soupsieve.compile() or Beautiful Soup .select() / .select_one() to cause CPU exhaustion and denial of service. This issue is fixed in version 2.8.4.
Created: 2026-09-19 Last update: 2026-09-19 21:00
2 security issues in bullseye high

There are 2 open security issues in bullseye.

2 important issues:
  • CVE-2026-49476: Soup Sieve is a CSS selector library designed to be used with Beautiful Soup 4. Prior to 2.8.4, the CSS selector parser in soupsieve allocates unbounded memory when compiling large comma-separated selector lists, allowing an attacker who can supply a crafted selector string to soupsieve.compile() or Beautiful Soup .select() / .select_one() to allocate hundreds of megabytes of heap memory from a relatively small input and cause denial of service. This issue is fixed in version 2.8.4.
  • CVE-2026-49477: Soup Sieve is a CSS selector library designed to be used with Beautiful Soup 4. Prior to 2.8.4, the CSS selector parser in soupsieve contains a regular expression vulnerable to catastrophic backtracking when processing an attribute selector with an unterminated quoted value in soupsieve/css_parser.py, allowing an attacker who can supply untrusted CSS selector strings to soupsieve.compile() or Beautiful Soup .select() / .select_one() to cause CPU exhaustion and denial of service. This issue is fixed in version 2.8.4.
Created: 2026-07-16 Last update: 2026-08-10 15:30
lintian reports 2 warnings normal
Lintian reports 2 warnings about this package. You should make the package lintian clean getting rid of them.
Created: 2026-05-27 Last update: 2026-05-27 21:01
4 low-priority security issues in trixie low

There are 4 open security issues in trixie.

4 issues left for the package maintainer to handle:
  • CVE-2026-49476: (needs triaging) Soup Sieve is a CSS selector library designed to be used with Beautiful Soup 4. Prior to 2.8.4, the CSS selector parser in soupsieve allocates unbounded memory when compiling large comma-separated selector lists, allowing an attacker who can supply a crafted selector string to soupsieve.compile() or Beautiful Soup .select() / .select_one() to allocate hundreds of megabytes of heap memory from a relatively small input and cause denial of service. This issue is fixed in version 2.8.4.
  • CVE-2026-49477: (needs triaging) Soup Sieve is a CSS selector library designed to be used with Beautiful Soup 4. Prior to 2.8.4, the CSS selector parser in soupsieve contains a regular expression vulnerable to catastrophic backtracking when processing an attribute selector with an unterminated quoted value in soupsieve/css_parser.py, allowing an attacker who can supply untrusted CSS selector strings to soupsieve.compile() or Beautiful Soup .select() / .select_one() to cause CPU exhaustion and denial of service. This issue is fixed in version 2.8.4.
  • CVE-2026-85999: (needs triaging) Soup Sieve is a CSS selector library designed to be used with Beautiful Soup 4. Prior to 2.9, selector_iter in src/soupsieve/css_parser.py trims the raw selector with RE_WS_END, an end-anchored WSC whitespace-and-comment expression used with search(), so the regular expression engine retries a greedy scan at every starting offset. An attacker-controlled valid selector containing a long internal whitespace run, or a selector containing a long CSS comment run followed by another token, causes quadratic CPU work before tokenization. User-controlled selectors can reach the path through soupsieve.compile() and BeautifulSoup.select(), while applications using only hard-coded selectors are unaffected. This root cause is separate from the IDENTIFIER and VALUE backtracking vulnerability because the cost occurs in RE_WS_END.search during trimming rather than token matching. The resulting CPU consumption can hold the Python GIL, exhaust workers, and stall a service without causing memory corruption or code execution. The issue is fixed in version 2.9.
  • CVE-2026-86000: (needs triaging) Soup Sieve is a CSS selector library designed to be used with Beautiful Soup 4. Prior to 2.9, the selector parser in src/soupsieve/css_parser.py defines IDENTIFIER with adjacent quantified groups over overlapping character classes, and VALUE embeds IDENTIFIER for attribute selectors. When an attacker-controlled selector contains a long identifier or unquoted attribute-value run followed by input that makes the overall match fail, the regular expression engine explores quadratically many splits between the overlapping groups. User-controlled selectors can reach this path through soupsieve.compile(), soupsieve.select(), or BeautifulSoup.select(), while applications using only hard-coded selectors are unaffected. The resulting CPU consumption can hold the Python GIL, exhaust application workers, and stall a service; successful plain identifier matches are linear, and the issue does not cause memory corruption or code execution. The issue is fixed in version 2.9.

You can find information about how to handle these issues in the security team's documentation.

Created: 2026-07-16 Last update: 2026-09-19 21:00
news
[rss feed]
  • [2026-05-29] soupsieve 2.8.4-1 MIGRATED to testing (Debian testing watch)
  • [2026-05-27] Accepted soupsieve 2.8.4-1 (source) into unstable (Stefano Rivera)
  • [2026-01-27] soupsieve 2.8.3-1 MIGRATED to testing (Debian testing watch)
  • [2026-01-24] Accepted soupsieve 2.8.3-1 (source) into unstable (Stefano Rivera)
  • [2025-12-22] soupsieve 2.8.1-1 MIGRATED to testing (Debian testing watch)
  • [2025-12-18] Accepted soupsieve 2.8.1-1 (source) into unstable (Stefano Rivera)
  • [2025-08-22] soupsieve 2.7-2 MIGRATED to testing (Debian testing watch)
  • [2025-08-20] Accepted soupsieve 2.7-2 (source) into unstable (Alexandre Detiste)
  • [2025-05-07] soupsieve 2.7-1 MIGRATED to testing (Debian testing watch)
  • [2025-04-26] Accepted soupsieve 2.7-1 (source) into unstable (Stefano Rivera)
  • [2024-08-17] soupsieve 2.6-1 MIGRATED to testing (Debian testing watch)
  • [2024-08-15] Accepted soupsieve 2.6-1 (source) into unstable (Stefano Rivera)
  • [2023-09-25] soupsieve 2.5-1 MIGRATED to testing (Debian testing watch)
  • [2023-09-22] Accepted soupsieve 2.5-1 (source) into unstable (Stefano Rivera)
  • [2023-06-20] soupsieve 2.4.1-2 MIGRATED to testing (Debian testing watch)
  • [2023-06-11] Accepted soupsieve 2.4.1-2 (source) into unstable (Stefano Rivera)
  • [2023-04-22] Accepted soupsieve 2.4.1-1 (source) into experimental (Stefano Rivera)
  • [2023-02-19] Accepted soupsieve 2.4-1 (source) into experimental (Stefano Rivera)
  • [2022-04-15] soupsieve 2.3.2-1 MIGRATED to testing (Debian testing watch)
  • [2022-04-08] Accepted soupsieve 2.3.2-1 (source) into unstable (Stefano Rivera)
  • [2021-11-25] soupsieve 2.3.1-1 MIGRATED to testing (Debian testing watch)
  • [2021-11-23] Accepted soupsieve 2.3.1-1 (source) into unstable (Stefano Rivera)
  • [2021-11-09] soupsieve 2.3-1 MIGRATED to testing (Debian testing watch)
  • [2021-11-07] Accepted soupsieve 2.3-1 (source) into unstable (Stefano Rivera)
  • [2021-10-05] soupsieve 2.2.1-2 MIGRATED to testing (Debian testing watch)
  • [2021-10-02] Accepted soupsieve 2.2.1-2 (source) into unstable (Stefano Rivera)
  • [2021-04-24] soupsieve 2.2.1-1 MIGRATED to testing (Debian testing watch)
  • [2021-03-28] Accepted soupsieve 2.2.1-1 (source) into unstable (Stefano Rivera)
  • [2021-02-22] soupsieve 2.2-1 MIGRATED to testing (Debian testing watch)
  • [2021-02-11] Accepted soupsieve 2.2-1 (source) into unstable (Stefano Rivera)
  • 1
  • 2
bugs [bug history graph]
  • all: 1
  • RC: 0
  • I&N: 1
  • M&W: 0
  • F&P: 0
  • patch: 0
links
  • homepage
  • lintian (0, 2)
  • buildd: logs, reproducibility
  • popcon
  • browse source code
  • other distros
  • security tracker
  • debci
ubuntu Ubuntu logo [Information about Ubuntu for Debian Developers]
  • version: 2.8.4-1

Debian Package Tracker — Copyright 2013-2025 The Distro Tracker Developers
Report problems to the tracker.debian.org pseudo-package in the Debian BTS.
Documentation — Bugs — Git Repository — Contributing