<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Should CloudronVersions.json have a digital signature?]]></title><description><![CDATA[<p dir="auto">I recently experimented with the <code>CloudronVersions.json</code> file and the community app store. It's quite convenient: add the URL to the JSON file at installation, and the app gets the same automatic backups and updates as official apps.</p>
<p dir="auto">To be clear — these are third-party apps, <strong>use at your own risk</strong>, and anyone installing one should review it beforehand (I know most won't in practice).</p>
<p dir="auto">That said, there's a <strong>security gap worth discussing</strong>:</p>
<p dir="auto">Package repositories typically <strong>sign their manifests</strong> to prevent tampering — if someone modifies a package after the maintainer publishes it, the signature breaks and clients refuse to install it.</p>
<p dir="auto"><code>CloudronVersions.json</code> has <strong>no such signature</strong>. This means:</p>
<ol>
<li>A maintainer uploads a legitimate manifest.</li>
<li>A third party (or a compromised host) <strong>modifies the JSON file</strong> after the fact.</li>
<li>Users downloading the app get a <strong>potentially compromised version</strong> — with no warning.</li>
</ol>
<p dir="auto">Automatic updates make this worse: once you trust a URL, every future update is pulled from that same unverified source.</p>
<p dir="auto">I already raised this with the Cloudron team directly. Their position is that since this is a third-party feature, adding signatures is out of scope for them. I understand the reasoning, but I wanted to bring it to the community to get a sense of whether others share this concern.</p>
]]></description><link>https://forum.cloudron.io/topic/15763/should-cloudronversions.json-have-a-digital-signature</link><generator>RSS for Node</generator><lastBuildDate>Mon, 24 Aug 2026 03:34:49 GMT</lastBuildDate><atom:link href="https://forum.cloudron.io/topic/15763.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 31 Jul 2026 16:08:50 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Should CloudronVersions.json have a digital signature? on Wed, 05 Aug 2026 14:02:05 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/fbartels" aria-label="Profile: fbartels">@<bdi>fbartels</bdi></a> I think the idea of moving more towards security is good. There is still much more to discover and implement there. <img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=63dea4eef9f" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
]]></description><link>https://forum.cloudron.io/post/127758</link><guid isPermaLink="true">https://forum.cloudron.io/post/127758</guid><dc:creator><![CDATA[luckow]]></dc:creator><pubDate>Wed, 05 Aug 2026 14:02:05 GMT</pubDate></item><item><title><![CDATA[Reply to Should CloudronVersions.json have a digital signature? on Sat, 01 Aug 2026 10:55:45 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/girish" aria-label="Profile: girish">@<bdi>girish</bdi></a> <a href="/post/127579">said</a>:</p>
<p dir="auto">The main issue is/was signing docker images</p>
</blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/girish" aria-label="Profile: girish">@<bdi>girish</bdi></a></p>
<p dir="auto">True, tags are mutable, so pulling by tag alone leaves you vulnerable if a registry is compromised.</p>
<p dir="auto">Container signing verifies <strong>provenance</strong> (who built it), while referencing an image by <strong>digest</strong> (<code>image@sha256:...</code>) guarantees <strong>integrity</strong> (that it hasn't been altered). If the Cloudron app manifest explicitly pins container digests, you effectively get both: Cloudron verifies the authenticity of the app manifest, and the digest ensures the container pulled from the registry hasn't been tampered with.</p>
<p dir="auto">As a quick note on mirroring: <code>docker tag</code> &amp; <code>push</code> actually preserves digests in most OCI registries, but using tools like <code>crane copy</code> or <code>skopeo</code> is definitely the right approach since they transfer images directly between registries without local daemon overhead or pulling down heavy layers.</p>
<p dir="auto">Regarding experience with container signing: the modern standard is <strong>Cosign</strong> (part of Sigstore). Because Cosign stores signatures as standard OCI artifacts inside the registry, it works out-of-the-box with almost every modern registry today (Docker Hub, GHCR, Harbor, AWS ECR, etc.) without requiring special server-side setup.</p>
]]></description><link>https://forum.cloudron.io/post/127582</link><guid isPermaLink="true">https://forum.cloudron.io/post/127582</guid><dc:creator><![CDATA[fbartels]]></dc:creator><pubDate>Sat, 01 Aug 2026 10:55:45 GMT</pubDate></item><item><title><![CDATA[Reply to Should CloudronVersions.json have a digital signature? on Sat, 01 Aug 2026 10:00:54 GMT]]></title><description><![CDATA[<p dir="auto">Thanks for bringing this up here <a class="plugin-mentions-user plugin-mentions-a" href="/user/fbartels" aria-label="Profile: fbartels">@<bdi>fbartels</bdi></a> (and also for the other security issues you reported in private!).</p>
<p dir="auto">Just some technical notes here, since I researched this after <a class="plugin-mentions-user plugin-mentions-a" href="/user/fbartels" aria-label="Profile: fbartels">@<bdi>fbartels</bdi></a> sent us the initial report.</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/robi" aria-label="Profile: robi">@<bdi>robi</bdi></a> <a href="/post/127570">said</a>:</p>
<p dir="auto">Do official packages have checks?</p>
</blockquote>
<p dir="auto">We don't have signing for App store packages, instead we rely on the fact that only we (Cloudron team) have access to the app store and the docker hub. For Cloudron platform releases, we use PGP and the server will only accept releases that was signed with the <a href="https://git.cloudron.io/platform/box/-/blob/master/src/releases.gpg?ref_type=heads" target="_blank" rel="noopener noreferrer nofollow ugc">release key</a>.</p>
<p dir="auto">The main issue is/was signing docker images. Even if the manifest (or the versions) file were signed, the registry that holds the images can be compromised. Docker registry being external is a bigger security concern (add to it that tags are mutable in docker images usually). Unfortunately, docker has deprecated <a href="https://docs.docker.com/engine/security/trust/" target="_blank" rel="noopener noreferrer nofollow ugc">DCT</a> but there is an alternative called <a href="https://docs.docker.com/dhi/explore/security-concepts/signatures/" target="_blank" rel="noopener noreferrer nofollow ugc">code sign</a>. Does anyone have experience with this? <a href="https://octopus.com/blog/securing-containers-oidc" target="_blank" rel="noopener noreferrer nofollow ugc">https://octopus.com/blog/securing-containers-oidc</a> has a tutorial. I have no idea in which registries that tool works.</p>
]]></description><link>https://forum.cloudron.io/post/127579</link><guid isPermaLink="true">https://forum.cloudron.io/post/127579</guid><dc:creator><![CDATA[girish]]></dc:creator><pubDate>Sat, 01 Aug 2026 10:00:54 GMT</pubDate></item><item><title><![CDATA[Reply to Should CloudronVersions.json have a digital signature? on Sat, 01 Aug 2026 08:26:23 GMT]]></title><description><![CDATA[<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/timconsidine" aria-label="Profile: timconsidine">@<bdi>timconsidine</bdi></a> <a href="/post/127569">said</a>:</p>
<p dir="auto">Reputation of packager and security of a particular CloudronVersions.json are different issues.</p>
</blockquote>
<p dir="auto">Yes, exactly this. Since everything is isolated on cloudron the damage is mostly in the compromised app itself. But it is a valid scenario.</p>
<blockquote>
<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/robi" aria-label="Profile: robi">@<bdi>robi</bdi></a> <a href="/post/127570">said</a>:</p>
<p dir="auto">Does it need solving? Or is the stepping stone from CA to Official App enough?</p>
</blockquote>
<p dir="auto">Not all custom apps may want to be listed in the official store. I do see the possibility of private app stores with pay walled apps. <a class="plugin-mentions-user plugin-mentions-a" href="/user/luckow" aria-label="Profile: luckow">@<bdi>luckow</bdi></a> posted such a store a while ago.</p>
]]></description><link>https://forum.cloudron.io/post/127577</link><guid isPermaLink="true">https://forum.cloudron.io/post/127577</guid><dc:creator><![CDATA[fbartels]]></dc:creator><pubDate>Sat, 01 Aug 2026 08:26:23 GMT</pubDate></item><item><title><![CDATA[Reply to Should CloudronVersions.json have a digital signature? on Sat, 01 Aug 2026 03:53:37 GMT]]></title><description><![CDATA[<p dir="auto">Does it need solving? Or is the stepping stone from CA to Official App enough?</p>
<p dir="auto">Do official packages have checks? Or is an external scanner enough to check if file provenance changed from the initial versions and alert?</p>
]]></description><link>https://forum.cloudron.io/post/127570</link><guid isPermaLink="true">https://forum.cloudron.io/post/127570</guid><dc:creator><![CDATA[robi]]></dc:creator><pubDate>Sat, 01 Aug 2026 03:53:37 GMT</pubDate></item><item><title><![CDATA[Reply to Should CloudronVersions.json have a digital signature? on Fri, 31 Jul 2026 23:09:12 GMT]]></title><description><![CDATA[<p dir="auto">Reputation of packager and security of a particular CloudronVersions.json are different issues.<br />
Especially when the packager has good reputation and track-record like <a class="plugin-mentions-user plugin-mentions-a" href="/user/fbartels" aria-label="Profile: fbartels">@<bdi>fbartels</bdi></a>.  Maybe even makes his packages more of a target.<br />
If one of his CloudronVersions.json was somehow tampered with, regular Cloudron users could be tricked into installing  some deficient or malware app.</p>
<p dir="auto">So, yes, there is a gap. Small maybe, but not something to take risks over in this day &amp; age.</p>
<p dir="auto">How we solve this, I'm not sure.<br />
<code>shasum</code> in README ?</p>
]]></description><link>https://forum.cloudron.io/post/127569</link><guid isPermaLink="true">https://forum.cloudron.io/post/127569</guid><dc:creator><![CDATA[timconsidine]]></dc:creator><pubDate>Fri, 31 Jul 2026 23:09:12 GMT</pubDate></item><item><title><![CDATA[Reply to Should CloudronVersions.json have a digital signature? on Fri, 31 Jul 2026 22:56:01 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/fbartels" aria-label="Profile: fbartels">@<bdi>fbartels</bdi></a> <a class="plugin-mentions-user plugin-mentions-a" href="/user/jdaviescoates" aria-label="Profile: jdaviescoates">@<bdi>jdaviescoates</bdi></a> both good ideas <img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f44d.png?v=63dea4eef9f" class="not-responsive emoji emoji-android emoji--+1" style="height:23px;width:auto;vertical-align:middle" title=":+1:" alt="👍" /></p>
<p dir="auto">Don't think anything can be out of scope when published under the <a href="http://cloudron.io" target="_blank" rel="noopener noreferrer nofollow ugc">cloudron.io</a> business domain.</p>
]]></description><link>https://forum.cloudron.io/post/127568</link><guid isPermaLink="true">https://forum.cloudron.io/post/127568</guid><dc:creator><![CDATA[marcusquinn]]></dc:creator><pubDate>Fri, 31 Jul 2026 22:56:01 GMT</pubDate></item><item><title><![CDATA[Reply to Should CloudronVersions.json have a digital signature? on Fri, 31 Jul 2026 22:02:46 GMT]]></title><description><![CDATA[<p dir="auto"><a class="plugin-mentions-user plugin-mentions-a" href="/user/fbartels" aria-label="Profile: fbartels">@<bdi>fbartels</bdi></a> I think the more that can be done to help users do a bit of due diligence on community apps the better, hence why I'd at least like links to the packagers profile on here, see <a href="https://forum.cloudron.io/post/126905">https://forum.cloudron.io/post/126905</a></p>
<p dir="auto">I like your suggestions, and really I'd like all/most of the stats shown on profile pages on here to be pulled through to the community app store</p>
<p dir="auto"><img src="/assets/uploads/files/1785535282148-db3f385b-d1dd-443a-9219-6a392e4d11e2-image-resized.jpeg" alt="db3f385b-d1dd-443a-9219-6a392e4d11e2-image.jpeg" class=" img-fluid img-markdown" /></p>
<p dir="auto">From that I can see you've been using Cloudron for years, have packaged official Cloudron apps etc. Such things would make me much more likely to trust community app packaged by you <img src="https://forum.cloudron.io/assets/plugins/nodebb-plugin-emoji/emoji/android/1f642.png?v=63dea4eef9f" class="not-responsive emoji emoji-android emoji--slightly_smiling_face" style="height:23px;width:auto;vertical-align:middle" title=":)" alt="🙂" /></p>
]]></description><link>https://forum.cloudron.io/post/127567</link><guid isPermaLink="true">https://forum.cloudron.io/post/127567</guid><dc:creator><![CDATA[jdaviescoates]]></dc:creator><pubDate>Fri, 31 Jul 2026 22:02:46 GMT</pubDate></item></channel></rss>