<?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://vulnerability.circl.lu</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>Sun, 04 Oct 2026 19:01:44 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-93421</title>
      <link>https://vulnerability.circl.lu/vuln/fkie_cve-2026-93421</link>
      <description>&lt;p&gt;Mesop is a Python-based UI framework that allows users to build web applications. Prior to 1.3.4, the unauthenticated /__csp__ endpoint passes attacker-controlled document-uri, blocked-uri, and violated-directive values to the csp_report handler in mesop/server/static_file_serving.py, which prints them to standard output without neutralizing terminal control sequences. When an operator views the resulting logs in an ANSI-capable terminal, injected ANSI or VT100 sequences can clear or reposition the display, hide text, or present forged messages, reducing the integrity of monitoring and incident-response output. This issue is fixed in version 1.3.4.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Mesop is a Python-based UI framework that allows users to build web applications. Prior to 1.3.4, the unauthenticated /__csp__ endpoint passes attacker-controlled document-uri, blocked-uri, and violated-directive values to the csp_report handler in mesop/server/static_file_serving.py, which prints them to standard output without neutralizing terminal control sequences. When an operator views the resulting logs in an ANSI-capable terminal, injected ANSI or VT100 sequences can clear or reposition the display, hide text, or present forged messages, reducing the integrity of monitoring and incident-response output. This issue is fixed in version 1.3.4.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/fkie_cve-2026-93421</guid>
    </item>
    <item>
      <title>GHSA-g7f6-rxc4-qhph — Mesop: Unauthenticated ANSI Escape Sequence Injection in CSP Reporting Endpoint</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-g7f6-rxc4-qhph</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: mesop&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;The `/__csp__` endpoint accepts unauthenticated JSON reports and logs user-controlled values directly to stdout using `print()` without escaping control characters.&lt;/p&gt;
&lt;p&gt;A remote attacker can include ANSI/VT100 escape sequences in fields such as `blocked-uri` or `document-uri`. When the logs are viewed in an ANSI-capable terminal, these sequences can manipulate the displayed output (e.g., clear the screen, hide text, or inject misleading messages), affecting the integrity of operator-facing logs.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;The CSP reporting endpoint accepts arbitrary JSON and prints several request fields directly:&lt;/p&gt;
&lt;p&gt;mesop/server/static_file_serving.py
```python
@app.route(prefix_base_url(&amp;#34;/__csp__&amp;#34;), methods=[&amp;#34;POST&amp;#34;])
def csp_report():
    report = request.get_json(force=True)&lt;/p&gt;
&lt;p&gt;document_uri = report[&amp;#34;csp-report&amp;#34;][&amp;#34;document-uri&amp;#34;]
    blocked_uri = report[&amp;#34;csp-report&amp;#34;][&amp;#34;blocked-uri&amp;#34;]
    violated_directive = report[&amp;#34;csp-report&amp;#34;][&amp;#34;violated-directive&amp;#34;]&lt;/p&gt;
&lt;p&gt;print(f&amp;#34;... Blocked URL: {blocked_uri} ...&amp;#34;)
```&lt;/p&gt;
&lt;p&gt;Since these values are written to stdout without sanitization, ANSI escape sequences supplied by a remote client are preserved and interpreted by ANSI-compatible terminals.&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;Send the following request:&lt;/p&gt;
&lt;p&gt;```http
POST /__csp__
Content-Type: application/json&lt;/p&gt;
&lt;p&gt;{
  &amp;#34;csp-report&amp;#34;: {
    &amp;#34;document-uri&amp;#34;: &amp;#34;https://victim.example&amp;#34;,
    &amp;#34;blocked-uri&amp;#34;: &amp;#34;\u001b[2J\u001b[H\u001b[32m*** SECURITY OK - No CSP violations found ***\u001b[0m\n\u001b[8mhttps://evil.example&amp;#34;,
    &amp;#34;violated-…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: mesop&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;The `/__csp__` endpoint accepts unauthenticated JSON reports and logs user-controlled values directly to stdout using `print()` without escaping control characters.&lt;/p&gt;
&lt;p&gt;A remote attacker can include ANSI/VT100 escape sequences in fields such as `blocked-uri` or `document-uri`. When the logs are viewed in an ANSI-capable terminal, these sequences can manipulate the displayed output (e.g., clear the screen, hide text, or inject misleading messages), affecting the integrity of operator-facing logs.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;The CSP reporting endpoint accepts arbitrary JSON and prints several request fields directly:&lt;/p&gt;
&lt;p&gt;mesop/server/static_file_serving.py
```python
@app.route(prefix_base_url(&amp;#34;/__csp__&amp;#34;), methods=[&amp;#34;POST&amp;#34;])
def csp_report():
    report = request.get_json(force=True)&lt;/p&gt;
&lt;p&gt;document_uri = report[&amp;#34;csp-report&amp;#34;][&amp;#34;document-uri&amp;#34;]
    blocked_uri = report[&amp;#34;csp-report&amp;#34;][&amp;#34;blocked-uri&amp;#34;]
    violated_directive = report[&amp;#34;csp-report&amp;#34;][&amp;#34;violated-directive&amp;#34;]&lt;/p&gt;
&lt;p&gt;print(f&amp;#34;... Blocked URL: {blocked_uri} ...&amp;#34;)
```&lt;/p&gt;
&lt;p&gt;Since these values are written to stdout without sanitization, ANSI escape sequences supplied by a remote client are preserved and interpreted by ANSI-compatible terminals.&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;Send the following request:&lt;/p&gt;
&lt;p&gt;```http
POST /__csp__
Content-Type: application/json&lt;/p&gt;
&lt;p&gt;{
  &amp;#34;csp-report&amp;#34;: {
    &amp;#34;document-uri&amp;#34;: &amp;#34;https://victim.example&amp;#34;,
    &amp;#34;blocked-uri&amp;#34;: &amp;#34;\u001b[2J\u001b[H\u001b[32m*** SECURITY OK - No CSP violations found ***\u001b[0m\n\u001b[8mhttps://evil.example&amp;#34;,
    &amp;#34;violated-…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-g7f6-rxc4-qhph</guid>
    </item>
    <item>
      <title>PYSEC-2026-4105 — Mesop: Unauthenticated ANSI Escape Sequence Injection in CSP Reporting Endpoint</title>
      <link>https://vulnerability.circl.lu/vuln/pysec-2026-4105</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: mesop&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;The `/__csp__` endpoint accepts unauthenticated JSON reports and logs user-controlled values directly to stdout using `print()` without escaping control characters.&lt;/p&gt;
&lt;p&gt;A remote attacker can include ANSI/VT100 escape sequences in fields such as `blocked-uri` or `document-uri`. When the logs are viewed in an ANSI-capable terminal, these sequences can manipulate the displayed output (e.g., clear the screen, hide text, or inject misleading messages), affecting the integrity of operator-facing logs.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;The CSP reporting endpoint accepts arbitrary JSON and prints several request fields directly:&lt;/p&gt;
&lt;p&gt;mesop/server/static_file_serving.py
```python
@app.route(prefix_base_url(&amp;#34;/__csp__&amp;#34;), methods=[&amp;#34;POST&amp;#34;])
def csp_report():
    report = request.get_json(force=True)&lt;/p&gt;
&lt;p&gt;document_uri = report[&amp;#34;csp-report&amp;#34;][&amp;#34;document-uri&amp;#34;]
    blocked_uri = report[&amp;#34;csp-report&amp;#34;][&amp;#34;blocked-uri&amp;#34;]
    violated_directive = report[&amp;#34;csp-report&amp;#34;][&amp;#34;violated-directive&amp;#34;]&lt;/p&gt;
&lt;p&gt;print(f&amp;#34;... Blocked URL: {blocked_uri} ...&amp;#34;)
```&lt;/p&gt;
&lt;p&gt;Since these values are written to stdout without sanitization, ANSI escape sequences supplied by a remote client are preserved and interpreted by ANSI-compatible terminals.&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;Send the following request:&lt;/p&gt;
&lt;p&gt;```http
POST /__csp__
Content-Type: application/json&lt;/p&gt;
&lt;p&gt;{
  &amp;#34;csp-report&amp;#34;: {
    &amp;#34;document-uri&amp;#34;: &amp;#34;https://victim.example&amp;#34;,
    &amp;#34;blocked-uri&amp;#34;: &amp;#34;\u001b[2J\u001b[H\u001b[32m*** SECURITY OK - No CSP violations found ***\u001b[0m\n\u001b[8mhttps://evil.example&amp;#34;,
    &amp;#34;violated-…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: mesop&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;The `/__csp__` endpoint accepts unauthenticated JSON reports and logs user-controlled values directly to stdout using `print()` without escaping control characters.&lt;/p&gt;
&lt;p&gt;A remote attacker can include ANSI/VT100 escape sequences in fields such as `blocked-uri` or `document-uri`. When the logs are viewed in an ANSI-capable terminal, these sequences can manipulate the displayed output (e.g., clear the screen, hide text, or inject misleading messages), affecting the integrity of operator-facing logs.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;The CSP reporting endpoint accepts arbitrary JSON and prints several request fields directly:&lt;/p&gt;
&lt;p&gt;mesop/server/static_file_serving.py
```python
@app.route(prefix_base_url(&amp;#34;/__csp__&amp;#34;), methods=[&amp;#34;POST&amp;#34;])
def csp_report():
    report = request.get_json(force=True)&lt;/p&gt;
&lt;p&gt;document_uri = report[&amp;#34;csp-report&amp;#34;][&amp;#34;document-uri&amp;#34;]
    blocked_uri = report[&amp;#34;csp-report&amp;#34;][&amp;#34;blocked-uri&amp;#34;]
    violated_directive = report[&amp;#34;csp-report&amp;#34;][&amp;#34;violated-directive&amp;#34;]&lt;/p&gt;
&lt;p&gt;print(f&amp;#34;... Blocked URL: {blocked_uri} ...&amp;#34;)
```&lt;/p&gt;
&lt;p&gt;Since these values are written to stdout without sanitization, ANSI escape sequences supplied by a remote client are preserved and interpreted by ANSI-compatible terminals.&lt;/p&gt;
&lt;p&gt;### PoC&lt;/p&gt;
&lt;p&gt;Send the following request:&lt;/p&gt;
&lt;p&gt;```http
POST /__csp__
Content-Type: application/json&lt;/p&gt;
&lt;p&gt;{
  &amp;#34;csp-report&amp;#34;: {
    &amp;#34;document-uri&amp;#34;: &amp;#34;https://victim.example&amp;#34;,
    &amp;#34;blocked-uri&amp;#34;: &amp;#34;\u001b[2J\u001b[H\u001b[32m*** SECURITY OK - No CSP violations found ***\u001b[0m\n\u001b[8mhttps://evil.example&amp;#34;,
    &amp;#34;violated-…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/pysec-2026-4105</guid>
    </item>
  </channel>
</rss>
