<?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>Wed, 30 Sep 2026 23:23:06 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-42612</title>
      <link>https://vulnerability.circl.lu/vuln/fkie_cve-2026-42612</link>
      <description>&lt;p&gt;Grav is a file-based Web platform. Prior to 2.0.0-beta.2, a stored Cross-Site Scripting (XSS) vulnerability in getgrav/grav allows publisher-level accounts to execute arbitrary JavaScript. The issue arises from a blacklist bypass in the detectXss() function when handling unquoted HTML event attributes. This vulnerability is fixed in 2.0.0-beta.2.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Grav is a file-based Web platform. Prior to 2.0.0-beta.2, a stored Cross-Site Scripting (XSS) vulnerability in getgrav/grav allows publisher-level accounts to execute arbitrary JavaScript. The issue arises from a blacklist bypass in the detectXss() function when handling unquoted HTML event attributes. This vulnerability is fixed in 2.0.0-beta.2.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/fkie_cve-2026-42612</guid>
    </item>
    <item>
      <title>GHSA-9695-8fr9-hw5q — Grav Vulnerable to Publisher-Level Stored XSS via Unquoted Event Attributes</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-9695-8fr9-hw5q</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Packagist: getgrav/grav&lt;/p&gt;
&lt;p&gt;### Summary
A stored Cross-Site Scripting (XSS) vulnerability in `getgrav/grav` allows publisher-level accounts to execute arbitrary JavaScript. The issue arises from a blacklist bypass in the `detectXss()` function when handling unquoted HTML event attributes.&lt;/p&gt;
&lt;p&gt;### Details
The `detectXss()` function relies on a blacklist pattern to filter malicious attributes. The specific regex pattern used to match `on*` events is flawed:
```php
&amp;#39;on_events&amp;#39; =&amp;gt; &amp;#39;#(&amp;lt;[^&amp;gt;]+[a-z\x00-\x20\&amp;#34;\&amp;#39;\/])(on[a-z]+|xmlns)\s*=[\s|\&amp;#39;\&amp;#34;].*[\s|\&amp;#39;\&amp;#34;]&amp;gt;#iUu&amp;#39;
```
This pattern fails to properly identify `on*` event handlers that are constructed without quotation marks. This allows an attacker to completely bypass the filter. *Note: It is highly recommended to replace this blacklist approach with a robust, established HTML sanitization library.*&lt;/p&gt;
&lt;p&gt;### PoC
An attacker with publisher-level access can reproduce this by injecting the following payload into any vulnerable content field:
```html
&amp;lt;img src=x onerror=eval(atob(/YWxlcnQoZG9jdW1lbnQuY29va2llKQ/.source))&amp;gt;
```
&amp;lt;img width=&amp;#34;1889&amp;#34; height=&amp;#34;482&amp;#34; alt=&amp;#34;image1&amp;#34; src=&amp;#34;https://github.com/user-attachments/assets/0f1a339b-25a8-4b6e-91af-8c59e6a39297&amp;#34; /&amp;gt;
&amp;lt;img width=&amp;#34;3055&amp;#34; height=&amp;#34;920&amp;#34; alt=&amp;#34;image2&amp;#34; src=&amp;#34;https://github.com/user-attachments/assets/12680058-bbb3-4446-b58e-515533bb4e90&amp;#34; /&amp;gt;
&amp;lt;img width=&amp;#34;2909&amp;#34; height=&amp;#34;1339&amp;#34; alt=&amp;#34;image3&amp;#34; src=&amp;#34;https://github.com/user-attachments/assets/c7ed7e61-8dcf-402d-8589-98d18978c71a&amp;#34; /&amp;gt;&lt;/p&gt;
&lt;p&gt;**Execution Details:**
The `onerror` event is written wit…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Packagist: getgrav/grav&lt;/p&gt;
&lt;p&gt;### Summary
A stored Cross-Site Scripting (XSS) vulnerability in `getgrav/grav` allows publisher-level accounts to execute arbitrary JavaScript. The issue arises from a blacklist bypass in the `detectXss()` function when handling unquoted HTML event attributes.&lt;/p&gt;
&lt;p&gt;### Details
The `detectXss()` function relies on a blacklist pattern to filter malicious attributes. The specific regex pattern used to match `on*` events is flawed:
```php
&amp;#39;on_events&amp;#39; =&amp;gt; &amp;#39;#(&amp;lt;[^&amp;gt;]+[a-z\x00-\x20\&amp;#34;\&amp;#39;\/])(on[a-z]+|xmlns)\s*=[\s|\&amp;#39;\&amp;#34;].*[\s|\&amp;#39;\&amp;#34;]&amp;gt;#iUu&amp;#39;
```
This pattern fails to properly identify `on*` event handlers that are constructed without quotation marks. This allows an attacker to completely bypass the filter. *Note: It is highly recommended to replace this blacklist approach with a robust, established HTML sanitization library.*&lt;/p&gt;
&lt;p&gt;### PoC
An attacker with publisher-level access can reproduce this by injecting the following payload into any vulnerable content field:
```html
&amp;lt;img src=x onerror=eval(atob(/YWxlcnQoZG9jdW1lbnQuY29va2llKQ/.source))&amp;gt;
```
&amp;lt;img width=&amp;#34;1889&amp;#34; height=&amp;#34;482&amp;#34; alt=&amp;#34;image1&amp;#34; src=&amp;#34;https://github.com/user-attachments/assets/0f1a339b-25a8-4b6e-91af-8c59e6a39297&amp;#34; /&amp;gt;
&amp;lt;img width=&amp;#34;3055&amp;#34; height=&amp;#34;920&amp;#34; alt=&amp;#34;image2&amp;#34; src=&amp;#34;https://github.com/user-attachments/assets/12680058-bbb3-4446-b58e-515533bb4e90&amp;#34; /&amp;gt;
&amp;lt;img width=&amp;#34;2909&amp;#34; height=&amp;#34;1339&amp;#34; alt=&amp;#34;image3&amp;#34; src=&amp;#34;https://github.com/user-attachments/assets/c7ed7e61-8dcf-402d-8589-98d18978c71a&amp;#34; /&amp;gt;&lt;/p&gt;
&lt;p&gt;**Execution Details:**
The `onerror` event is written wit…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-9695-8fr9-hw5q</guid>
    </item>
  </channel>
</rss>
