s3/utils: Fix use after free with popt 1.19
[Samba.git] / WHATSNEW.txt
blob128bf7230b33ff059599001653a886d645b7acdc
1                    ==============================
2                    Release Notes for Samba 4.17.0
3                          September 13, 2022
4                    ==============================
7 This is the first stable release of the Samba 4.17 release series.
8 Please read the release notes carefully before upgrading.
11 NEW FEATURES/CHANGES
12 ====================
14 SMB Server performance improvements
15 -----------------------------------
17 The security improvements in recent releases
18 (4.13, 4.14, 4.15, 4.16), mainly as protection against symlink races,
19 caused performance regressions for meta data heavy workloads.
21 With 4.17 the situation improved a lot again:
23 - Pathnames given by a client are devided into dirname and basename.
24   The amount of syscalls to validate dirnames is reduced to 2 syscalls
25   (openat, close) per component. On modern Linux kernels (>= 5.6) smbd
26   makes use of the openat2() syscall with RESOLVE_NO_SYMLINKS,
27   in order to just use 2 syscalls (openat2, close) for the whole dirname.
29 - Contended path based operations used to generate a lot of unsolicited
30   wakeup events causing thundering herd problems, which lead to masive
31   latencies for some clients. These events are now avoided in order
32   to provide stable latencies and much higher throughput of open/close
33   operations.
35 Configure without the SMB1 Server
36 ---------------------------------
38 It is now possible to configure Samba without support for
39 the SMB1 protocol in smbd. This can be selected at configure
40 time with either of the options:
42 --with-smb1-server
43 --without-smb1-server
45 By default (without either of these options set) Samba
46 is configured to include SMB1 support (i.e. --with-smb1-server
47 is the default). When Samba is configured without SMB1 support,
48 none of the SMB1 code is included inside smbd except the minimal
49 stub code needed to allow a client to connect as SMB1 and immediately
50 negotiate the selected protocol into SMB2 (as a Windows server also
51 allows).
53 None of the SMB1-only smb.conf parameters are removed when
54 configured without SMB1, but these parameters are ignored by
55 the smbd server. This allows deployment without having to change
56 an existing smb.conf file.
58 This option allows sites, OEMs and integrators to configure Samba
59 to remove the old and insecure SMB1 protocol from their products.
61 Note that the Samba client libraries still support SMB1 connections
62 even when Samba is configured as --without-smb1-server. This is
63 to ensure maximum compatibility with environments containing old
64 SMB1 servers.
66 Bronze bit and S4U support now also with MIT Kerberos 1.20
67 ----------------------------------------------------------
69 In 2020 Microsoft Security Response Team received another Kerberos-related
70 report. Eventually, that led to a security update of the CVE-2020-17049,
71 Kerberos KDC Security Feature Bypass Vulnerability, also known as a ‘Bronze
72 Bit’. With this vulnerability, a compromised service that is configured to use
73 Kerberos constrained delegation feature could tamper with a service ticket that
74 is not valid for delegation to force the KDC to accept it.
76 With the release of MIT Kerberos 1.20, Samba AD DC is able able to mitigate the
77 ‘Bronze Bit’ attack. MIT Kerberos KDC's KDB (Kerberos Database Driver) API was
78 changed to allow passing more details between KDC and KDB components. When built
79 against MIT Kerberos, Samba AD DC supports MIT Kerberos 1.19 and 1.20 versions
80 but 'Bronze Bit' mitigation is provided only with MIT Kerberos 1.20.
82 In addition to fixing the ‘Bronze Bit’ issue, Samba AD DC now fully supports
83 S4U2Self and S4U2Proxy Kerberos extensions.
85 Note the default (Heimdal-based) KDC was already fixed in 2021,
86 see https://bugzilla.samba.org/show_bug.cgi?id=14642
88 Resource Based Constrained Delegation (RBCD) support
89 ----------------------------------------------------
91 Samba AD DC built with MIT Kerberos 1.20 offers RBCD support now. With MIT
92 Kerberos 1.20 we have complete RBCD support passing Sambas S4U testsuite.
94 samba-tool delegation got the 'add-principal' and 'del-principal' subcommands
95 in order to manage RBCD.
97 To complete RBCD support and make it useful to Administrators we added the
98 Asserted Identity [1] SID into the PAC for constrained delegation. This is
99 available for Samba AD compiled with MIT Kerberos 1.20.
101 Note the default (Heimdal-based) KDC does not support RBCD yet.
103 [1] https://docs.microsoft.com/en-us/windows-server/security/kerberos/kerberos-constrained-delegation-overview
105 Customizable DNS listening port
106 -------------------------------
108 It is now possible to set a custom listening port for the builtin DNS service,
109 making easy to host another DNS on the same system that would bind to the
110 default port and forward the domain-specific queries to Samba using the custom
111 port. This is the opposite configuration of setting a forwarder in Samba.
113 It makes possible to use another DNS server as a front and forward to Samba.
115 Dynamic DNS updates may not be proxied by the front DNS server when forwarding
116 to Samba. Dynamic DNS update proxying depends on the features of the other DNS
117 server used as a front.
119 CTDB changes
120 ------------
122 * When Samba is configured with both --with-cluster-support and
123   --systemd-install-services then a systemd service file for CTDB will
124   be installed.
126 * ctdbd_wrapper has been removed.  ctdbd is now started directly from
127   a systemd service file or init script.
129 * The syntax for the ctdb.tunables configuration file has been
130   relaxed.  However, trailing garbage after the value, including
131   comments, is no longer permitted.  Please see ctdb-tunables(7) for
132   more details.
134 Operation without the (unsalted) NT password hash
135 -------------------------------------------------
137 When Samba is configured with 'nt hash store = never' then Samba will
138 no longer store the (unsalted) NT password hash for users in Active
139 Directory.  (Trust accounts, like computers, domain controllers and
140 inter-domain trusts are not impacted).
142 In the next version of Samba the default for 'nt hash store' will
143 change from 'always' to 'auto', where it will follow (behave as 'nt
144 hash store = never' when 'ntlm auth = disabled' is set.
146 Security-focused deployments of Samba that have eliminated NTLM from
147 their networks will find setting 'ntlm auth = disabled' with 'nt hash
148 store = always' as a useful way to improve compliance with
149 best-practice guidance on password storage (which is to always use an
150 interated hash).
152 Note that when 'nt hash store = never' is set, then arcfour-hmac-md5
153 Kerberos keys will not be available for users who subsequently change
154 their password, as these keys derive their values from NT hashes.  AES
155 keys are stored by default for all deployments of Samba with Domain
156 Functional Level 2008 or later, are supported by all modern clients,
157 and are much more secure.
159 Finally, also note that password history in Active Directory is stored
160 in nTPwdHistory using a series of NT hash values.  Therefore the full
161 password history feature is not available in this mode.
163 To provide some protection against password re-use previous Kerberos
164 hash values (the current, old and older values are already stored) are
165 used, providing a history length of 3.
167 There is one small limitation of this workaround: Changing the
168 sAMAccountName, userAccountControl or userPrincipalName of an account
169 can cause the Kerberos password salt to change.  This means that after
170 *both* an account rename and a password change, only the current
171 password will be recognised for password history purposes.
173 Python API for smbconf
174 ----------------------
176 Samba's smbconf library provides a generic frontend to various
177 configuration backends (plain text file, registry) as a C library. A
178 new Python wrapper, importable as 'samba.smbconf' is available.  An
179 additional module, 'samba.samba3.smbconf', is also available to enable
180 registry backend support. These libraries allow Python programs to
181 read, and optionally write, Samba configuration natively.
183 JSON support for smbstatus
184 --------------------------
186 It is now possible to print detailed information in JSON format in
187 the smbstatus program using the new option --json. The JSON output
188 covers all the existing text output including sessions, connections,
189 open files, byte-range locks, notifies and profile data with all
190 low-level information maintained by Samba in the respective databases.
192 Protected Users security group
193 ------------------------------
195 Samba AD DC now includes support for the Protected Users security
196 group introduced in Windows Server 2012 R2. The feature reduces the
197 attack surface of user accounts by preventing the use of weak
198 encryption types. It also mitigates the effects of credential theft by
199 limiting credential lifetime and scope.
201 The protections are intended for user accounts only, and service or
202 computer accounts should not be added to the Protected Users
203 group. User accounts added to the group are granted the following
204 security protections:
206    * NTLM authentication is disabled.
207    * Kerberos ticket-granting tickets (TGTs) encrypted with RC4 are
208      not issued to or accepted from affected principals. Tickets
209      encrypted with AES, and service tickets encrypted with RC4, are
210      not affected by this restriction.
211    * The lifetime of Kerberos TGTs is restricted to a maximum of four
212      hours.
213    * Kerberos constrained and unconstrained delegation is disabled.
215 If the Protected Users group is not already present in the domain, it
216 can be created with 'samba-tool group add'. The new '--special'
217 parameter must be specified, with 'Protected Users' as the name of the
218 group. An example command invocation is:
220 samba-tool group add 'Protected Users' --special
222 or against a remote server:
224 samba-tool group add 'Protected Users' --special -H ldap://dc1.example.com -U Administrator
226 The Protected Users group is identified in the domain by its having a
227 RID of 525. Thus, it should only be created with samba-tool and the
228 '--special' parameter, as above, so that it has the required RID
229 to function correctly.
232 REMOVED FEATURES
233 ================
235 LanMan Authentication and password storage removed from the AD DC
236 -----------------------------------------------------------------
238 The storage and authentication with LanMan passwords has been entirely
239 removed from the Samba AD DC, even when "lanman auth = yes" is set.
242 smb.conf changes
243 ================
245   Parameter Name                          Description     Default
246   --------------                          -----------     -------
247   dns port                                New default     53
248   fruit:zero_file_id                      New default     yes
249   nt hash store                           New parameter   always
250   smb1 unix extensions                    Replaces "unix extensions"
251   volume serial number                    New parameter   -1
252   winbind debug traceid                   New parameter   no
255 CHANGES SINCE 4.17.0rc4
256 =======================
258 o  Ralph Boehme <slow@samba.org>
259    * BUG 15126: acl_xattr VFS module may unintentionally use filesystem
260      permissions instead of ACL from xattr.
261    * BUG 15153: Missing SMB2-GETINFO access checks from MS-SMB2 3.3.5.20.1.
262    * BUG 15161: assert failed: !is_named_stream(smb_fname)") at
263      ../../lib/util/fault.c:197.
265 o  Volker Lendecke <vl@samba.org>
266    * BUG 15126: acl_xattr VFS module may unintentionally use filesystem
267      permissions instead of ACL from xattr.
268    * BUG 15161: assert failed: !is_named_stream(smb_fname)") at
269      ../../lib/util/fault.c:197.
271 o  Stefan Metzmacher <metze@samba.org>
272    * BUG 15159: Cross-node multi-channel reconnects result in SMB2 Negotiate
273      returning NT_STATUS_NOT_SUPPORTED.
275 o  Noel Power <noel.power@suse.com>
276    * BUG 15160: winbind at info level debug can coredump when processing
277      wb_lookupusergroups.
280 CHANGES SINCE 4.17.0rc3
281 =======================
283 o  Anoop C S <anoopcs@samba.org>
284    * BUG 15157: Make use of glfs_*at() API calls in vfs_glusterfs.
287 CHANGES SINCE 4.17.0rc2
288 =======================
290 o  Jeremy Allison <jra@samba.org>
291    * BUG 15128: Possible use after free of connection_struct when iterating
292      smbd_server_connection->connections.
294 o  Christian Ambach <ambi@samba.org>
295    * BUG 15145: `net usershare add` fails with flag works with --long but fails
296      with -l.
298 o  Ralph Boehme <slow@samba.org>
299    * BUG 15126: acl_xattr VFS module may unintentionally use filesystem
300      permissions instead of ACL from xattr.
302 o  Stefan Metzmacher <metze@samba.org>
303    * BUG 15125: Performance regression on contended path based operations.
304    * BUG 15148: Missing READ_LEASE break could cause data corruption.
306 o  Andreas Schneider <asn@samba.org>
307    * BUG 15141: libsamba-errors uses a wrong version number.
309 o  Joseph Sutton <josephsutton@catalyst.net.nz>
310    * BUG 15152: SMB1 negotiation can fail to handle connection errors.
313 CHANGES SINCE 4.17.0rc1
314 =======================
316 o  Jeremy Allison <jra@samba.org>
317    * BUG 15143: New filename parser doesn't check veto files smb.conf parameter.
318    * BUG 15144: 4.17.rc1 still uses symlink-race prone unix_convert()
319    * BUG 15146: Backport fileserver related changed to 4.17.0rc2
321 o  Jule Anger <janger@samba.org>
322    * BUG 15147: Manpage for smbstatus json is missing
324 o  Volker Lendecke <vl@samba.org>
325    * BUG 15146: Backport fileserver related changed to 4.17.0rc2
327 o  Stefan Metzmacher <metze@samba.org>
328    * BUG 15125: Performance regression on contended path based operations
329    * BUG 15146: Backport fileserver related changed to 4.17.0rc2
331 o  Andreas Schneider <asn@samba.org>
332    * BUG 15140: Fix issues found by coverity in smbstatus json code
333    * BUG 15146: Backport fileserver related changed to 4.17.0rc2
336 KNOWN ISSUES
337 ============
339 https://wiki.samba.org/index.php/Release_Planning_for_Samba_4.17#Release_blocking_bugs
342 #######################################
343 Reporting bugs & Development Discussion
344 #######################################
346 Please discuss this release on the samba-technical mailing list or by
347 joining the #samba-technical:matrix.org matrix room, or
348 #samba-technical IRC channel on irc.libera.chat
350 If you do report problems then please try to send high quality
351 feedback. If you don't provide vital information to help us track down
352 the problem then you will probably be ignored.  All bug reports should
353 be filed under the Samba 4.1 and newer product in the project's Bugzilla
354 database (https://bugzilla.samba.org/).
357 ======================================================================
358 == Our Code, Our Bugs, Our Responsibility.
359 == The Samba Team
360 ======================================================================