<?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>Tue, 06 Oct 2026 11:20:57 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-291191</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-291191</link>
      <description>EUVD-2026-291191</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-291191</guid>
    </item>
    <item>
      <title>fkie_cve-2026-35594</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-35594</link>
      <description>&lt;p&gt;Vikunja is an open-source self-hosted task management platform. Prior to 2.3.0, Vikunja&amp;#39;s link share authentication (GetLinkShareFromClaims in pkg/models/link_sharing.go) constructs authorization objects entirely from JWT claims without any server-side database validation. When a project owner deletes a link share or downgrades its permissions, all previously issued JWTs continue to grant the original permission level for up to 72 hours (the default service.jwtttl). This vulnerability is fixed in 2.3.0.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Vikunja is an open-source self-hosted task management platform. Prior to 2.3.0, Vikunja&amp;#39;s link share authentication (GetLinkShareFromClaims in pkg/models/link_sharing.go) constructs authorization objects entirely from JWT claims without any server-side database validation. When a project owner deletes a link share or downgrades its permissions, all previously issued JWTs continue to grant the original permission level for up to 72 hours (the default service.jwtttl). This vulnerability is fixed in 2.3.0.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-35594</guid>
    </item>
    <item>
      <title>GHSA-96q5-xm3p-7m84 — Vikunja: Link Share JWT tokens remain valid for 72 hours after share deletion or permission downgrade</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-96q5-xm3p-7m84</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: code.vikunja.io/api&lt;/p&gt;
&lt;p&gt;## Title
Link Share JWT tokens remain valid for 72 hours after share deletion or permission downgrade&lt;/p&gt;
&lt;p&gt;## Description&lt;/p&gt;
&lt;p&gt;Vikunja&amp;#39;s link share authentication constructs authorization objects entirely from JWT claims without any server-side database validation. When a project owner deletes a link share or downgrades its permissions, all previously issued JWTs continue to grant the **original** permission level for up to **72 hours** (the default `service.jwtttl`).&lt;/p&gt;
&lt;p&gt;`GetLinkShareFromClaims` at `pkg/models/link_sharing.go` lines 88-119 performs **zero database queries** — it builds the `LinkSharing` struct purely from JWT claim values (`id`, `hash`, `project_id`, `permission`, `sharedByID`). This struct is passed directly to permission checks:&lt;/p&gt;
&lt;p&gt;| Function | File | Lines | DB queries |
|----------|------|-------|------------|
| `GetLinkShareFromClaims` | `link_sharing.go` | 88-119 | 0 |
| `Project.CanRead` (link share) | `project_permissions.go` | 105-108 | 0 |
| `Project.CanWrite` (link share) | `project_permissions.go` | 50-53 | 0 |
| `Project.IsAdmin` (link share) | `project_permissions.go` | 192-194 | 0 |&lt;/p&gt;
&lt;p&gt;**Contrast with user tokens:** User JWTs use a 10-minute TTL (`ServiceJWTTTLShort`) with `sid` claim and server-side sessions enabling revocation. Link share JWTs use a 72-hour TTL (`ServiceJWTTTL`) with no `sid`, no server-side session, and no refresh mechanism.&lt;/p&gt;
&lt;p&gt;**Permalink:**
- `GetLinkShareFromClaims`: `pkg/models/link_sharing.go:88-119`
- `NewLinkShareJWTAuthtoken`: `pkg…&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;## Title
Link Share JWT tokens remain valid for 72 hours after share deletion or permission downgrade&lt;/p&gt;
&lt;p&gt;## Description&lt;/p&gt;
&lt;p&gt;Vikunja&amp;#39;s link share authentication constructs authorization objects entirely from JWT claims without any server-side database validation. When a project owner deletes a link share or downgrades its permissions, all previously issued JWTs continue to grant the **original** permission level for up to **72 hours** (the default `service.jwtttl`).&lt;/p&gt;
&lt;p&gt;`GetLinkShareFromClaims` at `pkg/models/link_sharing.go` lines 88-119 performs **zero database queries** — it builds the `LinkSharing` struct purely from JWT claim values (`id`, `hash`, `project_id`, `permission`, `sharedByID`). This struct is passed directly to permission checks:&lt;/p&gt;
&lt;p&gt;| Function | File | Lines | DB queries |
|----------|------|-------|------------|
| `GetLinkShareFromClaims` | `link_sharing.go` | 88-119 | 0 |
| `Project.CanRead` (link share) | `project_permissions.go` | 105-108 | 0 |
| `Project.CanWrite` (link share) | `project_permissions.go` | 50-53 | 0 |
| `Project.IsAdmin` (link share) | `project_permissions.go` | 192-194 | 0 |&lt;/p&gt;
&lt;p&gt;**Contrast with user tokens:** User JWTs use a 10-minute TTL (`ServiceJWTTTLShort`) with `sid` claim and server-side sessions enabling revocation. Link share JWTs use a 72-hour TTL (`ServiceJWTTTL`) with no `sid`, no server-side session, and no refresh mechanism.&lt;/p&gt;
&lt;p&gt;**Permalink:**
- `GetLinkShareFromClaims`: `pkg/models/link_sharing.go:88-119`
- `NewLinkShareJWTAuthtoken`: `pkg…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-96q5-xm3p-7m84</guid>
    </item>
  </channel>
</rss>
