<?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://vulnerability.circl.lu</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>Thu, 01 Oct 2026 11:42:58 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-31801</title>
      <link>https://vulnerability.circl.lu/vuln/fkie_cve-2026-31801</link>
      <description>&lt;p&gt;zot is ancontainer image/artifact registry based on the Open Container Initiative Distribution Specification. From 1.3.0 to 2.1.14, zot’s dist-spec authorization middleware infers the required action for PUT /v2/{name}/manifests/{reference} as create by default, and only switches to update when the tag already exists and reference != &amp;#34;latest&amp;#34;. As a result, when latest already exists, a user who is allowed to create (but not allowed to update) can still pass the authorization check for an overwrite attempt of latest. This vulnerability is fixed in 2.1.15.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;zot is ancontainer image/artifact registry based on the Open Container Initiative Distribution Specification. From 1.3.0 to 2.1.14, zot’s dist-spec authorization middleware infers the required action for PUT /v2/{name}/manifests/{reference} as create by default, and only switches to update when the tag already exists and reference != &amp;#34;latest&amp;#34;. As a result, when latest already exists, a user who is allowed to create (but not allowed to update) can still pass the authorization check for an overwrite attempt of latest. This vulnerability is fixed in 2.1.15.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/fkie_cve-2026-31801</guid>
    </item>
    <item>
      <title>GHSA-85jx-fm8m-x8c6 — zot’s create-only policy allows overwrite attempts of existing latest tag (update permission not required)</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-85jx-fm8m-x8c6</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: zotregistry.dev/zot/v2, Go: zotregistry.dev/zot&lt;/p&gt;
&lt;p&gt;zot’s dist-spec authorization middleware infers the required action for `PUT /v2/{name}/manifests/{reference}` as `create` by default, and only switches to `update` when the tag already exists and `reference != &amp;#34;latest&amp;#34;`.&lt;/p&gt;
&lt;p&gt;as a result, when `latest` already exists, a user who is allowed to `create` (but not allowed to `update`) can still pass the authorization check for an overwrite attempt of `latest`.&lt;/p&gt;
&lt;p&gt;## affected component&lt;/p&gt;
&lt;p&gt;- file: `pkg/api/authz.go` (`DistSpecAuthzHandler`)
- condition: `slices.Contains(tags, reference) &amp;amp;&amp;amp; reference != &amp;#34;latest&amp;#34;` (line 352 at the pinned commit)&lt;/p&gt;
&lt;p&gt;## severity&lt;/p&gt;
&lt;p&gt;HIGH
category: CWE-863 (incorrect authorization)&lt;/p&gt;
&lt;p&gt;note: impact depends on how a deployment uses `latest` (for example, if `latest` is treated as a protected or “push-once” tag), and on how access control is provisioned (users with `create` but without `update`). the attached poc demonstrates a real overwrite of `latest` (tag digest changes) under a create-only policy.&lt;/p&gt;
&lt;p&gt;## steps to reproduce&lt;/p&gt;
&lt;p&gt;1. configure access control so user `attacker` has `create` but not `update` on a repository.
2. ensure the repository has an existing tag named `latest`.
3. attempt to push a new manifest to `/v2/acme/app/manifests/latest` (example repository name).
4. observe that the authorization check is evaluated as `create` (not `update`) for `latest`, so the request passes authorization even though the tag already exists.&lt;/p&gt;
&lt;p&gt;the attached poc demonstrates this deterministically with `canonical.log` and `contr…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; Go: zotregistry.dev/zot/v2, Go: zotregistry.dev/zot&lt;/p&gt;
&lt;p&gt;zot’s dist-spec authorization middleware infers the required action for `PUT /v2/{name}/manifests/{reference}` as `create` by default, and only switches to `update` when the tag already exists and `reference != &amp;#34;latest&amp;#34;`.&lt;/p&gt;
&lt;p&gt;as a result, when `latest` already exists, a user who is allowed to `create` (but not allowed to `update`) can still pass the authorization check for an overwrite attempt of `latest`.&lt;/p&gt;
&lt;p&gt;## affected component&lt;/p&gt;
&lt;p&gt;- file: `pkg/api/authz.go` (`DistSpecAuthzHandler`)
- condition: `slices.Contains(tags, reference) &amp;amp;&amp;amp; reference != &amp;#34;latest&amp;#34;` (line 352 at the pinned commit)&lt;/p&gt;
&lt;p&gt;## severity&lt;/p&gt;
&lt;p&gt;HIGH
category: CWE-863 (incorrect authorization)&lt;/p&gt;
&lt;p&gt;note: impact depends on how a deployment uses `latest` (for example, if `latest` is treated as a protected or “push-once” tag), and on how access control is provisioned (users with `create` but without `update`). the attached poc demonstrates a real overwrite of `latest` (tag digest changes) under a create-only policy.&lt;/p&gt;
&lt;p&gt;## steps to reproduce&lt;/p&gt;
&lt;p&gt;1. configure access control so user `attacker` has `create` but not `update` on a repository.
2. ensure the repository has an existing tag named `latest`.
3. attempt to push a new manifest to `/v2/acme/app/manifests/latest` (example repository name).
4. observe that the authorization check is evaluated as `create` (not `update`) for `latest`, so the request passes authorization even though the tag already exists.&lt;/p&gt;
&lt;p&gt;the attached poc demonstrates this deterministically with `canonical.log` and `contr…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-85jx-fm8m-x8c6</guid>
    </item>
  </channel>
</rss>
