I have searched the forum for similar discussions
on
I understand this category is for discussions, not support requests, and not for app requests.
on
This form is written in English but feel free to write in French if you’re more comfortable!
on
Discuss
TrusTitel: Nextcloud-34-Upgrade wird angeboten, obwohl installierte Drittanbieter-App es sicher blockiert – woher kommt Certificate24? t and security question: Why can a third-party Nextcloud app with deep file access be installed without me being aware of it?
Hello,
first of all: my English is not very good. I originally wrote this in German and had it translated into English, so please excuse any unusual wording.
I have searched the forum for similar discussions. I am aware that this category is intended for general discussion and not for a normal support request or an app request.
What started as a failed Nextcloud upgrade has turned into a much more fundamental security and trust question for me.
My system currently runs:
YunoHost 12.1.41.2
Nextcloud 33.0.4~ynh1
YunoHost offers an upgrade to Nextcloud 34.0.4~ynh1
PHP 8.4 is configured for Nextcloud
Every attempt to upgrade Nextcloud is aborted by YunoHost. The log clearly says:
The following apps are not (yet?) compatible with Nextcloud 34 … certificate24
I then investigated this application.
The installed app is:
Certificate24 0.4.0
Its own info.xml contains:
So the reason for the failed upgrade is clear.
What concerns me much more is this:
I do not remember installing Certificate24 at all.
I normally rely on YunoHost and deliberately try to avoid installing random third-party software. I therefore want to understand exactly how this app ended up inside my Nextcloud installation, when it was installed, and through which administrative action.
I then looked at what this application is technically able to do.
Certificate24 is not just a small visual plugin. Its source code uses Nextcloud interfaces such as IRootFolder, IUserManager and IDBConnection. It can access user folders, work with file IDs and run background jobs. The published source code also contains code that reads file contents and sends files via HTTP requests to an external Certificate24 API server as part of its signing and verification functionality. The default API server in the code is https://api.certificate24.com/.
I want to be very clear here:
I am not claiming that Certificate24 is malicious software.
What shocks me is the level of trust that such an application receives once it is installed inside Nextcloud.
A server-side Nextcloud app can potentially have access to extremely sensitive data. That makes the question of origin, installation, auditing and trust very important.
This is where I become very strict.
I do not want “strangers in my bed”, so to speak.
I chose YunoHost because I know YunoHost, I trust the project, and I understand who is responsible for the software stack I am using. With third-party applications it is different. I can look somebody in the face, but I cannot look inside their head — and the same applies to software developers.
With software that has access to personal files, private cloud data, documents or potentially sensitive information, the fun stops for me.
The general security question goes far beyond Certificate24 itself.
Imagine a hypothetical case:
A harmless-looking open-source application is published and becomes trusted over time. Later, the developer account, build infrastructure or update mechanism is compromised — or a malicious maintainer introduces hostile code.
If such an application already has access to user files, database interfaces, background jobs and outbound network connections, the possible consequences could be serious.
This would not only damage an individual administrator or project. A serious supply-chain incident could also damage the reputation of Nextcloud and YunoHost.
Again: I am not saying that this happened here.
I am saying that this is a trust model that deserves very careful discussion.
I therefore have several questions:
How can a YunoHost administrator reliably determine when and how a third-party Nextcloud app was installed or enabled?
Does the YunoHost Nextcloud package ever install or enable additional Nextcloud apps automatically during installation or upgrades?
Is there an audit trail showing which Nextcloud administrator or process installed an app?
Would it make sense for YunoHost to clearly distinguish between:
components maintained or packaged by YunoHost,
official Nextcloud components,
and third-party Nextcloud apps?
Could YunoHost warn administrators more prominently when third-party apps have access to files, external APIs, background jobs or other sensitive interfaces?
Why is the Nextcloud 34 upgrade still offered to me when the YunoHost upgrade script already knows that an enabled app explicitly supports only up to Nextcloud 33?
In my case the upgrade process itself behaves safely: YunoHost detects the incompatibility, aborts the upgrade and restores the previous Nextcloud installation.
That part is good.
But from a user perspective, it is confusing that the same impossible upgrade continues to be offered again.
Most importantly, I would like to understand where certificate24 came from on my system.
If I installed it myself years ago and simply forgot about it, then that is my responsibility.
But if it was introduced automatically by an installation, upgrade, dependency or some other mechanism, then I think administrators should be made very clearly aware of that.
I am raising this as a security and trust discussion, not as an accusation against Certificate24, Struktur AG, Nextcloud or YunoHost.
But I am genuinely shocked that I only discovered the existence and technical reach of this third-party app because a major Nextcloud upgrade failed.
For software handling private cloud data, I believe transparency about such components should be much stronger.
Update / additional finding
I have now found a second third-party app on the same Nextcloud installation that I also do not remember installing: gdatavaas / G DATA Antivirus.
After removing Certificate24, I tried the Nextcloud 34 upgrade again.
This time the upgrade proceeded further, but then failed at:
occ app:update --all
with:
Error: App "G DATA Antivirus" cannot be installed because the following dependencies are not fulfilled: Server version 33 or lower is required.
What makes this particularly interesting is that gdatavaas was already disabled:
gdatavaas: 33.1.0 (installed 33.1.0)
under the Disabled: section of occ app:list.
Nevertheless, the YunoHost upgrade process tried to update it as part of app:update --all, and the entire Nextcloud 34 upgrade was rolled back.
I also do not remember installing G DATA Antivirus myself.
According to the application’s own documentation, it integrates G DATA Verdict-as-a-Service into Nextcloud and can scan user files automatically or manually, including background scanning. This again raises the same question for me:
How can I reliably determine when, by whom and through which mechanism these third-party apps were installed?
It also raises a second technical issue:
Should a disabled third-party app that is incompatible with the target Nextcloud version be able to make the entire YunoHost major upgrade fail?
So far I have found two unrelated third-party apps on the same installation:
- Certificate24
- G DATA Antivirus (
gdatavaas)
Both support only Nextcloud 33 and both interfered with the upgrade to Nextcloud 34.
I am not claiming malicious behaviour by either vendor. I am trying to understand the installation history and the trust model, because I do not remember deliberately installing either application.
I also found the disabled testing / QA testing app in /var/www/nextcloud/apps/.
The app itself states that it is only for testing and dangerous to enable on a live instance.
More interestingly, Nextcloud’s own stable33 .nextcloudignore explicitly excludes /apps/testing from production builds.
Therefore I would also like to understand why this directory exists in my production YunoHost Nextcloud installation.
I did a first source-level inspection of the testing application as well.
So far I found no evidence of outbound data transmission. A search for HTTP clients, curl/Guzzle and similar network functionality did not show such code.
However, this is clearly not an ordinary production application either.
The QA application has access to Nextcloud’s IRootFolder and contains lock-provisioning functionality for user file paths. It also provides OCS endpoints capable of setting and deleting application configuration values.
This gives some technical context to its own warning:
This app is only for testing! It is dangerous to have it enabled in a live instance
The app is disabled on my installation, and I currently have no evidence that it was ever enabled or that it transmitted any data.
My question therefore remains one of provenance and packaging, not an accusation of malware:
Why is /apps/testing present in this production installation when Nextcloud’s own stable33 build configuration explicitly excludes /apps/testing from production builds?
Is this expected in the YunoHost Nextcloud package, could it have been introduced during an earlier upgrade/restore, or should this directory normally never be present?