<?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://db.gcve.eu</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, 11 Oct 2026 05:21:33 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-75597</title>
      <link>https://db.gcve.eu/vuln/fkie_cve-2026-75597</link>
      <description>&lt;p&gt;pyLoad is a free and open-source download manager written in Python. Prior to 0.5.0b3.dev101, the `/web/&amp;lt;path:filename&amp;gt;` route in `src/pyload/webui/app/blueprints/app_blueprint.py` renders Jinja2 templates without any authentication requirement. Every equivalent direct route (`/logs`, `/settings`, `/queue`, `/dashboard`, etc.) is protected by `@login_required`, but the underlying templates for all of these pages are accessible unauthenticated via this endpoint. Combined with an exception attribute typo in `src/pyload/webui/app/handlers.py` (`exc.desc` instead of `exc.description`), internal Jinja2 variable names are leaked in HTTP 500 response bodies to unauthenticated callers. An attacker can also enumerate all valid template names by observing 200 vs 500 response differentiation. Version 0.5.0b3.dev101 contains a patch.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;pyLoad is a free and open-source download manager written in Python. Prior to 0.5.0b3.dev101, the `/web/&amp;lt;path:filename&amp;gt;` route in `src/pyload/webui/app/blueprints/app_blueprint.py` renders Jinja2 templates without any authentication requirement. Every equivalent direct route (`/logs`, `/settings`, `/queue`, `/dashboard`, etc.) is protected by `@login_required`, but the underlying templates for all of these pages are accessible unauthenticated via this endpoint. Combined with an exception attribute typo in `src/pyload/webui/app/handlers.py` (`exc.desc` instead of `exc.description`), internal Jinja2 variable names are leaked in HTTP 500 response bodies to unauthenticated callers. An attacker can also enumerate all valid template names by observing 200 vs 500 response differentiation. Version 0.5.0b3.dev101 contains a patch.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/fkie_cve-2026-75597</guid>
    </item>
    <item>
      <title>GHSA-j92p-c242-7hfx — pyLoad: Unauthenticated access to /web/&lt;path:filename&gt; bypasses authentication on sensitive templates and leaks interna…</title>
      <link>https://db.gcve.eu/vuln/ghsa-j92p-c242-7hfx</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: pyload-ng&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;The `/web/&amp;lt;path:filename&amp;gt;` route in `src/pyload/webui/app/blueprints/app_blueprint.py` renders Jinja2 templates without any authentication requirement. Every equivalent direct route (`/logs`, `/settings`, `/queue`, `/dashboard`, etc.) is protected by `@login_required`, but the underlying templates for all of these pages are accessible unauthenticated via this endpoint. Combined with an exception attribute typo in `src/pyload/webui/app/handlers.py` (`exc.desc` instead of `exc.description`), internal Jinja2 variable names are leaked in HTTP 500 response bodies to unauthenticated callers. An attacker can also enumerate all valid template names by observing 200 vs 500 response differentiation.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;**Bug 1 — Missing authentication on `/web/&amp;lt;path:filename&amp;gt;`**&lt;/p&gt;
&lt;p&gt;File: `src/pyload/webui/app/blueprints/app_blueprint.py`, lines 32–36&lt;/p&gt;
&lt;p&gt;```python
@bp.route(&amp;#34;/web/&amp;lt;path:filename&amp;gt;&amp;#34;, endpoint=&amp;#34;web&amp;#34;)
def render(filename):                          # ← no @login_required
    mimetype = mimetypes.guess_type(filename)[0] or &amp;#34;text/html&amp;#34;
    data = render_template(filename)
    return flask.Response(data, mimetype=mimetype)
```&lt;/p&gt;
&lt;p&gt;Every other sensitive route in the same file is protected:&lt;/p&gt;
&lt;p&gt;```python
@bp.route(&amp;#34;/logs&amp;#34;, ...)
@login_required(&amp;#34;LIST&amp;#34;)       # protected&lt;/p&gt;
&lt;p&gt;@bp.route(&amp;#34;/settings&amp;#34;, ...)
@login_required(&amp;#34;SETTINGS&amp;#34;)  # protected&lt;/p&gt;
&lt;p&gt;@bp.route(&amp;#34;/files&amp;#34;, ...)
@login_required(&amp;#34;DOWNLOAD&amp;#34;)  # protected
```&lt;/p&gt;
&lt;p&gt;The `/web/&amp;lt;path:filename&amp;gt;` route has no such decorator, allowing any unauth…&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&lt;/p&gt;
&lt;p&gt;The `/web/&amp;lt;path:filename&amp;gt;` route in `src/pyload/webui/app/blueprints/app_blueprint.py` renders Jinja2 templates without any authentication requirement. Every equivalent direct route (`/logs`, `/settings`, `/queue`, `/dashboard`, etc.) is protected by `@login_required`, but the underlying templates for all of these pages are accessible unauthenticated via this endpoint. Combined with an exception attribute typo in `src/pyload/webui/app/handlers.py` (`exc.desc` instead of `exc.description`), internal Jinja2 variable names are leaked in HTTP 500 response bodies to unauthenticated callers. An attacker can also enumerate all valid template names by observing 200 vs 500 response differentiation.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;**Bug 1 — Missing authentication on `/web/&amp;lt;path:filename&amp;gt;`**&lt;/p&gt;
&lt;p&gt;File: `src/pyload/webui/app/blueprints/app_blueprint.py`, lines 32–36&lt;/p&gt;
&lt;p&gt;```python
@bp.route(&amp;#34;/web/&amp;lt;path:filename&amp;gt;&amp;#34;, endpoint=&amp;#34;web&amp;#34;)
def render(filename):                          # ← no @login_required
    mimetype = mimetypes.guess_type(filename)[0] or &amp;#34;text/html&amp;#34;
    data = render_template(filename)
    return flask.Response(data, mimetype=mimetype)
```&lt;/p&gt;
&lt;p&gt;Every other sensitive route in the same file is protected:&lt;/p&gt;
&lt;p&gt;```python
@bp.route(&amp;#34;/logs&amp;#34;, ...)
@login_required(&amp;#34;LIST&amp;#34;)       # protected&lt;/p&gt;
&lt;p&gt;@bp.route(&amp;#34;/settings&amp;#34;, ...)
@login_required(&amp;#34;SETTINGS&amp;#34;)  # protected&lt;/p&gt;
&lt;p&gt;@bp.route(&amp;#34;/files&amp;#34;, ...)
@login_required(&amp;#34;DOWNLOAD&amp;#34;)  # protected
```&lt;/p&gt;
&lt;p&gt;The `/web/&amp;lt;path:filename&amp;gt;` route has no such decorator, allowing any unauth…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://db.gcve.eu/vuln/ghsa-j92p-c242-7hfx</guid>
    </item>
  </channel>
</rss>
