Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,8 @@ audiobooks
Audiophonics
Autobooting
autologin
automount
automounts
autostart
AutoStart
Avahi
Expand Down Expand Up @@ -104,6 +106,7 @@ Clonezilla
Cloudflare
CloudPrint
CloudShell
Codeberg
codec
codecs
compat
Expand All @@ -128,6 +131,7 @@ Cuberite
customisable
customizable
CVE
CVEs
DAC
DALL
DarkBetter
Expand Down Expand Up @@ -177,6 +181,7 @@ ebook
ebooks
EDL
EEPROM
EFI
embeddings
Emby
eMMC
Expand Down Expand Up @@ -554,6 +559,7 @@ Prowlarr
Proxmox
PSK
PSU
pubkey
PuTTY
PVM
PVR
Expand Down
Binary file added docs/assets/images/dietpi-release-v10_4.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
14 changes: 13 additions & 1 deletion docs/hardware.md
Original file line number Diff line number Diff line change
Expand Up @@ -571,11 +571,17 @@ For more details visit the [**Orange Pi**](http://www.orangepi.org/index.html) w
</thead>
<tbody>
<tr>
<td><a class="table" href=""><strong>Orange Pi 5/5B</strong></a></td>
<td><a class="table" href=""><strong>Orange Pi 5</strong></a></td>
<td>
<strong>Download</strong>: <a href="https://dietpi.com/downloads/images/DietPi_OrangePi5-ARMv8-Trixie.img.xz">DietPi image</a>
</td>
</tr>
<tr>
<td><a class="table" href=""><strong>Orange Pi 5B</strong></a></td>
<td>
<strong>Download</strong>: <a href="https://dietpi.com/downloads/images/DietPi_OrangePi5B-ARMv8-Trixie.img.xz">DietPi image</a>
</td>
</tr>
<tr>
<td><a class="table" href=""><strong>Orange Pi 5 Plus</strong></a></td>
<td>
Expand Down Expand Up @@ -636,6 +642,12 @@ For more details visit the [**Orange Pi**](http://www.orangepi.org/index.html) w
<strong>Download</strong>: <a href="https://dietpi.com/downloads/images/DietPi_OrangePi3LTS-ARMv8-Trixie.img.xz">DietPi image</a>
</td>
</tr>
<tr>
<td><a class="table" href=""><strong>Orange Pi 4 LTS</strong></a></td>
<td>
<strong>Download</strong>: <a href="https://dietpi.com/downloads/images/DietPi_OrangePi4LTS-ARMv8-Trixie.img.xz">DietPi image</a>
</td>
</tr>
</tbody>
</table>
</div>
Expand Down
1 change: 1 addition & 0 deletions docs/releases.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ description: Overview of DietPi releases with applied new software and features,

# DietPi Releases

- [v10.4 May 2026](releases/v10_4.md)
- [v10.3 April 2026](releases/v10_3.md)
- [v10.2 March 2026](releases/v10_2.md)
- [v10.1 February 2026](releases/v10_1.md)
Expand Down
41 changes: 41 additions & 0 deletions docs/releases/v10_4.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
title: DietPi v10.4
description: Release notes for DietPi v10.4 from May 2026
image: https://dietpi.com/docs/assets/images/dietpi-release-v10_4.webp
---

# Release Notes

## May 2026 (version 10.4)

### Overview

The **May 17th, 2026** release of **DietPi v10.4** comes with fixes for CVE "Copy Fail" and CVE "Dirty Frag", a new image for the **Orange Pi 5B**, simplified Linux packaging, and further enhancements and fixes.

![The image is a Linux console screenshot showing how the "Copy Fail" Linux vulnerability is used to obtain root access, and add an SSH pubkey to the root account, as www-data user. And it shows that a DietPi update, which upgrades the kernel, fixes this vulnerability.](../assets/images/dietpi-release-v10_4.webp "Fix Copy Fail and Dirty Frag CVEs with a DietPi update!"){: width="745" height="390" loading="lazy"}

### New images

- [**Orange Pi 5B**](../hardware.md#orange-pi-series) :octicons-arrow-right-16: Dedicated images for the Orange Pi 5B are provided now. Previously, the Orange Pi 5 images could be used, but it was required to change the used device tree manually to enable board-specific features like WiFi.

### Enhancements

- **Linux security** :octicons-arrow-right-16: The two recent major Linux vulnerabilities CVE-2026-31431 aka "Copy Fail", CVE-2026-43284 and CVE-2026-43500 aka "Dirty Frag", have been mitigated across all supported SBCs: Debian and Raspberry Pi Ltd pushed kernel updates containing the fix, and we did so for all kernel packages distributed with our APT repository. The DietPi update will upgrade kernel packages implicitly. Else please upgrade it yourself, or prevent the affected kernel modules from being loaded, as can be read here: <https://github.com/MichaIng/DietPi/issues/8122>
- **General** :octicons-arrow-right-16: Persistent DietPi log files have been moved from `/var/tmp/dietpi/logs` to `/var/lib/dietpi/logs`. Since Debian Trixie, content of `/var/tmp` older than 30 days is cleared, which renders this directory inappropriate for any persistent files. And to be honest: It was never meant to be used the way we did it. The DietPi update will copy files over, but it cannot remove `/var/tmp/dietpi`, since the v10.3 updater itself is logging to it while it runs. On Debian Trixie, `systemd-tmpfiles` will remove it 30 days later. On Debian Bookworm, you may remove it manually, but the size is small.
- [**NanoPi R76S**](../hardware.md#nanopi-series-friendlyelec) :octicons-arrow-right-16: The network interface names for the two Ethernet ports are now persistent on reboot. They previously could randomly swap on reboot. Many thanks to @oxoocoffee for reporting this: <https://github.com/MichaIng/DietPi/issues/7844>
- **Allwinner/Amlogic/Rockchip SBCs** :octicons-arrow-right-16: We merged the `linux-dtb-*` package into the `linux-image-*` package. You might have recognized that an `apt upgrade` held back two packages, and an `apt full-upgrade` removed the `linux-dtb-*` package while upgrading `linux-image-*`, which is hence intended. Along with some other changes in our Armbian build system fork, this makes switching between kernel branches easier and more robust, and allows to keep multiple kernel branches installed concurrently safe. The DietPi update will imply the kernel upgrade, if not done yet, unless it was explicitly marked hold by the admin.
- [**DietPi-Installer**](../hardware.md#make-your-own-distribution) :octicons-arrow-right-16: Cases of GRUB BIOS images with GPT partition table, but without dedicated BIOS boot partition, are now handled gracefully. GRUB throws warnings in those cases, and by default fails, as flashing the bootloader to the gap between GPT header and first partition is considered unreliable. But obviously, the image worked that way before, and Debian's `grub-pc` package `postinst` script explicitly ignores the warnings, calling `grub-install` with the `--force` flag. The `dietpi-installer` will now do the same, if this exact case is detected: GPT partition table, no EFI partition => GRUB BIOS needed, but no BIOS boot partition either. Many thanks to @mews-se for reporting a related case of a VPS image: <https://github.com/MichaIng/DietPi/issues/8030>
- [**DietPi-Software**](../dietpi_tools/software_installation.md#dietpi-software) | [**soju**](../software/social.md#soju) :octicons-arrow-right-16: We migrated to the new official soju repository at Codeberg, after the its GitHub repository got archived. This implies some new releases, hence we recommend to update your soju instance with a `dietpi-software reinstall 213`.
- [**DietPi-Software**](../dietpi_tools/software_installation.md#dietpi-software) | [**Unbound**](../software/dns_servers.md#unbound) :octicons-arrow-right-16: We push our own up-to-date Unbound packages via our APT server now. This means, that also users who did not install Unbound via `dietpi-software` get our default config and reduced Debian-only content. Please let us know if you face any issues.
- [**DietPi-Software**](../dietpi_tools/software_installation.md#dietpi-software) | [**Java**](../software/programming.md#java) :octicons-arrow-right-16: The version has been bumped to Java 26 for 64-bit systems. On ARMv7, Java 21 is the highest practically usable one: from Java 22 on, ARMv7 support for the HotSpot JVM is broken, hence the extremely slow Zero JVM is used. This causes e.g. Airsonic on the Odroid XU4 to require 1.5 hours to start. This limits the versions of some Java applications on ARMv7, like Minecraft to max v1.21.x. This bug is unlikely to be ever resolved, due to decreasing relevancy of 32-bit ARM architectures. The upstream bug is tracked here: <https://bugs.openjdk.org/browse/JDK-8321125>

### Bug fixes

- [**DietPi-Tools**](../dietpi_tools.md) | [**DietPi-Drive_Manager**](../dietpi_tools/system_configuration.md#dietpi-drive-manager) :octicons-arrow-right-16: Resolved a v10.3 regression where moving the rootfs on Raspberry Pi to a different drive caused an invalid `/boot/firmware/cmdline.txt` root entry, failing to boot. Many thanks to @TimH for reporting this issue: <https://dietpi.com/forum/t/25154>
- [**DietPi-Software**](../dietpi_tools/software_installation.md#dietpi-software) | [**Docker**](../software/system_stats.md#docker) :octicons-arrow-right-16: Resolved a v10.3 regression where a fresh Docker installation failed, since `--no-reload` was used when unmasking `docker.service`, which prevents `docker.socket` from starting up as well. Many thanks to @peracchi for reporting this issue: <https://github.com/MichaIng/DietPi/issues/8108>
- [**DietPi-Software**](../dietpi_tools/software_installation.md#dietpi-software) | [**Home Assistant**](../software/home_automation.md#home-assistant) :octicons-arrow-right-16: Resolved an issue where the installation might have failed, when starting it from within a desktop session. As we used `runuser`, environment variables were passed through to `uv`, notably `XDG_DATA_HOME`, which was then used as install directory for Python, instead of the intended service user's home directory. All `runuser` calls have now been replaced by `setpriv` with the `--reset-env` flag, to guarantee a clean environment. Many thanks to @btuerk89 for reporting this issue: <https://github.com/MichaIng/DietPi/issues/8116>
- [**DietPi-Software**](../dietpi_tools/software_installation.md#dietpi-software) | [**Synapse**](../software/social.md#synapse) :octicons-arrow-right-16: Resolved an issue where the installation might have failed, since dependencies were not installed as intended.
- [**DietPi-Software**](../dietpi_tools/software_installation.md#dietpi-software) | [**Immich**](../software/cloud.md#immich)/[**ownCloud Infinite Scale**](../software/cloud.md#owncloud) :octicons-arrow-right-16: Resolved a v10.3 regression, where the service failed to start, as it does not have the permissions to "touch" its environment file, to trigger the systemd automount, if needed. Instead of "touch", automounts for environment files are now triggered with `test -e`, which does not require write access.
- [**DietPi-Software**](../dietpi_tools/software_installation.md#dietpi-software) | [**Prometheus Node Exporter**](../software/system_stats.md#prometheus-node-exporter) :octicons-arrow-right-16: Resolved an issue on Raspberry Pi where the `raspberrypi_exporter.service` stored the CPU temperature in a wrong format, if a locale with comma (,) as decimal separator was selected on the host system. The service now enforces the C locale. The change is applied during the DietPi update as well. Many thanks to @Grip for reporting this issue: <https://github.com/MichaIng/DietPi/issues/8118>

As always, many smaller code performance and stability improvements, visual and spelling fixes have been done, too much to list all of them here. Check out all code changes of this release on GitHub: <https://github.com/MichaIng/DietPi/pull/8139>
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -148,6 +148,7 @@ nav:
- Miscellaneous Tools: dietpi_tools/misc_tools.md
- RELEASES:
- Overview: releases.md
- v10.4 May 2026: releases/v10_4.md
- v10.3 April 2026: releases/v10_3.md
- v10.2 March 2026: releases/v10_2.md
- v10.1 February 2026: releases/v10_1.md
Expand Down
2 changes: 1 addition & 1 deletion overrides/main.html
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
<meta name="og:image" content="https://dietpi.com/images/dietpi-logo_720x720.png">
{% endif %}

<meta name="twitter:card" content="summary">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@DietPi_">
<meta name="twitter:creator" content="@DietPi_">
<meta name="twitter:title" content="{{ title }}">
Expand Down