Security issue thread - PHP and eMudhra cert compromise
-
@girish will/can there a patch for Cloudron <10 users? I have a LAMP which requires MYSQL 8.0, that's why I haven't upgraded to 9.2.0 yet, to avoid compatibility issues with MYSQL 8.4

Edit: Might opt for a custom app, that's not a healthy way to maintain that LAMP app

Unrelated: Great response time and effort for the fixes, much appreciated!

-
I powered off my netcup Cloudron servers a few hours ago and I´m now browsing through the forum, gathering info.
Would this be a sensible restart procedure, once cloudron and package updates are available?- Before booting, restrict inbound access at the provider firewall to my IP only (SSH/HTTPS, covering IPv4 and IPv6), initially blocking other outbound traffic except administrative replies - if possible
- Boot normally and stop all apps through the dashboard.
- Allow the outbound connectivity needed for updates (no idea how..), verify/update Ubuntu’s ca-certificates, and install Cloudron 10.1.6 when available as laid out in @girish´s first post
- Update and test app packages individually once available, keeping unpatched apps stopped before restoring public access.
Would this make preventing Docker from starting during boot unnecessary? Also, is restricting inbound access sufficient for temporary operation, or should apps awaiting CA/runtime fixes remain stopped because of their outbound TLS connections?
Thank you guys being as fast and commited as you are

-
How to receive the PHP fix ? I don't see any updates?
Do I need to stop my PHP apps ? -
How to receive the PHP fix ? I don't see any updates?
Do I need to stop my PHP apps ?@sebastienserre Individual PHP apps will need to be updated. I just noticed that WordPress has been updated but others aren't yet. It sounds like the automated systems are still testing and building updates and they'll be ready soon.
-
How to receive the PHP fix ? I don't see any updates?
Do I need to stop my PHP apps ?@sebastienserre yes, it's best to stop the PHP-based apps. You can see which apps are affected a few posts up. App updates are being rolled out. For instance, Wordpress and Freescout fixes are ready. As for the server, go to the initial post, log in to your server(s) via SSH, and run the commands to make sure the server is up to date. That's all you need to do right now.
-
-
@jdaviescoates as fas as i know:
2fauth
ampache
bookstack
castopod
dokuwiki
dolibarr
easyappointments
espocrm
firefly-iii
freescout
freshrss
glpi
grav
humhub
invoiceninja
jirafeau
kanboard
kimai
koel
leantime
limesurvey
lychee
matomo
mautic
mediawiki
monica
moodle
nextcloud
omeka-s
opodsync
osticket
piwigo
pixelfed
privatebin
roundcube
rss-bridge
shaarli
snappymail
snipeit
tachyon
tinytinyrss
wallabag
wallos
wordpress-developer
wordpress-managed
xbackbone
yourls -
@sebastienserre yes, it's best to stop the PHP-based apps. You can see which apps are affected a few posts up. App updates are being rolled out. For instance, Wordpress and Freescout fixes are ready. As for the server, go to the initial post, log in to your server(s) via SSH, and run the commands to make sure the server is up to date. That's all you need to do right now.
@humpty I followed steps on the server, it's up-to-date.
I run Cloudron 10.1.5, is a 10.1.6 will be released orno need it's per apps based ? -
@humpty I followed steps on the server, it's up-to-date.
I run Cloudron 10.1.5, is a 10.1.6 will be released orno need it's per apps based ?@sebastienserre 10.1.6 is needed and on the way. Stay tuned.
-
The internal priority is to get the PHP apps updated first. The PHP issue is far more severe than the certificate issue (which requires the DNS or something else to be compromised to work). In that sense, 10.1.6 will happen but after most of the PHP apps are updated.
-
Is putting the concerned apps into recovery mode until the updates are there enough to "secure" them?
-
Is putting the concerned apps into recovery mode until the updates are there enough to "secure" them?
@OneTools-Project I don't know. I've stopped all of mine. But you can't update stopped apps, so you have to restarted the again to update them. I'm taking advantage of the Cloudron CLI for the first time to make this process quicker and easier. And Claude just gave me this to restart and then force start all my WordPress apps that were all stuck on a wrong 4.0.0 version number and so weren't able to update:
for a in $(cloudron list | awk '$5=="stopped" && $3=="org.wordpress.unmanaged.cloudronapp@4.0.0" {print $1}'); do cloudron start --app "$a" && cloudron update --app "$a" --appstore-id org.wordpress.unmanaged.cloudronapp@3.17.0 --force; done -
-
@Grienauer Packages are being updated one by one. Many are already patched.
-
-
Thank you @girish @nebulon @james and other Cloudron staff I don't know about. I checked in earlier and saw you were in the process of reacting to the news. And I wasn't stressed, I knew it'd be fixed.
I dropped Internet traffic to my homeserver Cloudron and decided to wait patiently. My small company users went for
.
And now I'm seeing updates being available for the apps I run. Click...click...one by one.We don't see all the frantic work you've all been doing, but your fast response and updating is a credit to you all. You provide a great service.
When this one is "finished", I hope you get a long beer and a longer sleep.

If only all companies responded as fast as you.
-
There are two major security issues that hit today morning.
- eMudhra Certificate compromise - https://emudhra.we-have-a-problem.com
- PHP issue - https://cert.europa.eu/publications/security-advisories/2026-018/ . The recommendation here is to shut down your PHP sites entirely. FWIW, we have shutdown our own matomo, freescout, mautic, humhub .
We are also updating https://social.cloudron.io/@cloudron and https://x.com/CloudronIO as we get more information.
eMudhra Certificate compromise
Ubuntu has released the necessary CA store update - https://ubuntu.com/security/notices/USN-8944-1 .
To fix this, we need:
- Host package update
- Cloudron update
- Package updates. There are over 200 packages to be updated. This will happen over the coming days.
Host package update
Cloudron already enables automatic security updates on the host. But you can and should check this manually.
First run:
# dpkg-query -W -f 'installed: ${Version}\n' ca-certificates installed: 20260816ubuntu0.26.04.1This should say
20260816ubuntu0.26.04.1atleast. The first part is the date, and it must be later than that. The last part of the string will differ based on your ubuntu version (for example,20260816ubuntu0.22.04.1is valid).You can check when the above package arrived via automatic security update:
# grep -A2 'ca-certificates' /var/log/apt/history.log | tail -n 2 Upgrade: ca-certificates:amd64 (20260601~26.04.1, 20260816ubuntu0.26.04.1) End-Date: 2026-10-21 06:59:55If the ca-certificates was not updated, update ca-certificates package manually:
# apt-get update # apt-get install -y ca-certificatesNow to be 100% sure, check that the cert is not in trust bundle:
# openssl crl2pkcs7 -nocrl -certfile /etc/ssl/certs/ca-certificates.crt | openssl pkcs7 -print_certs -noout | grep -F "emSign ECC Root CA - G3" && echo "STILL IN TRUST BUNDLE" || echo "removed from trust bundle"It should say
removed from trust bundleCloudron update
Cloudron 10.1.6 is coming soon with an update to nodejs - https://github.com/nodejs/node/releases/tag/v24.22.1 (via this change). You should update to Cloudron 10.1.6 at the earliest, when it's available. Other parts of Cloudron like nginx, docker will use the host CA bundle automatically and are safe. At this point, there is nothing you (the user) can do until we release this.
Package updates
This section is only for packagers. We have already started rolling out package updates.
Status as of 22 OCT 19:20 CEST - Around 175 packages have been updated. ~20 or so remain. We are working through them diligently. It's complicated because sometimes upstream has gone all silent.
New images:
cloudron/base:6.0.1@sha256:7b1e729960c3ca312d26e886917ba89483241bba0219ff292858e10d9d5768ee
cloudron/node-base:24-20261021@sha256:7435d8aca138ce01cfca4cd7ec05683223b8f5d7198c9abdaaefa1b6ba14b4c6(Per https://nodejs.org/en/blog/vulnerability/october-2026-security-releases , Node.js v22.23.4, Node.js v24.22.1
Node.js v26.12.1 are updated)I am investigating python. Per https://discuss.python.org/t/information-for-python-users-regarding-emudhra-emsign-ca-certificate-security-incident/109576, ensure pip >= 26.2.2 .
PHP issue
PHP versions are out -PHP 8.5.12 , PHP 8.4.27 , PHP 8.3.36
PHP 8.2.35 . We are building new packages . Special thanks tooerdnjfrom https://codeberg.org/oerdnj/deb.sury.org/issues/145New base images:
cloudron/php-base:8.5-20261021andcloudron/php-base:8.4-20261021Cloudron already enables automatic security updates on the host. But you can and should check this manually.
First run:
# dpkg-query -W -f 'installed: ${Version}\n' ca-certificates installed: 20260816ubuntu0.26.04.1Slightly off topic for this thread, but asking here as others might run into the same issue when working with the PHP CVE: What if the date was in June? What could cause the automatic security updates to fail?
-
Turned off my Castopod 1.15.5 (org.castopod.cloudronapp@2.13.4) for now as it is running PHP 8.3.6 - hoping a 2year jump in minor semantic versions isn't as rough as it sounds it might be...
Edit: Good news the upstream has fixed this one already https://github.com/ad-aures/castopod/releases/tag/v1.15.6 Castopod 1.15.6 - so it looks to me like a maintainer just needs to bump the php-base to match - e.g.: cloudron/php-base:8.4-20261021 and update the manifest for v1.15.6 ?
-
-
Do we have a list which Apps use PHP and should therefore be stopped, currently?
Edit, this does the trick, check in running and stopped apps if and which php is inside:
for c in $(docker ps -aq); do img=$(docker inspect -f '{{.Config.Image}}' $c) if [ "$(docker inspect -f '{{.State.Running}}' $c)" = "true" ]; then docker top $c -eo pid,comm 2>/dev/null | grep -qE '\s(php|php-fpm[0-9.]*|apache2|frankenphp)$' || continue state="running" v=$(docker exec $c php -r 'echo PHP_VERSION;' 2>/dev/null || echo "?") else state="stopped" v=$(docker run --rm --network none --entrypoint php "$img" -r 'echo PHP_VERSION;' 2>/dev/null) || continue fi case "${v%.*}" in 8.5) fix=8.5.12 ;; 8.4) fix=8.4.27 ;; 8.3) fix=8.3.36 ;; 8.2) fix=8.2.35 ;; *) fix="" ;; esac if [ -z "$fix" ]; then s="UNKNOWN/EOL" elif [ "$(printf '%s\n' "$v" "$fix" | sort -V | head -1)" = "$fix" ]; then s="PATCHED" else s="VULNERABLE"; fi printf '%-12s %-8s %-10s %s\n' "$s" "$state" "$v" "$img" doneChecks all Cloudron app containers for PHP versions affected by CVE-2026-109618 / CVE-2026-109619 (CERT-EU advisory 2026-018). Fixed in PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35.
- Running apps: only listed if a PHP web process (php-fpm, apache2/mod_php, frankenphp) is actually running; version is read via docker exec.
- Stopped apps: version is read from the image in a throwaway container without network access. The app itself is not started.
For me, it’s “just” FreshRSS and Tachyon:
VULNERABLE stopped 8.5.10 cloudron/org.freshrss.cloudronapp:202610200521170000 VULNERABLE stopped 8.5.10 cloudron/com.github.kimusan.tachyon.cloudronapp:202610170524260000
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login