Skip to content

Commit 70a4da1

Browse files
committed
dropbear: bump to 2025.89 (CVE-2025-14282, CVE-2019-6111)
- Security: Avoid privilege escalation via unix stream forwarding in Dropbear server. Other programs on a system may authenticate unix sockets via SO_PEERCRED, which would be root user for Dropbear forwarded connections, allowing root privilege escalation. Reported by Turistu, and thanks for advice on the fix. This is tracked as CVE-2025-14282, and affects 2024.84 to 2025.88. It is fixed by dropping privileges of the dropbear process after authentication. Unix stream sockets are now disallowed when a forced command is used, either with authorized_key restrictions or "dropbear -c command". In previous affected releases running with "dropbear -j" (will also disable TCP fowarding) or building with localoptions.h/distrooptions.h "#define DROPBEAR_SVR_LOCALSTREAMFWD 0" is a mitigation. - Security: Include scp fix for CVE-2019-6111. This allowed a malicious server to overwrite arbitrary local files. The missing fix was reported by Ashish Kunwar. - Server dropping privileges post-auth is enabled by default. This requires setresgid() support, so some platforms such as netbsd or macos will have to disable DROPBEAR_SVR_DROP_PRIVS in localoptions.h. Unix stream forwarding is not available if DROPBEAR_SVR_DROP_PRIVS is disabled. Remote server TCP socket forwarding will now use OS privileged port restrictions rather than having a fixed "allow >=1024 for non-root" rule. A future release may implement privilege dropping for netbsd/macos. - Fix a regression in 2025.87 when RSA and DSS are not built. This would lead to a crash at startup with bad_bufptr(). Reported by Dani Schmitt and Sebastian Priebe. - Don't limit channel window to 500MB. That is could cause stuck connections if peers advise a large window and don't send an increment within 500MB. Affects SSH.NET sshnet/SSH.NET#1671 Reported by Rob Hague. - Ignore -g -s when passwords arent enabled. Patch from Norbert Lange. Ignore -m (disable MOTD), -j/-k (tcp forwarding) when not enabled. - Report SIGBUS and SIGTRAP signals. Patch from Loïc Mangeonjean. - Fix incorrect server auth delay. Was meant to be 250-350ms, it was actually 150-350ms or possibly negative (zero). Reported by pickaxprograms. - Fix building without public key options. Thanks to Konstantin Demin - Fix building with proxycmd but without netcat. Thanks to Konstantin Demin - Fix incorrect path documentation for distrooptions, thanks to Todd Zullinger - Fix SO_REUSEADDR for TCP tests, reported by vt-alt. Dropped: * 050-dropbear-multihop-fix.patch as its included in the release 5cc0127000db5f * 051-fix-pubkey-options.patch as its included in the release 1d4c4a542cd5df * 052-fix-missing-depends-for-sntrup761x25519-sha512.patch as its included in the release 1a2c1e649a1824 * 053-Don-t-limit-channel-window-to-500MB.patch as its included in the release a8610f7b98ad Manually rebased: * 110-change_user.patch Fixes: CVE-2025-14282, CVE-2019-6111 Reviewed-by: Hauke Mehrtens <[email protected]> Reviewed-by: Konstantin Demin <[email protected]> Tested-by: Konstantin Demin <[email protected]> [mediatek/filogic (GL.iNet GL-MT6000)] Link: openwrt/openwrt#21186 Signed-off-by: Petr Štetiar <[email protected]>
1 parent 0bfc66e commit 70a4da1

8 files changed

+13
-214
lines changed

package/network/services/dropbear/Makefile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@
88
include $(TOPDIR)/rules.mk
99

1010
PKG_NAME:=dropbear
11-
PKG_VERSION:=2025.88
12-
PKG_RELEASE:=4
11+
PKG_VERSION:=2025.89
12+
PKG_RELEASE:=1
1313

1414
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
1515
PKG_SOURCE_URL:= \
1616
https://matt.ucc.asn.au/dropbear/releases/ \
1717
https://dropbear.nl/mirror/releases/
18-
PKG_HASH:=783f50ea27b17c16da89578fafdb6decfa44bb8f6590e5698a4e4d3672dc53d4
18+
PKG_HASH:=0d1f7ca711cfc336dc8a85e672cab9cfd8223a02fe2da0a4a7aeb58c9e113634
1919

2020
PKG_LICENSE:=MIT
2121
PKG_LICENSE_FILES:=LICENSE libtomcrypt/LICENSE libtommath/LICENSE

package/network/services/dropbear/patches/050-dropbear-multihop-fix.patch

Lines changed: 0 additions & 70 deletions
This file was deleted.

package/network/services/dropbear/patches/051-fix-pubkey-options.patch

Lines changed: 0 additions & 47 deletions
This file was deleted.

package/network/services/dropbear/patches/052-fix-missing-depends-for-sntrup761x25519-sha512.patch

Lines changed: 0 additions & 24 deletions
This file was deleted.

package/network/services/dropbear/patches/053-Don-t-limit-channel-window-to-500MB.patch

Lines changed: 0 additions & 65 deletions
This file was deleted.

package/network/services/dropbear/patches/110-change_user.patch

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
--- a/src/svr-chansession.c
2-
+++ b/src/svr-chansession.c
3-
@@ -984,12 +984,12 @@ static void execchild(const void *user_d
1+
--- a/src/svr-auth.c
2+
+++ b/src/svr-auth.c
3+
@@ -510,9 +510,9 @@ void svr_switch_user(void) {
44
/* We can only change uid/gid as root ... */
55
if (getuid() == 0) {
66

@@ -11,6 +11,11 @@
1111
+ ses.authstate.pw_gid) < 0))) {
1212
dropbear_exit("Error changing user group");
1313
}
14+
15+
@@ -534,7 +534,7 @@ void svr_switch_user(void) {
16+
}
17+
#endif
18+
1419
- if (setuid(ses.authstate.pw_uid) < 0) {
1520
+ if ((ses.authstate.pw_uid != 0) && (setuid(ses.authstate.pw_uid) < 0)) {
1621
dropbear_exit("Error changing user");

package/network/services/dropbear/patches/900-configure-hardening.patch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
--- a/configure.ac
22
+++ b/configure.ac
3-
@@ -86,54 +86,6 @@ AC_ARG_ENABLE(harden,
3+
@@ -80,54 +80,6 @@ AC_ARG_ENABLE(harden,
44

55
if test "$hardenbuild" -eq 1; then
66
AC_MSG_NOTICE(Checking for available hardened build flags:)

package/network/services/dropbear/patches/901-bundled-libs-cflags.patch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
--- a/configure.ac
22
+++ b/configure.ac
3-
@@ -44,11 +44,8 @@ fi
3+
@@ -38,11 +38,8 @@ fi
44
# LTM_CFLAGS is given to ./configure by the user,
55
# DROPBEAR_LTM_CFLAGS is substituted in the LTM Makefile.in
66
DROPBEAR_LTM_CFLAGS="$LTM_CFLAGS"

0 commit comments

Comments
 (0)