Firmware-update: OpenWrt 25.12.6

OpenWRT logo (Über) Versie 25.12.6 van OpenWrt is uitgekomen. OpenWrt is alternatieve open source firmware voor een groot aantal verschillende routers en embedded devices. Door middel van het apk-packagemanagementsysteem is er de mogelijkheid om zelf te bepalen wat de router allemaal wel en niet kan. Ook op GoT zijn er diverse mensen actief mee bezig: zie daarvoor dit topic. Bijwerken van de versie kan met een Attended Sysupgrade, handmatig met een voorgecompileerde firmwareversie van het apparaat dat je gebruikt of compileer je eigen variant met de firmwareselectie. De changelog voor deze uitgave kan hieronder worden gevonden.

Security fixes

This release fixes several remotely triggerable vulnerabilities in core network services that are enabled by default. Updating is strongly recommended.

  • uhttpd (web server, enabled by default with LuCI): uhttpd was updated to a newer version that fixes five published advisories, all reachable without authentication:
    • CVE-2026-102338 (High): memory-exhaustion denial of service caused by an unlimited number of HTTP request headers. GHSA-vhx4-3p5q-m59q
    • No CVE assigned (High): out-of-bounds write caused by a type confusion of the params field in POST /ubus/call/ requests. GHSA-2mpg-6wp5-435p
    • No CVE assigned (High): unlimited memory growth, because the URL path was leaked on every non-POST /ubus request. GHSA-83vv-qrc6-bhx
    • No CVE assigned (Moderate): HTTP request smuggling (CL.0), because a keep-alive connection was reused while a request body was still unread. GHSA-c2wg-hcff-hqrm
    • No CVE assigned (Moderate): a leaked client reference on /ubus/subscribe/ could permanently block the listener. GHSA-wvgh-cm54-q6f6
    • No CVE assigned (High): Basic Auth realms configured for a URL prefix were not enforced for Lua and ucode handlers below that prefix. Only relevant if Basic Auth realms are configured in uhttpd. GHSA-5cgm-8h9x-v28c
  • Mbed TLS (default TLS library): update to 3.6.7, fixing multiple security vulnerabilities, including a remote buffer overflow in (D)TLS with ECDHE-PSK cipher suites (CVE-2026-25832, CVE-2026-35336, CVE-2026-49300, CVE-2026-50579, CVE-2026-50580, CVE-2026-50581, CVE-2026-50583, CVE-2026-50584, CVE-2026-50585, CVE-2026-50586, CVE-2026-50587, CVE-2026-50588, CVE-2026-50640, CVE-2026-50713, CVE-2026-54435, CVE-2026-54441). Mbed TLS is used by default, for example for HTTPS in uhttpd and in hostapd / wpa_supplicant.
  • hostapd / wpa_supplicant (WiFi):
    • No CVE assigned: fixes from the hostapd security advisory 2026-1 for missing validation when parsing multi-link (MLO, WiFi 7 / IEEE 802.11be) information. Invalid management frames sent without authentication could crash hostapd or wpa_supplicant or cause small memory corruption. In access point mode, only devices with WiFi 7 (802.11be) support are affected. In client mode, wpa_supplicant is affected in general.
    • No CVE assigned (Moderate, CVSS 6.5): NULL pointer dereference in the APuP (Access Point Micro-Peering) beacon handling. A nearby attacker could crash hostapd by sending beacons from many spoofed BSSIDs. Only relevant if APuP is enabled (option apup, disabled by default). GHSA-78g5-4g76-r6jh
    • In builds using Mbed TLS, the check_cert_subject EAP server certificate check read uninitialized memory and could accept a certificate whose subject only matched as a prefix.
  • rpcd (LuCI backend, enabled by default with LuCI): two privilege escalation issues were fixed. They only matter on systems with additional LuCI users with limited (delegated) permissions:
    • No CVE assigned (High, CVSS 8.4): file operations followed symbolic links. A symlink in a directory covered by the user's ACL allowed reading or writing any root-owned file, such as /etc/shadow. GHSA-q5gr-86pq-vvwr
    • No CVE assigned (High, CVSS 7.0): the session token was used as the name of a temporary UCI directory. A restricted user could read the token of a more privileged session and use it to run commands as root. GHSA-r2w2-q7cw-cfp2
  • cgi-io (enabled by default with LuCI): No CVE assigned (Moderate, CVSS 4.3): use-after-free when decoding malformed percent-encoded POST data. GHSA-wvhq-qmwj-grj2
  • LuCI applications and packages: several issues were fixed that let a logged-in user with limited (delegated) permissions run commands as root or store cross-site scripting (XSS) payloads. They only apply if the affected app is installed and the account/ACL in question exists:
    • ser2net / luci-app-ser2net (Critical, CVSS 9.9): a newline in a UCI option could add an extra ser2net connection that runs commands as root. GHSA-w6q2-vr4f-49x3
    • luci-app-lxc: path traversal and an ACL bypass allowed logged-in users without the LXC permission to get root access on the host (no advisory published).
    • luci-app-ddns / ddns-scripts: delegated DDNS users could run commands as root through the date format and other DDNS settings, which were passed to the shell without quoting (no advisory published).
    • luci-app-nut: delegated users could configure NUT notification commands that run as root. Write access is now limited to the admin user (no advisory published).
    • luci-app-adblock-fast (Moderate, CVSS 5.4): stored XSS in the status page through blocklist names. GHSA-q335-4c83-c88h
    • luci-app-https-dns-proxy (Moderate, CVSS 4.5): stored XSS in the status page through the resolver URL. GHSA-c6vf-395q-4jv6
    • luci-base: the URL path and user name are now escaped when logging, so crafted login requests can no longer inject text into the system log.
  • umdns (mDNS daemon, optional package): two out-of-bounds reads reachable by any host on the local network with crafted mDNS packets were fixed:
    • No CVE assigned (Moderate, CVSS 5.4): out-of-bounds read in dns_query(). GHSA-j2f2-273j-r86h
    • No CVE assigned (Moderate, CVSS 4.3): uninitialized byte and out-of-bounds read on cached TXT records. GHSA-fc92-h6gc-rjjx
  • ead-client (Emergency Access Daemon client): No CVE assigned (Low): out-of-bounds writes when handling spoofed server replies. ead-client is not installed in the images, only the daemon is. GHSA-mq4v-mf82-24rr, GHSA-8f8g-5c8x-8mhh
  • Linux kernel: update to 6.12.112, pulling in the upstream 6.12.95 through 6.12.112 stable releases, which fix multiple security vulnerabilities.
  • OpenSSL: update to 3.5.9, fixing multiple security vulnerabilities (CVE-2026-14456, CVE-2026-14457, CVE-2026-18798, CVE-2026-35189, CVE-2026-35191, CVE-2026-42772, CVE-2026-54872, CVE-2026-54873, CVE-2026-54874, CVE-2026-54875, CVE-2026-63072, CVE-2026-63073, CVE-2026-63074, CVE-2026-63075, CVE-2026-63076, CVE-2026-72897, CVE-2026-75803, CVE-2026-75804, CVE-2026-75805, CVE-2026-75806, CVE-2026-77696, CVE-2026-84782, CVE-2026-84784). An OpenWrt-specific patch that made AES-GCM-SIV accept forged authentication tags for zero-length messages was also corrected.
  • wolfSSL: update to 5.9.4, fixing multiple security vulnerabilities (CVE-2026-6091, CVE-2026-6092, CVE-2026-6094, CVE-2026-6291, CVE-2026-6325, CVE-2026-6329, CVE-2026-6330, CVE-2026-6331, CVE-2026-6412, CVE-2026-6450, CVE-2026-6678, CVE-2026-6679, CVE-2026-6681, CVE-2026-6731, CVE-2026-7511, CVE-2026-7531, CVE-2026-7532, CVE-2026-8720, CVE-2026-10097, CVE-2026-10098, CVE-2026-10512, CVE-2026-10592, CVE-2026-11310, CVE-2026-11703, CVE-2026-11999, CVE-2026-12340, CVE-2026-55958, CVE-2026-55960, CVE-2026-55961, CVE-2026-55962, CVE-2026-55964, CVE-2026-55967 and further issues fixed in 5.9.4).

Many optional packages in the packages feed were also updated to new versions with security fixes, among them curl 8.22.0, OpenSSH 10.6p1, unbound 1.26.1, BIND 9.20.29, OpenVPN 2.7.7, strongSwan 6.0.7, HAProxy 3.2.21, expat 2.8.4, nghttp2 1.70.0, libssh 0.12.2, c-ares 1.34.8, Tor 0.4.9.13, Knot DNS 3.5.7, PowerDNS 4.9.17, PowerDNS Recursor 5.2.13, Exim 4.100.1, Python 3.13.15, Node.js 22.23.2, xz 5.8.3 and rsync 3.5.1. These packages are not part of the default images; update the installed packages to get these fixes.

Beyond the issues listed above, this release fixes a number of further security problems for which no CVE number or dedicated advisory was assigned. We strongly recommend upgrading to the latest OpenWrt release and installing all available package updates.

WiFi: GCMP-256 and SAE-EXT-KEY are no longer offered by default

OpenWrt 25.12.0 to 25.12.5 offered the GCMP-256 pairwise cipher and, in some configurations, the SAE-EXT-KEY key management (SAE with a group-dependent hash, also called SAE-GDH) on WPA3 networks with WiFi 6 (HE) or WiFi 7 (EHT), but not in the way the Wi-Fi Alliance “WPA3 and Wi-Fi Enhanced Open Deployment and Implementation Guide” describes it. This configuration caused connection problems, for example with Pixel 10 phones (#21486) and with 802.11r Fast Transition (#22200).

The WPA3 specification makes GCMP-256 and SAE-EXT-KEY mandatory for WiFi 7 and recommends them otherwise. When the configuration recommended by the Wi-Fi Alliance was enabled in the OpenWrt development branch, it turned out that about 15% of the client devices in use are not compatible with it. For example:

  • Some clients cannot connect when GCMP-256 is offered, already on WiFi 6, for example Nanoleaf devices, a Motorola/Unisoc phone and Linux laptops using iwd.
  • With 802.11r Fast Transition enabled, FT-SAE-EXT-KEY prevents some clients from connecting (for example a Samsung Galaxy Tab S10 FE) or makes them reboot shortly after connecting (for example a Poco X6).

See the discussion on the hostap mailing list and pull request #23009 for details.

Starting with 25.12.6, GCMP-256 and SAE-EXT-KEY are no longer offered by default in WPA3-Personal (sae) and WPA2/WPA3 mixed (sae-mixed) mode; only CCMP and plain SAE are offered. The old rsn_override option was removed.

We recommend using WPA3-Personal (sae) or WPA2/WPA3 mixed mode (sae-mixed). If some clients have problems with these modes, use the new WPA3-Personal Compatibility Mode (sae-compat, “WPA2-PSK/WPA3-SAE Compatibility Mode” in LuCI): WPA2 clients see a normal WPA2 network, while clients that support RSN overriding use WPA3.

Only enable GCMP-256 and SAE-EXT-KEY if you need them and if they do not cause problems with your clients. In LuCI, they are on the “Wireless Security” tab of the wireless network as “GCMP-256 pairwise cipher” and “SAE-EXT-KEY (SAE-GDH)”. On the command line (replace default_radio0 with the name of your wifi-iface section):

uci set wireless.default_radio0.gcmp256='1'
uci set wireless.default_radio0.sae_ext_key='1'
uci commit wireless
wifi reload

gcmp256 offers GCMP-256 in addition to CCMP, but only if the WiFi driver supports GCMP-256. sae_ext_key offers SAE-EXT-KEY, and also FT-SAE-EXT-KEY when 802.11r is enabled.

DHCP client: the client identifier can be selected

Since OpenWrt 25.12.0, every device generates a random, UUID-based DUID on first boot and stores it in network.globals.dhcp_default_duid. The DHCPv6 client uses it as its DUID, and the DHCPv4 client sends it together with an interface-specific IAID as client identifier (DHCP option 61). This default follows the recommendation of RFC 4361 that DHCPv4 clients use the same DUID as DHCPv6, so the device is identified in the same way for DHCPv4 and DHCPv6. The UUID-based DUID format is defined in RFC 6355. OpenWrt 24.10 sent no client identifier with DHCPv4 and used a DUID-LL derived from the MAC address for DHCPv6. Some DHCP servers, including servers of some ISPs, do not work correctly with the new client identifier, and until now there was no way to go back to the old behavior.

OpenWrt 25.12.6 adds the new per-interface option sendclientid:

  • auto (default): use the client ID configured with the clientid option, else the default DUID of the device, else the MAC address. This is the behavior of 25.12.0 to 25.12.5 and follows RFC 4361.
  • global: always use the default DUID of the device, even if clientid is set.
  • hardware: use the MAC address of the interface (DHCPv4) or a DUID-LL derived from it (DHCPv6).
  • none (DHCPv4 only): do not send a client identifier at all.

We recommend keeping the default auto, which matches the behavior of OpenWrt 25.12.5. Only if the DHCP server of your ISP does not work with it, switch back to the behavior of OpenWrt 24.10 by setting none on the DHCPv4 interface and hardware on the DHCPv6 interface:

uci set network.wan.sendclientid='none'
uci set network.wan6.sendclientid='hardware'
uci commit network
service network reload

In LuCI, the option is called “Preferred client ID” and is on the “Advanced Settings” tab of the interface (Network → Interfaces → Edit). Select “None” for the DHCPv4 interface (wan) and “Hardware address” for the DHCPv6 interface (wan6). Note that the DHCP server sees a changed client identifier as a new client, so you may get a different IPv4 address or IPv6 prefix.

Device support

New devices supported in 25.12.6:

  • ipq806x: Aruba AP-324 / AP-325 (also Siemens Scalance W1750D)
  • mediatek (filogic): Airtel AirFiber AAP4221ZY (Zyxel EX3310-T0)
  • mediatek (filogic): Cudy WR3000U v1
  • mediatek (filogic): Globitel BT-R320
  • mediatek (filogic): Hiveton H5000M (Airpi H5000M)
  • mediatek (filogic): JioRouter AX6000 JIDU6J01 / JIDU6201
  • mediatek (filogic): Livinet Li320
  • mediatek (filogic): netis N6 V2
  • mediatek (filogic): Teralink TL3020 (256 MB)
  • mediatek (filogic): WAVLINK WL-WNT100X3 (stock layout and OpenWrt U-Boot layout)
  • qualcommax (ipq50xx): CMCC MR3000D-CI
  • ramips (mt7621): TP-Link ER605 v1 (TL-R605 v1)
  • ramips (mt76x8): Cudy LT500 Outdoor v1
  • rockchip: FriendlyARM NanoPi R2S Plus

New image variants for already supported devices:

  • mediatek (filogic): Cudy M3000 v1/v2 - add OpenWrt U-Boot layout (ubootmod) image, which uses the full NAND size
  • mediatek (filogic): Cudy M3000 v2 with Motorcomm YT8821 PHY - add OpenWrt U-Boot layout (ubootmod) image

Device fixes:

  • ath79: GL.iNet GL-E750 (Mudi) V2 - fix the 5 GHz WiFi radio, which did not come up because of missing calibration data
  • bcm53xx: fix sysupgrade losing the configuration on NAND devices (see “Upgrading” below)
  • bcm47xx, imx (Gateworks Ventana), layerscape (Traverse Ten64): fix Attended Sysupgrade (ASU) support
  • kernel: add support for FudanMicro FM25G01B/FM25G02B SPI-NAND (fixes a boot loop on new revisions of Keenetic KN-1812 / Netcraze NC-1812) and HeYangTek HYF1GQ4UDACAE SPI-NAND (found on some Keenetic KN-3411 units)
  • mediatek: MT7986 - correct the system timer rate, fixing clock drift (e.g. NTP running at the +500 ppm limit on the GL.iNet GL-MT6000)
  • mediatek (filogic): Cudy devices with DDR3 RAM - run the RAM at its rated speed of 1866 MT/s
  • mediatek (filogic): JioRouter AX6000 JIDU6101 - fix silently failing sysupgrade (SPI-NAND writes) and the U-Boot environment layout
  • mediatek (filogic): Keenetic / Netcraze devices - fix NMBM reserved block count, fixing boot on some units
  • mediatek (filogic): Comfast CF-WR632AX - fix NMBM configuration mismatch (#24546)
  • mediatek (filogic): Cudy WR3000S v1 - light up the Internet LED
  • mediatek: ipTIME AX3000SE - WLAN LED now shows activity of both radios
  • ramips: ipTIME A8004T - fix PCIe after a warm reboot
  • ramips: fix Ethernet interrupt handling with busy polling / interrupt deferral (#25742)
  • mpc85xx: Freescale P2020RDB - switch to DSA (see “Upgrading” below); TP-Link TL-WDR4900 v1 - the WiFi on/off switch now works; Enterasys WS-AP3715i - fix boot and allow access to the U-Boot environment
  • mvebu: Turris MOX - fix sysupgrade, squashfs boot and USB 2.0 device detection; WiFi (mwifiex SDIO) and Bluetooth drivers are now included in the image
  • qualcommax: ASUS RT-AX89X - use LAN1 instead of the SFP port in failsafe mode (#23633)
  • qualcommbe: ipq95xx - check the image metadata on sysupgrade
  • realtek: D-Link DGS-1210-28P/MP - fix fan control
  • rockchip: NanoPi R3S (1 GB) - fix the PCIe link to the RTL8111H Ethernet chip
  • sunxi: H5 boards (e.g. NanoPi NEO 2) - fix USB
  • airoha: new PCS implementation, Ethernet LRO and HW-GRO support, many Ethernet driver fixes, AN7583 USB/PCIe PHY support, updated pin controller driver and thermal settings
WiFi fixes and improvements
  • The WPA3 defaults were reworked to follow the WPA3 specification and deployment guide:
    • GCMP-256 and SAE-EXT-KEY are no longer offered by default in sae and sae-mixed mode (see “Important changes” above)
    • Beacon protection is now enabled by default on supported devices when management frame protection (PMF / 802.11w) is enabled
    • SAE now offers the groups 19, 20 and 21 by default
    • New WPA3-Personal Compatibility Mode (sae-compat): WPA2 clients see a normal WPA2 network, while clients that support RSN overriding use WPA3
    • New transition_disable option to tell clients to stop falling back to older security modes on a WPA3-only network
    • On 6 GHz, SAE uses H2E only, and WPA2-only configurations are automatically switched to WPA3 so the radio comes up
    • LuCI shows the new options in the wireless settings and hides encryption modes that are not allowed on 6 GHz
  • WiFi client (wpa_supplicant) with WPA-Enterprise: fix EAP inner methods such as EAP-MSCHAPV2 (#24086), fix server certificate checks (altsubject_match, domain_match, domain_suffix_match), and accept the old priv_key / priv_key_pwd option names again, so EAP-TLS client configurations from 24.10 work again (#22599)
  • hostapd: fix EAP-TLS client mode with Mbed TLS 3.6.3 and newer
  • wifi-scripts: restore 802.11ad (60 GHz) support
  • wifi-scripts: the multicast_to_unicast option works again
  • hostapd: restore Link Measurement Report handling; beacon reports via ubus support the reporting detail parameter and include the raw report data
  • mac80211: update to 6.18.55 with many upstream fixes for ath10k, ath11k, iwlwifi, rtw88 and other drivers
  • ath9k: reset the hardware on init again, fixing problems on some devices
  • rtw88 (USB/SDIO): use a longer TX report timeout, fixing repeated “failed to get tx report from firmware” warnings in access point mode
  • mt76: backport fixes from Linux 6.18.55
  • iwinfo: fix corrupt scan results when wpa_supplicant is running; add new device IDs
  • iw: show RSN Override elements in scan results
Network and service improvements
  • DHCP client: new per-interface option sendclientid to choose the DHCPv4/DHCPv6 client identifier (see “Important changes” above)
  • ppp: on-demand dialing (demand option) works again. It was broken since the update to ppp 2.5.0 (#24454).
  • uhttpd: stricter and more robust HTTP parsing, lower latency (TCP_NODELAY), can bind to addresses that are not yet configured, and supports SNI-based redirects
  • umdns: many robustness fixes
  • L2TP: fix heavy packet fragmentation, seen for example with batman-adv over an L2TP tunnel over IPv4
  • Mobile broadband: uqmi and umbim now report the DNS servers in ifstatus also with peerdns disabled; support for the Quectel EG120K-EA modem (qmi_wwan); NCM support for Fibocom FG621-EA modems (e.g. ASUS 4G-AX56, TP-Link TL-MR500 v1)
  • adb: fix RSA authentication with Mbed TLS
Other changes
  • LuCI: new optional theme luci-theme-footstrap; the optional luci-mod-dashboard got live charts and a configurable layout; new apps luci-app-librespeed and luci-app-weechat
Core component updates
  • Linux kernel: update from 6.12.94 to 6.12.112
  • OpenSSL: update from 3.5.7 to 3.5.9 (multiple security fixes, see above)
  • Mbed TLS: update from 3.6.6 to 3.6.7 (multiple security fixes, see above)
  • wolfSSL: update from 5.9.1 to 5.9.4 (multiple security fixes, see above)
  • mac80211: update from 6.18.26 to 6.18.55
  • wireless-regdb: update from 2026.05.30 to 2026.09.03
  • nilfs-utils: update from 2.2.12 to 2.2.17
  • ca-certificates: update from 20260601 to 20260816 (refreshed root CA bundle)
  • wireguard-tools: update from 1.0.20250521 to 1.0.20260223
  • uhttpd, rpcd, umdns, odhcp6c and iwinfo: updated to newer upstream versions

OpenWrt 23.05.0

Versienummer 25.12.6
Releasestatus Final
Website OpenWrt
Download https://firmware-selector.openwrt.org
Licentietype GPL

Door Bart van Klaveren

Downloads en Best Buy Guide

19-10-2026 • 13:30

2

Submitter: KipKroket

Bron: OpenWrt

Update-historie

Reacties (2)

Sorteer op:

Weergave:

Update uitgevoerd en deze draait weer naar behoren. Deze update bevat veel CVE fixes. PPPOE via Odido glasvezel is nu ook weer makkelijk werkbaar te krijgen door de Client ID op hardware te zetten.

uci set network.wan.sendclientid='hardware'
uci commit network
service network reload

[Reactie gewijzigd door Davema op 19 oktober 2026 13:37]

Vreemd genoeg was dhcp na de update niet functionerend, maar na een extra reboot weer opgelost.

Om te kunnen reageren moet je ingelogd zijn