<?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>Sun, 18 Oct 2026 02:56:35 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-277243</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-277243</link>
      <description>EUVD-2026-277243</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-277243</guid>
    </item>
    <item>
      <title>fkie_cve-2026-33675</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-33675</link>
      <description>&lt;p&gt;Vikunja is an open-source self-hosted task management platform. Prior to version 2.2.1, the migration helper functions `DownloadFile` and `DownloadFileWithHeaders` in `pkg/modules/migration/helpers.go` make arbitrary HTTP GET requests without any SSRF protection. When a user triggers a Todoist or Trello migration, file attachment URLs from the third-party API response are passed directly to these functions, allowing an attacker to force the Vikunja server to fetch internal network resources and return the response as a downloadable task attachment. Version 2.2.1 patches the issue.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Vikunja is an open-source self-hosted task management platform. Prior to version 2.2.1, the migration helper functions `DownloadFile` and `DownloadFileWithHeaders` in `pkg/modules/migration/helpers.go` make arbitrary HTTP GET requests without any SSRF protection. When a user triggers a Todoist or Trello migration, file attachment URLs from the third-party API response are passed directly to these functions, allowing an attacker to force the Vikunja server to fetch internal network resources and return the response as a downloadable task attachment. Version 2.2.1 patches the issue.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-33675</guid>
    </item>
    <item>
      <title>GHSA-g66v-54v9-52pr — Vikunja has SSRF via Todoist/Trello Migration File Attachment URLs that Allows Reading Internal Network Resources</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-g66v-54v9-52pr</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: code.vikunja.io/api&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;The migration helper functions `DownloadFile` and `DownloadFileWithHeaders` in `pkg/modules/migration/helpers.go` make arbitrary HTTP GET requests without any SSRF protection. When a user triggers a Todoist or Trello migration, file attachment URLs from the third-party API response are passed directly to these functions, allowing an attacker to force the Vikunja server to fetch internal network resources and return the response as a downloadable task attachment.&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;The vulnerability exists because the migration HTTP client uses a plain `http.Client{}` with no URL validation, no private IP blocklist, no redirect restrictions, and no response size limit.&lt;/p&gt;
&lt;p&gt;**Vulnerable code** in `pkg/modules/migration/helpers.go:38-59`:
```go
func DownloadFileWithHeaders(url string, headers http.Header) (buf *bytes.Buffer, err error) {
	req, err := http.NewRequestWithContext(context.Background(), http.MethodGet, url, nil)
	if err != nil {
		return nil, err
	}
	// ... headers added ...
	hc := http.Client{}
	resp, err := hc.Do(req)
	// ... no URL validation, no IP filtering ...
	buf = &amp;amp;bytes.Buffer{}
	_, err = buf.ReadFrom(resp.Body) // no size limit
	return
}
```&lt;/p&gt;
&lt;p&gt;**Call site in Todoist migration** (`pkg/modules/migration/todoist/todoist.go:433-435`):
```go
if len(n.FileAttachment.FileURL) &amp;gt; 0 {
	buf, err := migration.DownloadFile(n.FileAttachment.FileURL)
```&lt;/p&gt;
&lt;p&gt;The `FileURL` is deserialized directly from the Todoist Sync API response (`json:&amp;#34;file_url&amp;#34;` tag at line 125) with…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: code.vikunja.io/api&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;The migration helper functions `DownloadFile` and `DownloadFileWithHeaders` in `pkg/modules/migration/helpers.go` make arbitrary HTTP GET requests without any SSRF protection. When a user triggers a Todoist or Trello migration, file attachment URLs from the third-party API response are passed directly to these functions, allowing an attacker to force the Vikunja server to fetch internal network resources and return the response as a downloadable task attachment.&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;The vulnerability exists because the migration HTTP client uses a plain `http.Client{}` with no URL validation, no private IP blocklist, no redirect restrictions, and no response size limit.&lt;/p&gt;
&lt;p&gt;**Vulnerable code** in `pkg/modules/migration/helpers.go:38-59`:
```go
func DownloadFileWithHeaders(url string, headers http.Header) (buf *bytes.Buffer, err error) {
	req, err := http.NewRequestWithContext(context.Background(), http.MethodGet, url, nil)
	if err != nil {
		return nil, err
	}
	// ... headers added ...
	hc := http.Client{}
	resp, err := hc.Do(req)
	// ... no URL validation, no IP filtering ...
	buf = &amp;amp;bytes.Buffer{}
	_, err = buf.ReadFrom(resp.Body) // no size limit
	return
}
```&lt;/p&gt;
&lt;p&gt;**Call site in Todoist migration** (`pkg/modules/migration/todoist/todoist.go:433-435`):
```go
if len(n.FileAttachment.FileURL) &amp;gt; 0 {
	buf, err := migration.DownloadFile(n.FileAttachment.FileURL)
```&lt;/p&gt;
&lt;p&gt;The `FileURL` is deserialized directly from the Todoist Sync API response (`json:&amp;#34;file_url&amp;#34;` tag at line 125) with…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-g66v-54v9-52pr</guid>
    </item>
  </channel>
</rss>
