Security issue thread - PHP and eMudhra cert compromise
-
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. Public newsletter link - https://newsletter.cloudron.io/archive/2026-10-21-php-emudhra
PHP RCE
We have already started rolling out updates for the apps.
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.
Status as of 23 OCT 9:20 CEST - Pretty much all packages updated. Only 3-4 remain. All PHP apps are updated.
eMudhra Certificate compromise
Ubuntu has released the necessary CA store update - https://ubuntu.com/security/notices/USN-8944-1 . All Cloudron packages have been updated to include the new CA store.
Cloudron already enables automatic security updates on the server. But you can and should check this manually.
SSH into your server and 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 equal to or 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.
New base images
This section is for packagers.
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 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 -
is a package for Dolibarr will be edited soon ?
package 1.15.1 runs PHP 8.4.24
Thanks -
-
is a package for Dolibarr will be edited soon ?
package 1.15.1 runs PHP 8.4.24
Thanks -
https://thehackernews.com/2026/10/critical-gitlab-flaw-cvss-100-could.html One more thing @girish @nebulon
early xmas with all these issues hitting at the same time
️

-
@sebastienserre yup, there will be an update soon.
girish Thank you.
Waiting for it. -
-
Hi @girish on a single Wordpress Developer instance I was asked to update to org.wordpress.unmanaged.cloudronapp@3.17.0 and I updated.
But all other Wordpress Developer instances, even if I hit "check updates”, nothing happens...
-
I have:
WordPress (Developer) 7.0
Package version
org.wordpress.unmanaged.cloudronapp@4.0.0The (only) one updated shows now:
WordPress (Developer) 7.1.3
Package version
org.wordpress.unmanaged.cloudronapp@3.17.0My question is: if there is an available update, why if I hit "check for updates” nothing happens?
Thanks a lot
-
-
I have:
WordPress (Developer) 7.0
Package version
org.wordpress.unmanaged.cloudronapp@4.0.0The (only) one updated shows now:
WordPress (Developer) 7.1.3
Package version
org.wordpress.unmanaged.cloudronapp@3.17.0My question is: if there is an available update, why if I hit "check for updates” nothing happens?
Thanks a lot
WordPress (Developer) 7.0
Package version
org.wordpress.unmanaged.cloudronapp@4.0.0You're suffering from something that got me (and others) too - that 4.0.0 release was a mistake. You need to force the update the the newer version with a lower release number using the CLI:
cloudron update --app SITE_LOCATION --appstore-id org.wordpress.unmanaged.cloudronapp --force -
WordPress (Developer) 7.0
Package version
org.wordpress.unmanaged.cloudronapp@4.0.0You're suffering from something that got me (and others) too - that 4.0.0 release was a mistake. You need to force the update the the newer version with a lower release number using the CLI:
cloudron update --app SITE_LOCATION --appstore-id org.wordpress.unmanaged.cloudronapp --force@jdaviescoates Thanks a lot, how I can run this without installing Cloudron CLI? Eg. directly from App command line.
I think if this problem is on scale, devs should release a fix also to address this specific issue...
Edit:
@jdaviescoates I installed Cloudron CLI and I used this string that you posted above:
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 -
-
This post is deleted!
-
Wallabag and Castopod haven't been updated in a while.
Here is a Wallabag thread. It seems they are 1 year behind in codebase updates. (??) But there is a compatibility-frinedly fix being tested.
https://github.com/wallabag/wallabag/pull/9096Castopod released an update a few hours ago on their official code:
https://github.com/ad-aures/castopod/releases/tag/v1.15.6 -
Invoice Ninja v5.13.50 is out, but I'm not sure if it has the php fixes. In any case, please update the package!
https://github.com/invoiceninja/invoiceninja/releases/tag/v5.13.50
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