mirror of
https://github.com/openwrt/openwrt.git
synced 2025-12-21 17:04:28 +04:00
- 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 https://github.com/sshnet/SSH.NET/issues/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 <hauke@hauke-m.de> Reviewed-by: Konstantin Demin <rockdrilla@gmail.com> Tested-by: Konstantin Demin <rockdrilla@gmail.com> [mediatek/filogic (GL.iNet GL-MT6000)] Link: https://github.com/openwrt/openwrt/pull/21186 Signed-off-by: Petr Štetiar <ynezz@true.cz>
58 lines
1.8 KiB
Diff
58 lines
1.8 KiB
Diff
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -80,54 +80,6 @@ AC_ARG_ENABLE(harden,
|
|
|
|
if test "$hardenbuild" -eq 1; then
|
|
AC_MSG_NOTICE(Checking for available hardened build flags:)
|
|
- # relocation flags don't make sense for static builds
|
|
- if test "$STATIC" -ne 1; then
|
|
- # pie
|
|
- DB_TRYADDCFLAGS([-fPIE])
|
|
-
|
|
- OLDLDFLAGS="$LDFLAGS"
|
|
- TESTFLAGS="-Wl,-pie"
|
|
- LDFLAGS="$TESTFLAGS $LDFLAGS"
|
|
- AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
|
|
- [AC_MSG_NOTICE([Setting $TESTFLAGS])],
|
|
- [
|
|
- LDFLAGS="$OLDLDFLAGS"
|
|
- TESTFLAGS="-pie"
|
|
- LDFLAGS="$TESTFLAGS $LDFLAGS"
|
|
- AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
|
|
- [AC_MSG_NOTICE([Setting $TESTFLAGS])],
|
|
- [AC_MSG_NOTICE([Not setting $TESTFLAGS]); LDFLAGS="$OLDLDFLAGS" ]
|
|
- )
|
|
- ]
|
|
- )
|
|
- # readonly elf relocation sections (relro)
|
|
- OLDLDFLAGS="$LDFLAGS"
|
|
- TESTFLAGS="-Wl,-z,now -Wl,-z,relro"
|
|
- LDFLAGS="$TESTFLAGS $LDFLAGS"
|
|
- AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
|
|
- [AC_MSG_NOTICE([Setting $TESTFLAGS])],
|
|
- [AC_MSG_NOTICE([Not setting $TESTFLAGS]); LDFLAGS="$OLDLDFLAGS" ]
|
|
- )
|
|
- fi # non-static
|
|
- # stack protector. -strong is good but only in gcc 4.9 or later
|
|
- OLDCFLAGS="$CFLAGS"
|
|
- TESTFLAGS="-fstack-protector-strong"
|
|
- CFLAGS="$TESTFLAGS $CFLAGS"
|
|
- AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
|
|
- [AC_MSG_NOTICE([Setting $TESTFLAGS])],
|
|
- [
|
|
- CFLAGS="$OLDCFLAGS"
|
|
- TESTFLAGS="-fstack-protector --param=ssp-buffer-size=4"
|
|
- CFLAGS="$TESTFLAGS $CFLAGS"
|
|
- AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
|
|
- [AC_MSG_NOTICE([Setting $TESTFLAGS])],
|
|
- [AC_MSG_NOTICE([Not setting $TESTFLAGS]); CFLAGS="$OLDCFLAGS" ]
|
|
- )
|
|
- ]
|
|
- )
|
|
- # FORTIFY_SOURCE
|
|
- DB_TRYADDCFLAGS([-D_FORTIFY_SOURCE=2])
|
|
-
|
|
# Spectre v2 mitigations
|
|
DB_TRYADDCFLAGS([-mfunction-return=thunk])
|
|
DB_TRYADDCFLAGS([-mindirect-branch=thunk])
|