Changeset 423
- Timestamp:
- Mar 9, 2010, 7:58:12 AM (15 years ago)
- Location:
- branches/samba-3.3.x
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/samba-3.3.x/WHATSNEW.txt
r411 r423 1 ============================== 2 Release Notes for Samba 3.3.12 3 March 8, 2010 4 ============================== 5 6 7 This is a security release in order to address CVE-2010-0728. 8 9 10 o CVE-2010-0728: 11 In Samba releases 3.5.0, 3.4.6 and 3.3.11, new code 12 was added to fix a problem with Linux asynchronous IO handling. 13 This code introduced a bad security flaw on Linux platforms if the 14 binaries were built on Linux platforms with libcap support. 15 The flaw caused all smbd processes to inherit CAP_DAC_OVERRIDE 16 capabilities, allowing all file system access to be allowed 17 even when permissions should have denied access. 18 19 20 Changes since 3.5.0 21 ------------------- 22 23 24 o Jeremy Allison <jra@samba.org> 25 * BUG 7222: Fix for CVE-2010-0728. 26 27 28 ###################################################################### 29 Reporting bugs & Development Discussion 30 ####################################### 31 32 Please discuss this release on the samba-technical mailing list or by 33 joining the #samba-technical IRC channel on irc.freenode.net. 34 35 If you do report problems then please try to send high quality 36 feedback. If you don't provide vital information to help us track down 37 the problem then you will probably be ignored. All bug reports should 38 be filed under the Samba 3.3 product in the project's Bugzilla 39 database (https://bugzilla.samba.org/). 40 41 42 ====================================================================== 43 == Our Code, Our Bugs, Our Responsibility. 44 == The Samba Team 45 ====================================================================== 46 47 48 Release notes for older releases follow: 49 ---------------------------------------- 50 1 51 ============================== 2 52 Release Notes for Samba 3.3.11 … … 80 130 81 131 82 Release notes for older releases follow: 83 ---------------------------------------- 132 ---------------------------------------------------------------------- 133 84 134 85 135 ============================== -
branches/samba-3.3.x/packaging/RHEL-CTDB/samba.spec
r411 r423 6 6 Packager: Samba Team <samba@samba.org> 7 7 Name: samba 8 Version: 3.3.1 18 Version: 3.3.12 9 9 Release: ctdb.1 10 10 Epoch: 0 -
branches/samba-3.3.x/packaging/RHEL/makerpms.sh
r411 r423 21 21 USERID=`id -u` 22 22 GRPID=`id -g` 23 VERSION='3.3.1 1'23 VERSION='3.3.12' 24 24 REVISION='' 25 25 SPECFILE="samba.spec" -
branches/samba-3.3.x/packaging/RHEL/samba.spec
r411 r423 6 6 Packager: Samba Team <samba@samba.org> 7 7 Name: samba 8 Version: 3.3.1 18 Version: 3.3.12 9 9 Release: 1 10 10 Epoch: 0 -
branches/samba-3.3.x/source/VERSION
r411 r423 26 26 SAMBA_VERSION_MAJOR=3 27 27 SAMBA_VERSION_MINOR=3 28 SAMBA_VERSION_RELEASE=1 128 SAMBA_VERSION_RELEASE=12 29 29 30 30 ######################################################## -
branches/samba-3.3.x/source/include/smb.h
r411 r423 1685 1685 KERNEL_OPLOCK_CAPABILITY, 1686 1686 DMAPI_ACCESS_CAPABILITY, 1687 LEASE_CAPABILITY, 1688 KILL_CAPABILITY 1687 LEASE_CAPABILITY 1689 1688 }; 1690 1689 -
branches/samba-3.3.x/source/lib/system.c
r411 r423 708 708 #if defined(HAVE_POSIX_CAPABILITIES) 709 709 710 /* This define hasn't made it into the glibc capabilities header yet. */711 #ifndef SECURE_NO_SETUID_FIXUP712 #define SECURE_NO_SETUID_FIXUP 2713 #endif714 715 710 /************************************************************************** 716 711 Try and abstract process capabilities (for systems that have them). … … 743 738 #endif 744 739 745 #if defined(HAVE_PRCTL) && defined(PR_SET_SECUREBITS) && defined(SECURE_NO_SETUID_FIXUP)746 /* New way of setting capabilities as "sticky". */747 748 /*749 * Use PR_SET_SECUREBITS to prevent setresuid()750 * atomically dropping effective capabilities on751 * uid change. Only available in Linux kernels752 * 2.6.26 and above.753 *754 * See here:755 * http://www.kernel.org/doc/man-pages/online/pages/man7/capabilities.7.html756 * for details.757 *758 * Specifically the CAP_KILL capability we need759 * to allow Linux threads under different euids760 * to send signals to each other.761 */762 763 if (prctl(PR_SET_SECUREBITS, 1 << SECURE_NO_SETUID_FIXUP)) {764 DEBUG(0,("set_process_capability: "765 "prctl PR_SET_SECUREBITS failed with error %s\n",766 strerror(errno) ));767 return false;768 }769 #endif770 771 740 cap = cap_get_proc(); 772 741 if (cap == NULL) { … … 797 766 #endif 798 767 break; 799 case KILL_CAPABILITY:800 #ifdef CAP_KILL801 cap_vals[num_cap_vals++] = CAP_KILL;802 #endif803 break;804 768 } 805 769 … … 811 775 } 812 776 813 /* 814 * Ensure the capability is effective. We assume that as a root 815 * process it's always permitted. 816 */ 817 818 if (cap_set_flag(cap, CAP_EFFECTIVE, num_cap_vals, cap_vals, 819 enable ? CAP_SET : CAP_CLEAR) == -1) { 820 DEBUG(0, ("set_process_capability: cap_set_flag effective " 821 "failed (%d): %s\n", 822 (int)capability, 823 strerror(errno))); 824 cap_free(cap); 825 return false; 826 } 777 cap_set_flag(cap, CAP_EFFECTIVE, num_cap_vals, cap_vals, 778 enable ? CAP_SET : CAP_CLEAR); 827 779 828 780 /* We never want to pass capabilities down to our children, so make 829 781 * sure they are not inherited. 830 782 */ 831 if (cap_set_flag(cap, CAP_INHERITABLE, num_cap_vals, 832 cap_vals, CAP_CLEAR) == -1) { 833 DEBUG(0, ("set_process_capability: cap_set_flag inheritable " 834 "failed (%d): %s\n", 835 (int)capability, 836 strerror(errno))); 837 cap_free(cap); 838 return false; 839 } 783 cap_set_flag(cap, CAP_INHERITABLE, num_cap_vals, cap_vals, CAP_CLEAR); 840 784 841 785 if (cap_set_proc(cap) == -1) { 842 DEBUG(0, ("set_process_capability: cap_set_flag (%d) failed: %s\n", 843 (int)capability, 786 DEBUG(0, ("set_process_capability: cap_set_proc failed: %s\n", 844 787 strerror(errno))); 845 788 cap_free(cap); -
branches/samba-3.3.x/source/smbd/server.c
r411 r423 1248 1248 gain_root_group_privilege(); 1249 1249 1250 /*1251 * Ensure we have CAP_KILL capability set on Linux,1252 * where we need this to communicate with threads.1253 * This is inherited by new threads, but not by new1254 * processes across exec().1255 */1256 set_effective_capability(KILL_CAPABILITY);1257 1258 1250 fault_setup((void (*)(void *))exit_server_fault); 1259 1251 dump_core_setup("smbd");
Note:
See TracChangeset
for help on using the changeset viewer.