diff options
author | Timo Teräs <timo.teras@iki.fi> | 2013-09-27 14:10:53 +0000 |
---|---|---|
committer | Timo Teräs <timo.teras@iki.fi> | 2013-09-27 14:22:25 +0000 |
commit | 4819e6abcde1eb62ced53602c27590d3b92ae9e0 (patch) | |
tree | 7745acb9545b1a659f2a87cc9af83e2b07e91549 | |
parent | 447e3ad633a27422ae2ad67685cbb6b952b09db4 (diff) | |
download | aports-4819e6abcde1eb62ced53602c27590d3b92ae9e0.tar.bz2 aports-4819e6abcde1eb62ced53602c27590d3b92ae9e0.tar.xz |
main/heimdal: remove broken authentication in rsh/rshd
as stated, it's broken by design security wise. and uses obsolete
functions that don't exist in musl. this fixes musl build.
-rw-r--r-- | main/heimdal/APKBUILD | 12 | ||||
-rw-r--r-- | main/heimdal/heimdal-remove-broken-auth.patch | 163 |
2 files changed, 171 insertions, 4 deletions
diff --git a/main/heimdal/APKBUILD b/main/heimdal/APKBUILD index d5a71f3097..e87cb1bc43 100644 --- a/main/heimdal/APKBUILD +++ b/main/heimdal/APKBUILD @@ -2,7 +2,7 @@ # Contributor: Natanael Copa <ncopa@alpinelinux.org> pkgname=heimdal pkgver=1.5.2 -pkgrel=7 +pkgrel=8 pkgdesc="An implementation of Kerberos 5" arch="all" url="http://www.h5l.org/" @@ -28,6 +28,7 @@ source="http://ftp4.de.freesbie.org/pub/misc/heimdal/src/$pkgname-$pkgver.tar.gz heimdal_missing_symbols.patch heimdal-1.5-use-perl-Getopt_Std.patch heimdal_texinfo-5.patch + heimdal-remove-broken-auth.patch " _builddir="$srcdir/$pkgname-$pkgver" @@ -204,7 +205,8 @@ f320b91692b872e28f446f9cf1bc68bf telnetd.patch 8e127440fe11380c65fda40283326a46 heimdal_missing-include.patch a14b9001271c3b794b083c25936ebe21 heimdal_missing_symbols.patch dbe4106d1ca938587c948ee34121c020 heimdal-1.5-use-perl-Getopt_Std.patch -53201e2a953c47a7437ce0222c4fb80d heimdal_texinfo-5.patch" +53201e2a953c47a7437ce0222c4fb80d heimdal_texinfo-5.patch +c66dd8d9dd6a2105ff8e49aca32315c8 heimdal-remove-broken-auth.patch" sha256sums="22603f282f31173533b939d289f3374258aa1ccccbe51ee088d7568d321279ec heimdal-1.5.2.tar.gz 0fb8800c421a0a129c9c23c74498a9fbaaaf89d5730b186795ce325d8fcfc294 heimdal-kadmind.initd ad51a116ec8a7d3cab7632335e76f99732b8115d929584c5fce6f0ed5b010d64 heimdal-kdc.initd @@ -216,7 +218,8 @@ e9b5ca5bab430500b25ff5191d3bb2fd85133c5b4649c21cbc51f6c7d9151e5e 014_all_heimda 1ad9d71d01776e2d2dd49da5951f6f02630ce137be910ff8484968e8327837c3 heimdal_missing-include.patch 0620144d5f4c8a477276da487875e573c2bab4f5ea056c70b1eec2e13cffed58 heimdal_missing_symbols.patch 1a3d06b306fb30e5ce947d612901b2b246d2b6af3e7234c6b10c13f29c376349 heimdal-1.5-use-perl-Getopt_Std.patch -fb77b0c0dd4e5b55e65f16e2ddac99ece9bd20f505e2cef9c4d795224b6e0d86 heimdal_texinfo-5.patch" +fb77b0c0dd4e5b55e65f16e2ddac99ece9bd20f505e2cef9c4d795224b6e0d86 heimdal_texinfo-5.patch +75e6aeeaa91174c470cbb007cd89cf4f0f9bc4955bdc2062b4d3132d12ca481b heimdal-remove-broken-auth.patch" sha512sums="a04abb6f6ad3b1d6c366d9c4e6d92f5c2ca00ae0261c7acbfb1a5782d1bab4b3c498c4fa4b114867cb7e09291cee663cf4fd5c25afca8deb425a8e5112308957 heimdal-1.5.2.tar.gz ce48a30fea02c630e94a25214fa792d107a66f4703c81fa924467f67e909d830732e92b3433b049bd4683591276b3e13e6637b8c217577fa1964fb152342539e heimdal-kadmind.initd aecad5b194522d032ff56b65d878548d0f6502757f5e802f7f8616bc7686a540079f812f652b0c219c7514a04cec9e7dcaadecaa1666a325fa2f10d6f95f34bf heimdal-kdc.initd @@ -228,4 +231,5 @@ eb6ec2606556c004d83cc52d3537f8a42dace7992c05dc474de44b66333442b218bbdd4408ee86b6 18f4a5b0c74ae11fbd8874d2954639f36d480655d978af2b2dd19a8ec2b206057ef4be5861d8daca0725926b295604daeaa895b6024b2098922cd189d3e4484b heimdal_missing-include.patch af3ce21d6fe2e5b8902167a556bc48c29f544da2556ef0635308bdc0f9c9538b8afe7a6f3964c4a4f1d87db09da01a2d8c777e1339c28933b758f71d786b5bf7 heimdal_missing_symbols.patch 07bfcc27dc7d15cdd282770ad1e91d0aeaecdb6f4c2463b75352550b7ec116399fca00445d800bfb6ce825e58c05ec0c81c0d3e92ffde037bf3d774b4a2f2500 heimdal-1.5-use-perl-Getopt_Std.patch -12abf4837c0daff6e51e8728dcf55752407e3616c8d657409d159119d60133a268e664a7eb1a6ad8632f17ef194933fac035c2856299ba4c4fb6053208cd1608 heimdal_texinfo-5.patch" +12abf4837c0daff6e51e8728dcf55752407e3616c8d657409d159119d60133a268e664a7eb1a6ad8632f17ef194933fac035c2856299ba4c4fb6053208cd1608 heimdal_texinfo-5.patch +db549d2f4293290a7a9c3a1a0df85c66d82e710acff5d86df0d272f7567f448200e00aee82ca6136ec58f69403a1a127b963683f7a25165dc41a751e10225f69 heimdal-remove-broken-auth.patch" diff --git a/main/heimdal/heimdal-remove-broken-auth.patch b/main/heimdal/heimdal-remove-broken-auth.patch new file mode 100644 index 0000000000..1affcba2c2 --- /dev/null +++ b/main/heimdal/heimdal-remove-broken-auth.patch @@ -0,0 +1,163 @@ +--- appl/rsh/rsh.c.orig ++++ appl/rsh/rsh.c +@@ -399,6 +399,8 @@ + + #endif /* KRB5 */ + ++#ifdef BROKEN_AUTH ++ + static int + send_broken_auth(int s, + struct sockaddr *thisaddr, +@@ -428,6 +430,8 @@ + return 0; + } + ++#endif /* BROKEN_AUTH */ ++ + static int + proto (int s, int errsock, + const char *hostname, const char *local_user, const char *remote_user, +@@ -629,6 +633,8 @@ + return res; + } + ++#ifdef BROKEN_AUTH ++ + static int + doit_broken (int argc, + char **argv, +@@ -702,6 +708,8 @@ + } + } + ++#endif ++ + #if defined(KRB5) + static int + doit (const char *hostname, +@@ -796,7 +804,9 @@ + { "protocol", 'P', arg_string, &protocol_version_str, + "Protocol version [krb5]", "protocol" }, + #endif ++#ifdef BROKEN_AUTH + { "broken", 'K', arg_flag, &use_only_broken, "Use only priv port" }, ++#endif + #if defined(KRB5) + { "encrypt", 'x', arg_flag, &do_encrypt, "Encrypt connection" }, + { NULL, 'z', arg_negative_flag, &do_encrypt, +@@ -831,8 +841,10 @@ + int + main(int argc, char **argv) + { ++#ifdef BROKEN_AUTH + int priv_port1, priv_port2; + int priv_socket1, priv_socket2; ++#endif + int argindex = 0; + int error; + struct addrinfo hints, *ai; +@@ -848,9 +860,11 @@ + #endif + uid_t uid; + ++#ifdef BROKEN_AUTH + priv_port1 = priv_port2 = IPPORT_RESERVED-1; + priv_socket1 = rresvport(&priv_port1); + priv_socket2 = rresvport(&priv_port2); ++#endif + uid = getuid (); + if (setuid (uid) || (uid != 0 && setuid(0) == 0)) + err (1, "setuid"); +@@ -907,6 +921,7 @@ + + #endif + ++#ifdef BROKEN_AUTH + if (use_only_broken) { + #ifdef KRB5 + use_v5 = 0; +@@ -918,6 +933,7 @@ + errx (1, "unable to bind reserved port: is rsh setuid root?"); + use_broken = 0; + } ++#endif + + #if defined(KRB5) + if (do_encrypt == 1 && use_only_broken) +@@ -956,8 +972,10 @@ + } + + if (argindex == argc) { ++#ifdef BROKEN_AUTH + close (priv_socket1); + close (priv_socket2); ++#endif + argv[0] = "rlogin"; + execvp ("rlogin", argv); + err (1, "execvp rlogin"); +@@ -1004,6 +1022,7 @@ + freeaddrinfo(ai); + } + #endif ++#ifdef BROKEN_AUTH + if (ret && use_broken) { + memset (&hints, 0, sizeof(hints)); + hints.ai_socktype = SOCK_STREAM; +@@ -1027,6 +1046,7 @@ + cmd, cmd_len); + freeaddrinfo(ai); + } ++#endif + free(cmd); + return ret; + } +--- appl/rsh/rshd.c.orig ++++ appl/rsh/rshd.c +@@ -131,6 +131,7 @@ + fatal(s, NULL, "%s too long", expl); + } + ++#ifdef BROKEN_AUTH + static int + recv_bsd_auth (int s, u_char *buf, + struct sockaddr_in *thisaddr, +@@ -152,6 +153,7 @@ + fatal(s, NULL, "Login incorrect."); + return 0; + } ++#endif + + #ifdef KRB5 + static int +@@ -658,10 +660,11 @@ + /* + * we only do reserved port for IPv4 + */ +- ++#ifdef BROKEN_AUTH + if (erraddr->sa_family == AF_INET) + errsock = rresvport (&priv_port); + else ++#endif + errsock = socket (erraddr->sa_family, SOCK_STREAM, 0); + if (errsock < 0) + syslog_and_die ("socket: %s", strerror(errno)); +@@ -689,6 +692,7 @@ + syslog_and_die ("unrecognized auth protocol: %x %x %x %x", + buf[0], buf[1], buf[2], buf[3]); + } else { ++#ifdef BROKEN_AUTH + if(recv_bsd_auth (s, buf, + (struct sockaddr_in *)thisaddr, + (struct sockaddr_in *)thataddr, +@@ -702,6 +706,9 @@ + } + } else + syslog_and_die("recv_bsd_auth failed"); ++#else ++ syslog_and_die("recv_bsd_auth is disabled for security reasons"); ++#endif + } + + if (client_user == NULL || server_user == NULL || cmd == NULL) |