<?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>Mon, 12 Oct 2026 16:42:57 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-317319</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-317319</link>
      <description>EUVD-2026-317319</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-317319</guid>
    </item>
    <item>
      <title>fkie_cve-2026-42613</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-42613</link>
      <description>&lt;p&gt;Grav is a file-based Web platform. Prior to 2.0.0-beta.2, the Login::register() method in the Login plugin accepts attacker-controlled groups and access fields from the registration POST data without server-side validation. When registration is enabled and groups or access are included in the configured allowed fields list, an unauthenticated user can self-register with admin.super privileges by injecting these fields into the registration request. 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, the Login::register() method in the Login plugin accepts attacker-controlled groups and access fields from the registration POST data without server-side validation. When registration is enabled and groups or access are included in the configured allowed fields list, an unauthenticated user can self-register with admin.super privileges by injecting these fields into the registration request. This vulnerability is fixed in 2.0.0-beta.2.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-42613</guid>
    </item>
    <item>
      <title>GHSA-pxm6-mhxr-q4mj — Grav Vulnerable to Privilege Escalation via Missing Server-Side Validation of groups/access</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-pxm6-mhxr-q4mj</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Packagist: getgrav/grav&lt;/p&gt;
&lt;p&gt;# Bug Report: Registration Privilege Escalation via Missing Server-Side Validation of groups/access&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;The `Login::register()` method in the Login plugin accepts attacker-controlled `groups` and `access` fields from the registration POST data without server-side validation. When registration is enabled and `groups` or `access` are included in the configured allowed fields list, an unauthenticated user can self-register with `admin.super` privileges by injecting these fields into the registration request.&lt;/p&gt;
&lt;p&gt;This is a missing server-side validation issue — the only defense is a config-level `fields` allowlist, which is an admin-facing setting, not a hardcoded security boundary.&lt;/p&gt;
&lt;p&gt;## Affected Component&lt;/p&gt;
&lt;p&gt;- **File:** `user/plugins/login/classes/Login.php`, lines 246-306
- **Method:** `Login::register()`
- **Validation:** `Login::validateField()`, lines 363-432
- **Plugin:** Login Plugin 3.8.0
- **Grav:** 1.8.0-beta.29&lt;/p&gt;
&lt;p&gt;## Root Cause&lt;/p&gt;
&lt;p&gt;In `register()` (lines 254-267), the `groups` and `access` fields are only set to config defaults **if they are not already present in the input data**:&lt;/p&gt;
&lt;p&gt;```php
// Line 254-260
if (!isset($data[&amp;#39;groups&amp;#39;])) {
    $groups = (array) $this-&amp;gt;config-&amp;gt;get(&amp;#39;plugins.login.user_registration.groups&amp;#39;, []);
    if (count($groups) &amp;gt; 0) {
        $data[&amp;#39;groups&amp;#39;] = $groups;
    }
}&lt;/p&gt;
&lt;p&gt;// Line 262-267
if (!isset($data[&amp;#39;access&amp;#39;])) {
    $access = (array) $this-&amp;gt;config-&amp;gt;get(&amp;#39;plugins.login.user_registration.access.site&amp;#39;, []);
    if (count($access) &amp;gt; 0) {…&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;# Bug Report: Registration Privilege Escalation via Missing Server-Side Validation of groups/access&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;The `Login::register()` method in the Login plugin accepts attacker-controlled `groups` and `access` fields from the registration POST data without server-side validation. When registration is enabled and `groups` or `access` are included in the configured allowed fields list, an unauthenticated user can self-register with `admin.super` privileges by injecting these fields into the registration request.&lt;/p&gt;
&lt;p&gt;This is a missing server-side validation issue — the only defense is a config-level `fields` allowlist, which is an admin-facing setting, not a hardcoded security boundary.&lt;/p&gt;
&lt;p&gt;## Affected Component&lt;/p&gt;
&lt;p&gt;- **File:** `user/plugins/login/classes/Login.php`, lines 246-306
- **Method:** `Login::register()`
- **Validation:** `Login::validateField()`, lines 363-432
- **Plugin:** Login Plugin 3.8.0
- **Grav:** 1.8.0-beta.29&lt;/p&gt;
&lt;p&gt;## Root Cause&lt;/p&gt;
&lt;p&gt;In `register()` (lines 254-267), the `groups` and `access` fields are only set to config defaults **if they are not already present in the input data**:&lt;/p&gt;
&lt;p&gt;```php
// Line 254-260
if (!isset($data[&amp;#39;groups&amp;#39;])) {
    $groups = (array) $this-&amp;gt;config-&amp;gt;get(&amp;#39;plugins.login.user_registration.groups&amp;#39;, []);
    if (count($groups) &amp;gt; 0) {
        $data[&amp;#39;groups&amp;#39;] = $groups;
    }
}&lt;/p&gt;
&lt;p&gt;// Line 262-267
if (!isset($data[&amp;#39;access&amp;#39;])) {
    $access = (array) $this-&amp;gt;config-&amp;gt;get(&amp;#39;plugins.login.user_registration.access.site&amp;#39;, []);
    if (count($access) &amp;gt; 0) {…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-pxm6-mhxr-q4mj</guid>
    </item>
  </channel>
</rss>
