<?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>Fri, 02 Oct 2026 22:01:34 +0000</lastBuildDate>
    <item>
      <title>CVE-2026-41133 — pyLoad has Stale Session Privilege After Role/Permission Change (Privilege Revocation Bypass)</title>
      <link>https://cve.radiocsirt.org/vuln/cve-2026-41133</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; pyload&lt;/p&gt;
&lt;p&gt;pyLoad is a free and open-source download manager written in Python. Versions up to and including 0.5.0b3.dev97 cache `role` and `permission` in the session at login and continues to authorize requests using these cached values, even after an admin changes the user&amp;#39;s role/permissions in the database. As a result, an already logged-in user can keep old (revoked) privileges until logout/session expiry, enabling continued privileged actions. This is a core authorization/session-consistency issue and is not resolved by toggling an optional security feature. Commit e95804fb0d06cbb07d2ba380fc494d9ff89b68c1 contains a fix for the issue.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; pyload&lt;/p&gt;
&lt;p&gt;pyLoad is a free and open-source download manager written in Python. Versions up to and including 0.5.0b3.dev97 cache `role` and `permission` in the session at login and continues to authorize requests using these cached values, even after an admin changes the user&amp;#39;s role/permissions in the database. As a result, an already logged-in user can keep old (revoked) privileges until logout/session expiry, enabling continued privileged actions. This is a core authorization/session-consistency issue and is not resolved by toggling an optional security feature. Commit e95804fb0d06cbb07d2ba380fc494d9ff89b68c1 contains a fix for the issue.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/cve-2026-41133</guid>
    </item>
    <item>
      <title>GHSA-66hx-chf7-3332 — pyLoad has Stale Session Privilege After Role/Permission Change (Privilege Revocation Bypass)</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-66hx-chf7-3332</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: pyload-ng&lt;/p&gt;
&lt;p&gt;### Summary
pyLoad caches `role` and `permission` in the session at login and continues to authorize requests using these cached values, even after an admin changes the user&amp;#39;s role/permissions in the database.&lt;/p&gt;
&lt;p&gt;As a result, an already logged-in user can keep old (revoked) privileges until logout/session expiry, enabling continued privileged actions.&lt;/p&gt;
&lt;p&gt;This is a core authorization/session-consistency issue and is not resolved by toggling an optional security feature.&lt;/p&gt;
&lt;p&gt;### Details
The WebUI auth flow stores authorization state in session:&lt;/p&gt;
&lt;p&gt;- `src/pyload/webui/app/helpers.py:187-200`
  - `set_session(...)` writes:
    - `&amp;#34;role&amp;#34;: user_info[&amp;#34;role&amp;#34;]`
    - `&amp;#34;perms&amp;#34;: user_info[&amp;#34;permission&amp;#34;]`&lt;/p&gt;
&lt;p&gt;Authorization checks later trust cached session values:&lt;/p&gt;
&lt;p&gt;- `src/pyload/webui/app/helpers.py:134-151`
  - `parse_permissions(...)` reads `session.get(&amp;#34;role&amp;#34;)` / `session.get(&amp;#34;perms&amp;#34;)`
- `src/pyload/webui/app/helpers.py:225-230`
  - `is_authenticated(...)` only verifies `authenticated` and `api.user_exists(user)` (existence), not fresh role/permission
- `src/pyload/webui/app/helpers.py:267-275`
  - `login_required(...)` uses `parse_permissions(s)` for allow/deny decisions
- `src/pyload/webui/app/helpers.py:356-365`
  - API session auth path also trusts `s[&amp;#34;role&amp;#34;]` and `s[&amp;#34;perms&amp;#34;]`&lt;/p&gt;
&lt;p&gt;Role/permission updates are written to DB but active sessions are not invalidated/refreshed:&lt;/p&gt;
&lt;p&gt;- `src/pyload/webui/app/blueprints/json_blueprint.py:389-434`
  - `update_users(...)` calls `api.set_user_permission(...)` a…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: pyload-ng&lt;/p&gt;
&lt;p&gt;### Summary
pyLoad caches `role` and `permission` in the session at login and continues to authorize requests using these cached values, even after an admin changes the user&amp;#39;s role/permissions in the database.&lt;/p&gt;
&lt;p&gt;As a result, an already logged-in user can keep old (revoked) privileges until logout/session expiry, enabling continued privileged actions.&lt;/p&gt;
&lt;p&gt;This is a core authorization/session-consistency issue and is not resolved by toggling an optional security feature.&lt;/p&gt;
&lt;p&gt;### Details
The WebUI auth flow stores authorization state in session:&lt;/p&gt;
&lt;p&gt;- `src/pyload/webui/app/helpers.py:187-200`
  - `set_session(...)` writes:
    - `&amp;#34;role&amp;#34;: user_info[&amp;#34;role&amp;#34;]`
    - `&amp;#34;perms&amp;#34;: user_info[&amp;#34;permission&amp;#34;]`&lt;/p&gt;
&lt;p&gt;Authorization checks later trust cached session values:&lt;/p&gt;
&lt;p&gt;- `src/pyload/webui/app/helpers.py:134-151`
  - `parse_permissions(...)` reads `session.get(&amp;#34;role&amp;#34;)` / `session.get(&amp;#34;perms&amp;#34;)`
- `src/pyload/webui/app/helpers.py:225-230`
  - `is_authenticated(...)` only verifies `authenticated` and `api.user_exists(user)` (existence), not fresh role/permission
- `src/pyload/webui/app/helpers.py:267-275`
  - `login_required(...)` uses `parse_permissions(s)` for allow/deny decisions
- `src/pyload/webui/app/helpers.py:356-365`
  - API session auth path also trusts `s[&amp;#34;role&amp;#34;]` and `s[&amp;#34;perms&amp;#34;]`&lt;/p&gt;
&lt;p&gt;Role/permission updates are written to DB but active sessions are not invalidated/refreshed:&lt;/p&gt;
&lt;p&gt;- `src/pyload/webui/app/blueprints/json_blueprint.py:389-434`
  - `update_users(...)` calls `api.set_user_permission(...)` a…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-66hx-chf7-3332</guid>
    </item>
  </channel>
</rss>
