<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
  <id>https://db.gcve.eu/rss/recent/all/10</id>
  <title>Most recent entries from all</title>
  <updated>2026-10-12T04:22:58.651960+00:00</updated>
  <author>
    <name>Vulnerability-Lookup</name>
    <email>info@gcve.eu</email>
  </author>
  <link href="https://db.gcve.eu" rel="alternate"/>
  <generator uri="https://lkiesow.github.io/python-feedgen" version="1.0.0">python-feedgen</generator>
  <subtitle>Contains only the most 10 recent entries.</subtitle>
  <entry>
    <id>https://db.gcve.eu/vuln/fkie_cve-2026-91971</id>
    <title>fkie_cve-2026-91971</title>
    <updated>2026-10-12T04:22:58.692674+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>Vikunja before 2.6.0 fails to apply pixel decode limits to avatar and project-background upload endpoints, allowing authenticated users to upload crafted images that decode to excessive pixel counts. Attackers can upload small images with extreme aspect ratios that consume significant CPU and memory during processing, causing denial of service through repeated or concurrent uploads.</p>
      </div>
    </content>
    <link href="https://db.gcve.eu/vuln/fkie_cve-2026-91971"/>
  </entry>
  <entry>
    <id>https://db.gcve.eu/vuln/ghsa-4vh2-39rq-rq8j</id>
    <title>GHSA-4vh2-39rq-rq8j — Vikunja: Unbounded image decode on avatar and project-background uploads enables decode/resize amplification</title>
    <updated>2026-10-12T04:22:58.692764+00:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml"><p><strong>Affected:</strong> Go: code.vikunja.io/api</p>
<p>### Summary
The 50-megapixel decode guard exists only on the task-attachment preview path. Avatar and project-background uploads decode uploaded images with no pixel cap. Worse, the avatar resize fixes the output height at 1024 and derives the width from the aspect ratio, so a tiny extreme-aspect-ratio PNG expands to an enormous output image — an input-side pixel cap would not catch it.</p>
<p>### Details
The only `maxPixels` check (50MP) is in `TaskAttachment.GetPreview` (`pkg/models/task_attachment.go` ~lines 332-338). No such check guards:
- avatar upload: `pkg/modules/avatar/upload/upload.go` (~lines 82, 137, 141)
- project background: `pkg/modules/background/handler/background.go` (~lines 174, 269, 289)</p>
<p>`imaging.Resize(img, 0, 1024, imaging.Lanczos)` (upload.go ~line 141) fixes height=1024 and derives width from the aspect ratio: a 20000x10 input yields a ~2,048,000 x 1024 output (~2.1 billion pixels), so a few-hundred-byte file drives huge CPU and memory.</p>
<p>### PoC (verified at runtime against v2.5.0)
```
PUT /api/v1/user/settings/avatar/upload   avatar=8000x8000 PNG (64MP, 192KB) -&gt; 200 (accepted; exceeds the 50MP attachment cap)
PUT /api/v1/user/settings/avatar/upload   avatar=20000x10 PNG (681 bytes)    -&gt; 200 after ~19.6s of server processing
```
Contrast (guard present): uploading the 64MP PNG as a task attachment and requesting its preview returns in ~1ms without decoding — `GetPreview` rejects it via `maxPixels` and falls back to the raw file.</p>
<p>### Impact
A small craf…</p></div>
    </content>
    <link href="https://db.gcve.eu/vuln/ghsa-4vh2-39rq-rq8j"/>
  </entry>
</feed>
