<?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>Wed, 07 Oct 2026 22:37:59 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-363535</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-363535</link>
      <description>EUVD-2026-363535</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-363535</guid>
    </item>
    <item>
      <title>fkie_cve-2026-50554</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-50554</link>
      <description>&lt;p&gt;Note Mark is an open-source note-taking application. Prior to version 0.19.5, GET /api/books/{bookID}/notes is an unauthenticated endpoint that accepts a &amp;#34;deleted&amp;#34; query parameter. When the request is ?deleted=true, the service runs the query with Unscoped() (bypassing GORM&amp;#39;s soft-delete scope) but keeps the read-authorization clause as &amp;#34;owner_id = ? OR is_public = ?&amp;#34;. As a result, any unauthenticated caller can enumerate the metadata of soft-deleted (&amp;#34;trashed&amp;#34;) notes belonging to any public book — notes the owner explicitly deleted and expected to be removed from public view. This issue has been patched in version 0.19.5.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Note Mark is an open-source note-taking application. Prior to version 0.19.5, GET /api/books/{bookID}/notes is an unauthenticated endpoint that accepts a &amp;#34;deleted&amp;#34; query parameter. When the request is ?deleted=true, the service runs the query with Unscoped() (bypassing GORM&amp;#39;s soft-delete scope) but keeps the read-authorization clause as &amp;#34;owner_id = ? OR is_public = ?&amp;#34;. As a result, any unauthenticated caller can enumerate the metadata of soft-deleted (&amp;#34;trashed&amp;#34;) notes belonging to any public book — notes the owner explicitly deleted and expected to be removed from public view. This issue has been patched in version 0.19.5.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-50554</guid>
    </item>
    <item>
      <title>GHSA-588f-fvcv-xhvf — Note Mark: Unauthenticated disclosure of soft-deleted note metadata via deleted=true on public books</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-588f-fvcv-xhvf</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: github.com/enchant97/note-mark/backend&lt;/p&gt;
&lt;p&gt;Summary&lt;/p&gt;
&lt;p&gt;GET /api/books/{bookID}/notes is an unauthenticated endpoint that accepts a &amp;#34;deleted&amp;#34; query parameter. When the request is ?deleted=true, the
  service runs the query with Unscoped() (bypassing GORM&amp;#39;s soft-delete scope) but keeps the read-authorization clause as &amp;#34;owner_id = ? OR is_public
  = ?&amp;#34;. As a result, any unauthenticated caller can enumerate the metadata of soft-deleted (&amp;#34;trashed&amp;#34;) notes belonging to any public book — notes
  the owner explicitly deleted and expected to be removed from public view.&lt;/p&gt;
&lt;p&gt;Affected component (code-verified)&lt;/p&gt;
&lt;p&gt;backend/services/notes.go — GetNotesByBookID (lines 72-89):&lt;/p&gt;
&lt;p&gt;func (s NotesService) GetNotesByBookID(currentUserID *uuid.UUID, bookID uuid.UUID, deleted bool) ([]db.Note, error) {
        tx := db.DB
        if deleted {
                tx = tx.Unscoped() // &amp;lt;-- bypasses soft-delete scope
        }
        tx = tx.
                Preload(&amp;#34;Book&amp;#34;).
                Joins(&amp;#34;JOIN books ON books.id = notes.book_id&amp;#34;).
                Where(
                        db.DB.Where(&amp;#34;books.id = ?&amp;#34;, bookID),
                        db.DB.Where(&amp;#34;owner_id = ? OR is_public = ?&amp;#34;, currentUserID, true), // &amp;lt;-- is_public still honored for trash
                )
        if deleted {
                tx = tx.Where(&amp;#34;notes.deleted_at IS NOT NULL&amp;#34;)
        }
        var notes []db.Note
        return notes, dbErrorToServiceError(tx.Find(&amp;amp;notes).Error)
  }&lt;/p&gt;
&lt;p&gt;Route registration confirms the endpoint has no AuthRequiredMiddleware (backend/handlers/n…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: github.com/enchant97/note-mark/backend&lt;/p&gt;
&lt;p&gt;Summary&lt;/p&gt;
&lt;p&gt;GET /api/books/{bookID}/notes is an unauthenticated endpoint that accepts a &amp;#34;deleted&amp;#34; query parameter. When the request is ?deleted=true, the
  service runs the query with Unscoped() (bypassing GORM&amp;#39;s soft-delete scope) but keeps the read-authorization clause as &amp;#34;owner_id = ? OR is_public
  = ?&amp;#34;. As a result, any unauthenticated caller can enumerate the metadata of soft-deleted (&amp;#34;trashed&amp;#34;) notes belonging to any public book — notes
  the owner explicitly deleted and expected to be removed from public view.&lt;/p&gt;
&lt;p&gt;Affected component (code-verified)&lt;/p&gt;
&lt;p&gt;backend/services/notes.go — GetNotesByBookID (lines 72-89):&lt;/p&gt;
&lt;p&gt;func (s NotesService) GetNotesByBookID(currentUserID *uuid.UUID, bookID uuid.UUID, deleted bool) ([]db.Note, error) {
        tx := db.DB
        if deleted {
                tx = tx.Unscoped() // &amp;lt;-- bypasses soft-delete scope
        }
        tx = tx.
                Preload(&amp;#34;Book&amp;#34;).
                Joins(&amp;#34;JOIN books ON books.id = notes.book_id&amp;#34;).
                Where(
                        db.DB.Where(&amp;#34;books.id = ?&amp;#34;, bookID),
                        db.DB.Where(&amp;#34;owner_id = ? OR is_public = ?&amp;#34;, currentUserID, true), // &amp;lt;-- is_public still honored for trash
                )
        if deleted {
                tx = tx.Where(&amp;#34;notes.deleted_at IS NOT NULL&amp;#34;)
        }
        var notes []db.Note
        return notes, dbErrorToServiceError(tx.Find(&amp;amp;notes).Error)
  }&lt;/p&gt;
&lt;p&gt;Route registration confirms the endpoint has no AuthRequiredMiddleware (backend/handlers/n…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-588f-fvcv-xhvf</guid>
    </item>
  </channel>
</rss>
